Примеры заполнения шапки сертификата
Заполнение даты/номера заявки по комментарию
Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт
...
Если Найти(Ссылка.Комментарий, "Накладная создана на основании Заказа")>0 Тогда
ОбъектСертификата.Документы.Очистить();
НовСтрТД = ОбъектСертификата.Документы.Добавить();
НовСтрТД.Тип = Справочники.АСП_ТипыДокументов.DOC16;
НовСтрТД.Связь = Справочники.АСП_ТипыСвязейДокументов.REF6;
Поз1 = Найти(Ссылка.Комментарий, "№");
Поз2 = Найти(Ссылка.Комментарий, " от ");
Поз3 = Найти(Ссылка.Комментарий, " 0:00:00");
НовСтрТД.Номер = Сред(Ссылка.Комментарий, Поз1+1, Поз2-Поз1-1);
НовСтрТД.Дата = Дата(Сред(Ссылка.Комментарий, Поз2+4, Поз3-Поз2-4+8));
КонецЕсли;
КонецПроцедуры
Вариант розничной продажи
Порядок изменений:
- Добавить элементы в справочник АСП_ВидыДокументов1С:
Наименование Вид документа Тип операции Реализация на покупателя РеализацияТоваровУслуг Синхронизация остатков
Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт
...
Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.СинхронизацияОстатков Тогда
Для каждого ТекТовар из Объект.Товары цикл
Запрос = АСП_Функции.ПолучитьЗапросПоОстаткамДинамики(Объект.Организация, ТекТовар.Номенклатура, ТекТовар.Категория, Объект.ВидДокумента);
Запрос.УстановитьПараметр("Остатки", ПараметрыСеанса.АСП_СкладскиеЗаписи.Получить());
Запрос.УстановитьПараметр("ГУИДПроизводителя", "");
Запись = АСП_Функции.ПолучитьЗапись(ТекТовар.Производитель, 1);
Запрос.УстановитьПараметр("ГУИДПроизводителя", Запись.ГУИД);
Запрос.УстановитьПараметр("ДатаВыработки", ТекТовар.ДатаВыработки);
Запрос.УстановитьПараметр("КодПартии", ТекТовар.КодПартии);
Таб = Запрос.Выполнить().Выгрузить();
Рез = Таб[0].КоличествоОстаток - ТекТовар.Количество;
ТекТовар.Количество = Рез;
ТекТовар.ДатаВыработки = Таб[0].ДатаВыработки;
ТекТовар.ДатаПросрочки = Таб[0].ДатаПросрочки;
КонецЦикла;
Объект.Записать();
КонецЕсли;
КонецПроцедуры
Поднадзорный контрагента является партнер
Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт
...
Если ТипЗнч(Источник) = Тип("СправочникОбъект.Организации") ИЛИ ТипЗнч(Источник) = Тип("СправочникОбъект.Контрагенты") Тогда
...
ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Партнеры") Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Партнер = (&Партнер)";
Ссылка = Источник.Ссылка;
Пока ЗначениеЗаполнено(Ссылка.Родитель) Цикл
Ссылка = Ссылка.Родитель;
КонецЦикла;
Запрос.УстановитьПараметр("Партнер",Ссылка);
Для каждого ТекСтр из Запрос.Выполнить().Выгрузить() цикл
Запись = АСП_Функции.ПолучитьЗапись(Источник.Ссылка, 1);
Запись.Владелец = ТекСтр.Ссылка;
Запись.Адрес = ПолучитьАдрес(Источник.Ссылка, "Фактический");
Запись.Записать();
КонецЦикла;
ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Номенклатура") Тогда
...
КонецЕсли;
КонецПроцедуры
Производителя отображать в маркировках
Пример для статики.
Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт
...
Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Исходящий Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВП.Производитель
|ИЗ
| РегистрСведений.АСП_ВходящиеПартии КАК ВП
|ГДЕ
| ВП.Регистратор = &Регистратор
| И ВП.НомерСтрокиТЧ = &НомерСтрокиТЧ";
Спис = Новый Массив;
Для Каждого Движение Из Движения.АСП_СкладскиеЗаписи Цикл
Запрос.УстановитьПараметр("НомерСтрокиТЧ", Движение.НомерСтрокиТЧ);
Запрос.УстановитьПараметр("Регистратор", Движение.Сертификат);
РЗ = Запрос.Выполнить().Выбрать();
Если РЗ.Следующий() И Спис.Найти(РЗ.Производитель) = Неопределено Тогда
Спис.Добавить(РЗ.Производитель.Наименование);
КонецЕсли;
КонецЦикла;
Маркировка = "UNDEFINED:"+СтрСоединить(Спис, ",");
Для Каждого Движение ИЗ Движения.АСП_СкладскиеЗаписи Цикл
ТабФас = АСП_Функции.ФасовкаТаблицей(Движение.Фасовка);
Для Каждого Фас Из ТабФас Цикл
Фас.Маркировки = Маркировка;
КонецЦикла;
Движение.Фасовка = ЗначениеВСтрокуВнутр(ТабФас);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Номер заказа для сетей
Процедура ДозаполнитьПоляВетСертификата1С(Ссылка, ОбъектСертификата) Экспорт
...
Если ЗначениеЗаполнено(Ссылка.НомерЗаказаПокупателя) Тогда
Нов = ОбъектСертификата.Документы.Добавить();
Нов.Тип = Справочники.АСП_ТипыДокументов.DOC16;
Нов.Связь = Справочники.АСП_ТипыСвязейДокументов.REF6;
Нов.Номер = Ссылка.НомерЗаказаПокупателя;
Нов.Дата = Ссылка.Дата;
КонецЕсли;
...
КонецПроцедуры
Артикул для сетей
Процедура ДозаполнитьПоляВетСертификата1С(Ссылка, ОбъектСертификата) Экспорт
...
Запрос = Новый Запрос(
"ВЫБРАТЬ
| НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента
|ИЗ
| РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
|ГДЕ
| НоменклатураКонтрагентов.Номенклатура = &Номенклатура
| И НоменклатураКонтрагентов.Контрагент = &Контрагент");
Запрос.УстановитьПараметр("Контрагент", Ссылка.Контрагент);
Для Каждого Товар Из ОбъектСертификата.Товары Цикл
Запрос.УстановитьПараметр("Номенклатура",Товар.Номенклатура);
Выбор = Запрос.Выполнить().Выбрать();
Если Выбор.Следующий() Тогда
Товар.Артикул = Выбор.АртикулНоменклатурыКонтрагента;
КонецЕсли;
КонецЦикла;
...
КонецПроцедуры
Спецификация для УПП
Для УПП Спецификация берется из РегистрСведений.ОсновныеСпецификацииНоменклатуры
Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
...
Если ВидДокумента.ВидДокумента = "ОтчетПроизводстваЗаСмену" Тогда
Возврат "ВЫБРАТЬ
| Ссылки.Ссылка КАК Ссылка,
| Н.Номенклатура КАК Номенклатура,
| СУММА(Н.Количество/ВИ.Количество*Т.Количество) КАК Количество,
| СУММА(0) КАК Сумма
|ИЗ
| СсылкиВет КАК Ссылки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПроизводстваЗаСмену.Продукция КАК Т
| ПО (Т.Ссылка = Ссылки.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
| ПО (Т.Номенклатура = Р.Ссылка)
| И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(, ) КАК Осн
| ПО (Т.Номенклатура = Осн.Номенклатура)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК Н
| ПО (Осн.СпецификацияНоменклатуры = Н.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК ВИ
| ПО (Осн.СпецификацияНоменклатуры = ВИ.Ссылка)
|
|СГРУППИРОВАТЬ ПО
| Ссылки.Ссылка,
| Т.Номенклатура,
| Н.Номенклатура
|УПОРЯДОЧИТЬ ПО
| Ссылки.Ссылка.МоментВремени";
КонецЕсли;
...
КонецФункции
Спецификация для БП 2.0
Для БП 2.0 Спецификация берется из ОсновнойСпецификации.Реквизит Номенклатуры
Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
...
Если ВидДокумента.ВидДокумента = "ОтчетПроизводстваЗаСмену" Тогда
Возврат "
|ВЫБРАТЬ
| Ссылки.Ссылка КАК Ссылка,
| ИК.Номенклатура КАК Номенклатура,
| СУММА(ИК.Количество/ИК.Ссылка.Количество*Т.Количество) КАК Количество,
| СУММА(0) КАК Сумма
|ИЗ
| СсылкиВет КАК Ссылки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПроизводстваЗаСмену.Продукция КАК Т
| ПО (Т.Ссылка = Ссылки.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК ИК
| ПО (Т.Номенклатура = ИК.Ссылка.Владелец)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
| ПО ИК.Номенклатура = Р.Ссылка
| И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
|
|СГРУППИРОВАТЬ ПО
| Ссылки.Ссылка,
| Т.Номенклатура,
| ИК.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Ссылки.Ссылка.МоментВремени";
КонецЕсли;
...
КонецФункции
Заполнить по документу Комплектация номенклатуры
Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
Если ВидДокумента.ВидДокумента = "КомплектацияНоменклатуры" Тогда
ТЗ= "
//"ВЫБРАТЬ
//| РеализацияТоваровУслуг.Ссылка
//|ПОМЕСТИТЬ СсылкиВет
//|ИЗ
//| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
//|;
//|
//|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Ссылки.Ссылка КАК Ссылка,
| Т.Номенклатура КАК Номенклатура,
| СУММА(ВЫБОР
| КОГДА Р.Вес = 0
| ТОГДА Т.Количество
| ИНАЧЕ Р.Вес * Т.Количество
| КОНЕЦ) КАК Количество,
| СУММА(ВЫБОР
| КОГДА Р.Вес = 0
| ТОГДА ВЫБОР
| КОГДА Р.ОбъемУпаковки = 0
| ТОГДА ВЫРАЗИТЬ(Т.Количество + 0.4999999 КАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(Т.Количество / Р.ОбъемУпаковки + 0.4999999 КАК ЧИСЛО(15, 0))
| КОНЕЦ
| ИНАЧЕ Т.Количество
| КОНЕЦ) КАК КоличествоУпаковок
|ИЗ
| СсылкиВет КАК Ссылки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.КомплектацияНоменклатуры.Комплектующие КАК Т
| ПО (Т.Ссылка = Ссылки.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АСП_Товары КАК Р
| ПО (Т.Номенклатура = Р.Ссылка)
| И (НЕ Р.Категория = ЗНАЧЕНИЕ(Справочник.АСП_КатегорииНоменклатуры.ПустаяСсылка))
|
|СГРУППИРОВАТЬ ПО
| Ссылки.Ссылка,
| Т.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Ссылки.Ссылка.МоментВремени";
Возврат ТЗ
КонецЕсли;
КонецПроцедуры