Инициализировать источник для обработчика ПередЗагрузкой ПКО

1. user1004898 27 27.10.20 17:04 Сейчас в теме
Пишу правила обмена.
Для переноса документа ЗаказКлиента настроил ПКС по всем необходимым свойствам и ТЧ.
(картинка 1).
В ПКО в обработчике ПередЗагрузкой, хочу проверять, если в базе Приемнике уже есть документ, с привязанным к нему ЗаказомНаПроизводство, с таким же номером как он есть и в базе Источнике, то док в Приемнике не создается и не заменятся.

Правила такие:
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗаказНаПроизводство.ЗаказПокупателяОснование.Ссылка КАК ЗаказПокупателя,
		|	ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
		|	ЗаказНаПроизводство.ЗаказПокупателяОснование.НомерИзУТП КАК ЗаказПокупателяНомерИзУТП,
		|	ЗаказНаПроизводство.ЗаказПокупателяОснование.ЗагруженИзУТП КАК ЗаказПокупателяЗагруженИзУТП
		|ИЗ
		|	Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
		|ГДЕ
		|	ЗаказНаПроизводство.ЗаказПокупателяОснование.Ссылка <> &ПустаяСсылка
		|	И ЗаказНаПроизводство.ЗаказПокупателяОснование.ЗагруженИзУТП";
	
	Запрос.УстановитьПараметр("ПустаяСсылка", Документы.ЗаказПокупателя.ПустаяСсылка());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		//ИсточникТовары = Источник.Товары.Выгрузить();
		//Объект = Выборка.ЗаказПокупателя.ПолучитьОбъект();
		
		Если Выборка.ЗаказПокупателяНомерИзУТП = Источник.Номер Тогда 
			ТЧТовары = Выборка.ЗаказПокупателя.Товары.Выгрузить();
			Для Каждого СтрокаТЧТовары Из ТЧТовары Цикл
				ИсточникТовары = Источник.Товары.Выгрузить();
				Для Каждого СтрокаИсточникТовары из ИсточникТовары Цикл
					Если СтрокаТЧТовары.Номенклатура <> СтрокаИсточникТовары.Номенклатура ИЛИ СтрокаТЧТовары.ХарактеристикаНоменклатуры <> СтрокаИсточникТовары.ХарактеристикаНоменклатуры 
						ИЛИ СтрокаТЧТовары.Количество <> СтрокаИсточникТовары.Количество Тогда
						ПометкаУдаления = Ложь;
						Отказ = Истина;
						Сообщить("Данный заказ № " + Выборка.ЗаказПокупателя.НомерИзУТП + " от " + Выборка.ЗаказПокупателя.Дата + " уже запущен в производство - заказ на производство № " + Выборка.ЗаказНаПроизводство.Номер + " от " + Выборка.ЗаказНаПроизводство.Дата + ", согласуйте изменение с начальником отдела по планированию производства!");
					Иначе
						ПометкаУдаления = Ложь;
						Отказ = Ложь;
					КонецЕсли;
				КонецЦикла;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
Показать


Сейчас понимаю, что объект Источник в данном обработчике не определился.
Собственно вопрос, как его определить, в каком обработчике и как передать в нужный мне ПередЗагрузкой?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. erazh 27.10.20 17:41 Сейчас в теме
С КД2 плотно не работал, так ... баловался. Работаю с КД3.

В КД3 это решается в обработчике "Перед записью полученных данных" ПКО следующим кодом:

Если ДанныеИБ <> Неопределено Тогда
ПолученныеДанные = Неопределено;
КонецЕсли;

И никто ничего не затирает уже созданное. Почитай справку к обработчикам, может там что найдешь.
user1464234; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот