Заполнение табличной части документа из нескольких документов
Сделал обработку "Создание связных объектов" и если выбрать в качестве основания один документа то все работает.
А вот если выбрать два и более документов то уже не получается заполнить табличную часть документа товарами и ценами из нескольких документов.
Как мне из нескольких документов собрать одну большую табличную часть, не описывая при это заполнения каждого отдельного реквизита табличной части?
Работаю с типом объекта "ДанныеФормыКоллекция"
А вот если выбрать два и более документов то уже не получается заполнить табличную часть документа товарами и ценами из нескольких документов.
Как мне из нескольких документов собрать одну большую табличную часть, не описывая при это заполнения каждого отдельного реквизита табличной части?
Работаю с типом объекта "ДанныеФормыКоллекция"
По теме из базы знаний
- Обработка заполнения табличной части документа: подбор по справочнику номенклатуры + заполнение полей Количество и Цена
- Заполнение табличной части документа табличной частью других документов (Обычные формы)
- Распределение суммы по строкам. Пример внешней обработки заполнения табличной части документа
- Заполнение табличных частей документов одного вида из табличных частей списка документов другого вида (альтернатива ввода на основании)
- Заполнение табличной части документа "Счет на оплату покупателя" на основании нескольких документов "Счет на оплату покупателя"
Найденные решения
Не очень понятно в чем именно у вас проблема. Сначала вы говорите, что не можете создать документ, когда оснований несколько, но потом обращаете внимание на метод заполнения реквизитов, хотя это не принципиально в решении вышеуказанной проблемы.
Вот небольшой пример обработки, которая создает документ ПоступлениеТоваровУслуг на основании одного или нескольких документов ПоступлениеТоваровУслуг.
В модуле обработки:
В модуле формы обработки:
Вот небольшой пример обработки, которая создает документ ПоступлениеТоваровУслуг на основании одного или нескольких документов ПоступлениеТоваровУслуг.
В модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ТекущаяВерсияБП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ТекущаяВерсияБП);
ПараметрыРегистрации.Наименование = "Создание связанных объектов (пример)";
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиСозданиеСвязанныхОбъектов();
ПараметрыРегистрации.Назначение.Добавить("Документ.ПоступлениеТоваровУслуг");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Создать новый документ на основании";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
НоваяКоманда.Идентификатор = "СоздатьНаОсновании";
Возврат ПараметрыРегистрации;
КонецФункции
ПоказатьВ модуле формы обработки:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт
ФормаНовогоДокумента = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокументаТовары");
ДанныеФормы = ФормаНовогоДокумента.Объект;
СоздатьДокументНаОсновании(ОбъектыНазначенияМассив, ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, ФормаНовогоДокумента.Объект);
ФормаНовогоДокумента.Модифицированность = Истина;
ФормаНовогоДокумента.Открыть();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СоздатьДокументНаОсновании(ОбъектыНазначенияМассив, ДанныеФормы)
ДокументОбъект = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ПоступлениеТоваровУслуг"));
ЗаполнитьЗначенияСвойств(ДокументОбъект, ОбъектыНазначенияМассив[0], , "Номер,Дата");
Для Каждого Основание Из ОбъектыНазначенияМассив Цикл
ОснованиеОбъект = Основание.ПолучитьОбъект();
Для Каждого Стр Из ОснованиеОбъект.Товары Цикл
НоваяСтрока = ДокументОбъект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
КонецЦикла;
КонецЦикла;
ЗначениеВДанныеФормы(ДокументОбъект, ДанныеФормы);
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не очень понятно в чем именно у вас проблема. Сначала вы говорите, что не можете создать документ, когда оснований несколько, но потом обращаете внимание на метод заполнения реквизитов, хотя это не принципиально в решении вышеуказанной проблемы.
Вот небольшой пример обработки, которая создает документ ПоступлениеТоваровУслуг на основании одного или нескольких документов ПоступлениеТоваровУслуг.
В модуле обработки:
В модуле формы обработки:
Вот небольшой пример обработки, которая создает документ ПоступлениеТоваровУслуг на основании одного или нескольких документов ПоступлениеТоваровУслуг.
В модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ТекущаяВерсияБП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ТекущаяВерсияБП);
ПараметрыРегистрации.Наименование = "Создание связанных объектов (пример)";
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиСозданиеСвязанныхОбъектов();
ПараметрыРегистрации.Назначение.Добавить("Документ.ПоступлениеТоваровУслуг");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Создать новый документ на основании";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
НоваяКоманда.Идентификатор = "СоздатьНаОсновании";
Возврат ПараметрыРегистрации;
КонецФункции
ПоказатьВ модуле формы обработки:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт
ФормаНовогоДокумента = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокументаТовары");
ДанныеФормы = ФормаНовогоДокумента.Объект;
СоздатьДокументНаОсновании(ОбъектыНазначенияМассив, ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, ФормаНовогоДокумента.Объект);
ФормаНовогоДокумента.Модифицированность = Истина;
ФормаНовогоДокумента.Открыть();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СоздатьДокументНаОсновании(ОбъектыНазначенияМассив, ДанныеФормы)
ДокументОбъект = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ПоступлениеТоваровУслуг"));
ЗаполнитьЗначенияСвойств(ДокументОбъект, ОбъектыНазначенияМассив[0], , "Номер,Дата");
Для Каждого Основание Из ОбъектыНазначенияМассив Цикл
ОснованиеОбъект = Основание.ПолучитьОбъект();
Для Каждого Стр Из ОснованиеОбъект.Товары Цикл
НоваяСтрока = ДокументОбъект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
КонецЦикла;
КонецЦикла;
ЗначениеВДанныеФормы(ДокументОбъект, ДанныеФормы);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот