PDA

Просмотр полной версии : Работа с документами



Рус07
04.04.2015, 16:56
Добрый день.
Есть два документа: ЗаказыПокупателя и РеализацияТоваровИУслуг. Документ РеализацияТоваровИУслуг создаётся на основании документа ЗаказыПокупателя.
задача состоит в следующем: доработать код, созданный с помощью конструктора, таким образом, чтобы при создании документа реализации товаров на основании заказа, в документ попадали не все товары и услуги из заказа, а только те, которые ещё не отгружены по данному заказу.
Задачу нужно решить без использования регистров накопления и регистров сведений и желательно без запроса.


Процедура ОбработкаЗаполнения(Данны� �Заполнения, СтандартнаяОбработка)

// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокуп� �теля") Тогда
// Заполнение шапки
КонтактноеЛицо = ДанныеЗаполнения.Контактн� �еЛицо;
Контрагенты = ДанныеЗаполнения.Контраге� �ты;
ОбщаяСумма = ДанныеЗаполнения.ОбщаяСум� �а;
ИдентификаторЗаказа = ДанныеЗаполнения.Ссылка;
Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
НоваяСтрока.ЕдиницаИзмере� �ия = ТекСтрокаТовары.ЕдиницаИз� �ерения;
НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклат� �ра;
НоваяСтрока.Цена = ТекСтрокаТовары.Цена;
КонецЦикла;
Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
НоваяСтрока = Услуги.Добавить();
НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклат� �ра;
НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
КонецЦикла;
КонецЕсли;

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

alexandr_ll
05.04.2015, 09:39
задача состоит в следующем: доработать код, созданный с помощью конструктора, таким образом, чтобы при создании документа реализации товаров на основании заказа, в документ попадали не все товары и услуги из заказа, а только те, которые ещё не отгружены по данному заказу.
Перед заполнением табличной части документа РеализацияТоваровИУслуг создаете Таблицу значений, выгрузив табличную часть Заказа, добавляете в нее колонку Отгружено.
По каждой строке таблицы значений запускаете цикл по документам реализации с поиском уже отгруженных товаров и наращиваем показатель Отгружено.
Заполняем табличную часть только теми товарами, которые еще не отгружены (Количество больше Отгружено).
Как-то так.
Следует иметь ввиду, что цикл проверки отгрузки может получиться длительным. Поэтому при большом количестве заказов и отгрузок имеет смысл все же создать Регистр накопления Заказы и получать нужное количество из него.