Это старая версия документа.


Примеры заполнения шапки сертификата

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

Порядок изменений:

  1. Добавить элементы в справочник АСП_ВидыДокументов1С:
    Наименование Вид документа Тип операции
    Реализация на покупателя РеализацияТоваровУслуг Синхронизация остатков
Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт
      ...	
      Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.СинхронизацияОстатков Тогда		                   			
		Для каждого ТекТовар из Объект.Товары цикл			
			Запрос = АСП_Функции.ПолучитьЗапросПоОстаткамДинамики(Объект.Организация, ТекТовар.Номенклатура, ТекТовар.Категория, Объект.ВидДокумента);
			Запрос.УстановитьПараметр("Остатки", ПараметрыСеанса.АСП_СкладскиеЗаписи.Получить());			
		    Запрос.УстановитьПараметр("ГУИДПроизводителя", "");		
		    Запись = АСП_Функции.ПолучитьЗапись(ТекТовар.Производитель, 1);
		    Запрос.УстановитьПараметр("ГУИДПроизводителя", Запись.ГУИД);
			Запрос.УстановитьПараметр("ДатаВыработки", ТекТовар.ДатаВыработки);		
			Запрос.УстановитьПараметр("КодПартии", ТекТовар.КодПартии);
			
			Таб = Запрос.Выполнить().Выгрузить();
			
			Рез = Таб[0].КоличествоОстаток - ТекТовар.Количество;
			ТекТовар.Количество = Рез;
			ТекТовар.ДатаВыработки = Таб[0].ДатаВыработки;
			ТекТовар.ДатаПросрочки = Таб[0].ДатаПросрочки;
		КонецЦикла;		
		Объект.Записать();
	КонецЕсли;
КонецПроцедуры
Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт
    ...
	Если ТипЗнч(Источник) = Тип("СправочникОбъект.Организации") ИЛИ ТипЗнч(Источник) = Тип("СправочникОбъект.Контрагенты") Тогда
    ...
	ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Партнеры") Тогда		
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
		               |	Контрагенты.Ссылка КАК Ссылка
		               |ИЗ
		               |	Справочник.Контрагенты КАК Контрагенты
		               |ГДЕ
		               |	Контрагенты.Партнер = (&Партнер)";
		
		Ссылка = Источник.Ссылка;
		Пока ЗначениеЗаполнено(Ссылка.Родитель) Цикл
			Ссылка = Ссылка.Родитель;
		КонецЦикла;		
		Запрос.УстановитьПараметр("Партнер",Ссылка);
		
		Для каждого ТекСтр из Запрос.Выполнить().Выгрузить() цикл
			Запись = АСП_Функции.ПолучитьЗапись(Источник.Ссылка, 1);
			Запись.Владелец = ТекСтр.Ссылка;
			Запись.Адрес = ПолучитьАдрес(Источник.Ссылка, "Фактический");
			Запись.Записать();
		КонецЦикла;
	ИначеЕсли ТипЗнч(Источник) = Тип("СправочникОбъект.Номенклатура") Тогда
	...
	КонецЕсли;

КонецПроцедуры

Пример для статики.

Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт
	...
	Если Объект.ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Исходящий Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	ВП.Производитель
			|ИЗ
			|	РегистрСведений.АСП_ВходящиеПартии КАК ВП
			|ГДЕ
			|	ВП.Регистратор = &Регистратор
			|	И ВП.НомерСтрокиТЧ = &НомерСтрокиТЧ";
		Спис = Новый Массив;
		Для Каждого Движение Из Движения.АСП_СкладскиеЗаписи Цикл
			Запрос.УстановитьПараметр("НомерСтрокиТЧ", Движение.НомерСтрокиТЧ);
			Запрос.УстановитьПараметр("Регистратор", Движение.Сертификат);
		
			РЗ = Запрос.Выполнить().Выбрать();
			Если РЗ.Следующий() И Спис.Найти(РЗ.Производитель) = Неопределено Тогда
				Спис.Добавить(РЗ.Производитель.Наименование);
			КонецЕсли;
		КонецЦикла;
		
		Маркировка = "UNDEFINED:"+СтрСоединить(Спис, ",");
		Для Каждого Движение ИЗ Движения.АСП_СкладскиеЗаписи Цикл
			ТабФас = АСП_Функции.ФасовкаТаблицей(Движение.Фасовка);
			Для Каждого Фас Из ТабФас Цикл
				Фас.Маркировки = Маркировка;
			КонецЦикла;
			Движение.Фасовка = ЗначениеВСтрокуВнутр(ТабФас);
		КонецЦикла;
	КонецЕсли;

КонецПроцедуры