Примеры заполнения сертификата: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
м Shihov переименовал страницу Отрывки:примеры заполнения сертификата в Примеры заполнения сертификата: Автоматическое переименование
Нет описания правки
Строка 297: Строка 297:
</1c>
</1c>
[[Category:Отрывки]]
[[Category:Отрывки]]
<vote type=1 />

Версия от 13:14, 7 марта 2025

Примеры заполнения шапки сертификата
Заполнение даты/номера заявки по комментарию

<1c> Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт

   ...

Если Найти(Ссылка.Комментарий, "Накладная создана на основании Заказа")>0 Тогда ОбъектСертификата.Документы.Очистить(); НовСтрТД = ОбъектСертификата.Документы.Добавить(); НовСтрТД.Тип = Справочники.АСП_ТипыДокументов.DOC16; НовСтрТД.Связь = Справочники.АСП_ТипыСвязейДокументов.REF6; Поз1 = Найти(Ссылка.Комментарий, "№"); Поз2 = Найти(Ссылка.Комментарий, " от "); Поз3 = Найти(Ссылка.Комментарий, " 0:00:00"); НовСтрТД.Номер = Сред(Ссылка.Комментарий, Поз1+1, Поз2-Поз1-1); НовСтрТД.Дата = Дата(Сред(Ссылка.Комментарий, Поз2+4, Поз3-Поз2-4+8)); КонецЕсли; КонецПроцедуры </1c>

Вариант розничной продажи

Порядок изменений:
- Добавить элементы в справочник

'АСП_ВидыДокументов1С

':<WRAP>

Наименование Вид документа Тип операции
Реализация на покупателя РеализацияТоваровУслуг Синхронизация остатков

</WRAP>

<1c> Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт

     ...	
     Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.СинхронизацияОстатков Тогда		                   			

Для каждого ТекТовар из Объект.Товары цикл Запрос = АСП_Функции.ПолучитьЗапросПоОстаткамДинамики(Объект.Организация, ТекТовар.Номенклатура, ТекТовар.Категория, Объект.ВидДокумента); Запрос.УстановитьПараметр("Остатки", ПараметрыСеанса.АСП_СкладскиеЗаписи.Получить()); Запрос.УстановитьПараметр("ГУИДПроизводителя", ""); Запись = АСП_Функции.ПолучитьЗапись(ТекТовар.Производитель, 1); Запрос.УстановитьПараметр("ГУИДПроизводителя", Запись.ГУИД); Запрос.УстановитьПараметр("ДатаВыработки", ТекТовар.ДатаВыработки); Запрос.УстановитьПараметр("КодПартии", ТекТовар.КодПартии);

Таб = Запрос.Выполнить().Выгрузить();

Рез = Таб[0].КоличествоОстаток - ТекТовар.Количество; ТекТовар.Количество = Рез; ТекТовар.ДатаВыработки = Таб[0].ДатаВыработки; ТекТовар.ДатаПросрочки = Таб[0].ДатаПросрочки; КонецЦикла; Объект.Записать(); КонецЕсли; КонецПроцедуры </1c>

Поднадзорный контрагента является партнер

<1c> Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт

   ...

Если ТипЗнч(Источник) = Тип("СправочникОбъект.Организации") ИЛИ ТипЗнч(Источник) = Тип("СправочникОбъект.Контрагенты") Тогда

   ...

ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Партнеры") Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Партнер = (&Партнер)";

Ссылка = Источник.Ссылка; Пока ЗначениеЗаполнено(Ссылка.Родитель) Цикл Ссылка = Ссылка.Родитель; КонецЦикла; Запрос.УстановитьПараметр("Партнер",Ссылка);

Для каждого ТекСтр из Запрос.Выполнить().Выгрузить() цикл Запись = АСП_Функции.ПолучитьЗапись(Источник.Ссылка, 1); Запись.Владелец = ТекСтр.Ссылка; Запись.Адрес = ПолучитьАдрес(Источник.Ссылка, "Фактический"); Запись.Записать(); КонецЦикла; ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Номенклатура") Тогда ... КонецЕсли;

КонецПроцедуры </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>

0.00
(0 голосов)