Переопределить ДанныеЗаполнения для Ввода на основании

1. Barok 20.12.19 13:34 Сейчас в теме
Имеется типовая конфигурация УТ 11.4. В неё добавил самописный документ ЗаявкаВРозницу. Поставил, что он является основанием для документа ОтчетОРозничныхПродажах. Появилась кнопка "Ввести на основании" на форме документа и на форме списка ЗаявкаВРозницу. Каким образом сформировать нужные ДанныеЗаполнения в Источнике (т.е. в Документе ЗаявкаВрозницу), чтобы они попали в ОбработкаЗаполнения в документе ОтчетОРозничныхПродажах?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Leoon 3 20.12.19 14:35 Сейчас в теме
(1) Можно как то так попробовать
ЭлементыОтбора = Новый Структура("Поставщик, Склад", СсылкаНаПоставщика, СсылкаНаСклад);
ОбъектНакладной = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
ОбъектНакладной.Заполнить(ЭлементыОтбора);


Но тогда обработказаполнения должна уметь обрабатывать структуру.
7. Barok 20.12.19 15:08 Сейчас в теме
(5) а где обрабатывать этот код?
2. mrChOP93 96 20.12.19 13:41 Сейчас в теме
Это надо в модуле объекта ОтчетОРозничныхПродажах в ОбработкаЗаполнения писать нужный код. Там передастся ссылка на документ ЗаявкаВРозницу, на основании которого ты создаешь.
3. Barok 20.12.19 14:02 Сейчас в теме
(2) это я знаю, что так можно. Но не хотелось бы изменять типовой документ. Возможно ли заранее переопределить эти ДанныеЗаполнения? Передать не весь документ, а нужную мне Структуру?
4. mrChOP93 96 20.12.19 14:09 Сейчас в теме
(3) подпиской на событие, думаю, можно. Событие ОбработкаЗаполнения
6. Barok 20.12.19 14:49 Сейчас в теме
Вобщем реализовал пока через расширение &После("ОбработкаЗаполнения"). Всё работает. Но если кто подскажет более правильный вариант и скажем если есть возможность прямо в источнике определить структуру передаваемых данных, буду признателен.
&После("ОбработкаЗаполнения")
Процедура РасшОтчОРоз_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаявкаВРозницу") Тогда
		//Заполнение табличной части
		Для Каждого СтрЗаявки Из ДанныеЗаполнения.Товары Цикл
8. mrChOP93 96 20.12.19 16:44 Сейчас в теме
(6)
Думаю, это самый правильный способ, единственное, я бы сделал вызов вместо, где написал бы

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


А то, в вашем варианте, сначала выполняется стандартная процедура, а потом ваша.
9. Barok 20.12.19 17:11 Сейчас в теме
(8) у меня в расширении "После". Мне и подходит выполнение вконце
Оставьте свое сообщение

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