Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
отрывки:примеры_заполнения_сертификата [2018/07/26 16:11]
andrewu
отрывки:примеры_заполнения_сертификата [2018/10/25 18:52] (текущий)
asp
Строка 56: Строка 56:
 <1c> <1c>
 Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник,​ Отказ) Экспорт Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник,​ Отказ) Экспорт
-   ...+    ​...
  Если ТипЗнч(Источник) = Тип("​СправочникОбъект.Организации"​) ИЛИ ТипЗнч(Источник) = Тип("​СправочникОбъект.Контрагенты"​) Тогда  Если ТипЗнч(Источник) = Тип("​СправочникОбъект.Организации"​) ИЛИ ТипЗнч(Источник) = Тип("​СправочникОбъект.Контрагенты"​) Тогда
-        ​...+    ​...
  ИначеЕсли ТипЗнч(Источник) = Тип("​СправочникОбъект.Партнеры"​) Тогда   ИначеЕсли ТипЗнч(Источник) = Тип("​СправочникОбъект.Партнеры"​) Тогда
  Запрос = Новый Запрос;​  Запрос = Новый Запрос;​
Строка 84: Строка 84:
  КонецЕсли;​  КонецЕсли;​
  
 +КонецПроцедуры
 +</1c>
 +
 +===== Производителя отображать в маркировках =====
 +Пример для статики.
 +
 +<1c>
 +Процедура ДействияПослеПроведенияВетСертификата(Объект,​ Движения) Экспорт
 + ...
 + Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Исходящий Тогда
 + Запрос = Новый Запрос;​
 + Запрос.Текст = 
 + "​ВЫБРАТЬ
 + | ВП.Производитель
 + |ИЗ
 + | РегистрСведений.АСП_ВходящиеПартии КАК ВП
 + |ГДЕ
 + | ВП.Регистратор = &​Регистратор
 + | И ВП.НомерСтрокиТЧ = &​НомерСтрокиТЧ";​
 + Спис = Новый Массив;​
 + Для Каждого Движение Из Движения.АСП_СкладскиеЗаписи Цикл
 + Запрос.УстановитьПараметр("​НомерСтрокиТЧ",​ Движение.НомерСтрокиТЧ);​
 + Запрос.УстановитьПараметр("​Регистратор",​ Движение.Сертификат);​
 +
 + РЗ = Запрос.Выполнить().Выбрать();​
 + Если РЗ.Следующий() И Спис.Найти(РЗ.Производитель) = Неопределено Тогда
 + Спис.Добавить(РЗ.Производитель.Наименование);​
 + КонецЕсли;​
 + КонецЦикла;​
 +
 + Маркировка = "​UNDEFINED:"​+СтрСоединить(Спис,​ ","​);​
 + Для Каждого Движение ИЗ Движения.АСП_СкладскиеЗаписи Цикл
 + ТабФас = АСП_Функции.ФасовкаТаблицей(Движение.Фасовка);​
 + Для Каждого Фас Из ТабФас Цикл
 + Фас.Маркировки = Маркировка;​
 + КонецЦикла;​
 + Движение.Фасовка = ЗначениеВСтрокуВнутр(ТабФас);​
 + КонецЦикла;​
 + КонецЕсли;​
 +
 +КонецПроцедуры
 +</1c>
 +
 +===== Номер заказа для сетей =====
 +<1c>
 +Процедура ДозаполнитьПоляВетСертификата1С(Ссылка,​ ОбъектСертификата) Экспорт
 +...
 +Если ЗначениеЗаполнено(Ссылка.НомерЗаказаПокупателя) Тогда
 + Нов = ОбъектСертификата.Документы.Добавить();​
 + Нов.Тип = Справочники.АСП_ТипыДокументов.DOC16;​
 + Нов.Связь = Справочники.АСП_ТипыСвязейДокументов.REF6;​
 + Нов.Номер = Ссылка.НомерЗаказаПокупателя;​
 + Нов.Дата = Ссылка.Дата;​
 +КонецЕсли;​
 +...
 +КонецПроцедуры
 +</1c>
 +
 +===== Артикул для сетей =====
 +<1c>
 +Процедура ДозаполнитьПоляВетСертификата1С(Ссылка,​ ОбъектСертификата) Экспорт
 +...
 +Запрос = Новый Запрос(
 + "​ВЫБРАТЬ
 + | НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента
 + |ИЗ
 + | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
 + |ГДЕ
 + | НоменклатураКонтрагентов.Номенклатура = &​Номенклатура
 + | И НоменклатураКонтрагентов.Контрагент = &​Контрагент"​);​
 + Запрос.УстановитьПараметр("​Контрагент",​ Ссылка.Контрагент);​
 +Для Каждого Товар Из ОбъектСертификата.Товары Цикл
 + Запрос.УстановитьПараметр("​Номенклатура",​Товар.Номенклатура);​
 + Выбор = Запрос.Выполнить().Выбрать();​
 + Если Выбор.Следующий() Тогда
 + Товар.Артикул = Выбор.АртикулНоменклатурыКонтрагента;​
 + КонецЕсли;​
 +КонецЦикла;​
 +...
 +КонецПроцедуры
 +</1c>
 +
 +===== Спецификация для УПП =====
 +Для УПП Спецификация берется из РегистрСведений.ОсновныеСпецификацииНоменклатуры
 +<1c>
 +Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
 +...
 + Если ВидДокумента.ВидДокумента = "​ОтчетПроизводстваЗаСмену"​ Тогда
 + Возврат "​ВЫБРАТЬ
 +        | Ссылки.Ссылка КАК Ссылка,​
 +        | Н.Номенклатура КАК Номенклатура,​  ​       ​
 + | СУММА(Н.Количество/​ВИ.Количество*Т.Количество) КАК Количество,​  ​       ​
 +        | СУММА(0) КАК Сумма
 +        |ИЗ
 +        | СсылкиВет КАК Ссылки
 +        | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПроизводстваЗаСмену.Продукция КАК Т
 +        | ПО (Т.Ссылка = Ссылки.Ссылка)
 +        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
 +        | ПО (Т.Номенклатура = Р.Ссылка)
 +        | И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
 +        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(,​ ) КАК Осн
 +        | ПО (Т.Номенклатура = Осн.Номенклатура)
 +        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК Н
 +        | ПО (Осн.СпецификацияНоменклатуры = Н.Ссылка)
 + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК ВИ
 +        | ПО (Осн.СпецификацияНоменклатуры = ВИ.Ссылка)
 +        |
 +        |СГРУППИРОВАТЬ ПО
 +        | Ссылки.Ссылка,​
 +        | Т.Номенклатура,​
 +        | Н.Номенклатура
 + |УПОРЯДОЧИТЬ ПО
 + | Ссылки.Ссылка.МоментВремени";​
 +КонецЕсли;​
 +
 +...
 +КонецФункции
 +</1c>
 +
 +===== Спецификация для БП 2.0 =====
 +Для БП 2.0 Спецификация берется из ОсновнойСпецификации.Реквизит Номенклатуры
 +<1c>
 +Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
 +...
 + Если ВидДокумента.ВидДокумента = "​ОтчетПроизводстваЗаСмену"​ Тогда
 + Возврат "
 + |ВЫБРАТЬ
 + | Ссылки.Ссылка КАК Ссылка,​
 + | ИК.Номенклатура КАК Номенклатура,​
 + | СУММА(ИК.Количество/​ИК.Ссылка.Количество*Т.Количество) КАК Количество,​  ​       ​
 +         | СУММА(0) КАК Сумма
 + |ИЗ
 + | СсылкиВет КАК Ссылки
 + | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПроизводстваЗаСмену.Продукция КАК Т
 + | ПО (Т.Ссылка = Ссылки.Ссылка)
 + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК ИК
 + | ПО (Т.Номенклатура = ИК.Ссылка.Владелец)
 + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
 + | ПО ИК.Номенклатура = Р.Ссылка
 + | И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
 + |
 + |СГРУППИРОВАТЬ ПО
 + | Ссылки.Ссылка,​
 + | Т.Номенклатура,​
 + | ИК.Номенклатура
 + |
 + |УПОРЯДОЧИТЬ ПО
 + | Ссылки.Ссылка.МоментВремени";​
 + КонецЕсли;​
 +...
 +КонецФункции
 +</1c>
 +
 +===== Заполнить по документу Комплектация номенклатуры =====
 +<1c>
 +Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
 + Если ВидДокумента.ВидДокумента = "​КомплектацияНоменклатуры"​ Тогда
 + ТЗ= "
 + //"​ВЫБРАТЬ
 + //​| РеализацияТоваровУслуг.Ссылка
 + //​|ПОМЕСТИТЬ СсылкиВет
 + //|ИЗ
 + //​| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
 + //|;
 + //|
 + //​|////////////////////////////////////////////////////////////////////////////////​
 + |ВЫБРАТЬ
 + | Ссылки.Ссылка КАК Ссылка,​
 + | Т.Номенклатура КАК Номенклатура,​
 + | СУММА(ВЫБОР
 + | КОГДА Р.Вес = 0
 + | ТОГДА Т.Количество
 + | ИНАЧЕ Р.Вес * Т.Количество
 + | КОНЕЦ) КАК Количество,​
 + | СУММА(ВЫБОР
 + | КОГДА Р.Вес = 0
 + | ТОГДА ВЫБОР
 + | КОГДА Р.ОбъемУпаковки = 0
 + | ТОГДА ВЫРАЗИТЬ(Т.Количество + 0.4999999 КАК ЧИСЛО(15,​ 0))
 + | ИНАЧЕ ВЫРАЗИТЬ(Т.Количество / Р.ОбъемУпаковки + 0.4999999 КАК ЧИСЛО(15,​ 0))
 + | КОНЕЦ
 + | ИНАЧЕ Т.Количество
 + | КОНЕЦ) КАК КоличествоУпаковок
 + |ИЗ
 + | СсылкиВет КАК Ссылки
 + | ЛЕВОЕ СОЕДИНЕНИЕ Документ.КомплектацияНоменклатуры.Комплектующие КАК Т
 + | ПО (Т.Ссылка = Ссылки.Ссылка)
 + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
 + | ПО (Т.Номенклатура = Р.Ссылка)
 + | И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
 + |
 + |СГРУППИРОВАТЬ ПО
 + | Ссылки.Ссылка,​
 + | Т.Номенклатура
 + |
 + |УПОРЯДОЧИТЬ ПО
 + | Ссылки.Ссылка.МоментВремени";​
 + Возврат ТЗ
 + КонецЕсли;​
 КонецПроцедуры КонецПроцедуры
 </1c> </1c>