Имя: Пароль:
1C
1С v8
УТ 11 реализация заполнять комплектующими номенклатуры
0 anisa8310
 
23.07.13
10:17
1С:Предприятие 8.2 (8.2.18.104)
Управление торговлей, редакция 11.1 (11.1.2.6)

В конфе есть док-т "Сборка/Разборка товаров" пытаюсь сделать так чтобы ТЧ в реализации заполнялась комплектующими если реквизит объекта номенклатуры "Комплект=Истина". Скрины по ссылке..не могу прикрутить процедуру вроде б ТЧ одинаковые...Помогите разобраться кто может разобраться .заранее всех благодарю за внимание!
http://i018.radikal.ru/1307/d3/92fb0651406f.jpg

http://s005.radikal.ru/i209/1307/f2/cbc82b2484fa.jpg


код процедур из сборки:
Процедура ЗаполнитьКомплектующими(Команда)

   Если Не ЗначениеЗаполнено(Объект.ВариантКомплектации) Тогда

       ОчиститьСообщения();

       ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Не указано поле ""Комплектация""'"),,
               "ВариантКомплектации",
               "Объект");

       Возврат;
   КонецЕсли;

   ЗаполнитьТоварыПоВариантуКомплектации();

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


Процедура ЗаполнитьТоварыПоВариантуКомплектации()

   Если Не ЗначениеЗаполнено(Объект.ЗаказНаСборку) Тогда

       ОбновитьПризнакИспользованияХарактеристик = Истина;
       Объект.Товары.Загрузить(Справочники.ВариантыКомплектацииНоменклатуры.ПолучитьКомплектующиеНоменклатуры(
                               Объект.ВариантКомплектации, , Объект.Количество));
   Иначе
       // Строки добавляться не будут. Только обновление количества.
       ОбновитьПризнакИспользованияХарактеристик = Ложь;

       ТаблицаКомплектцющих = Справочники.ВариантыКомплектацииНоменклатуры.ПолучитьКомплектующиеНоменклатуры(
                               Объект.ВариантКомплектации, , Объект.Количество);
       ТаблицаКомплектцющих.Индексы.Добавить("Номенклатура, Характеристика, Упаковка");

       // Обновим количество в существующих строках.
       СтруктураПоиска = Новый Структура("Номенклатура, Характеристика, Упаковка");
       Для Каждого СтрокаТЧ Из Объект.Товары Цикл

           ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтрокаТЧ);
           СтрокиКомплектующих = ТаблицаКомплектцющих.НайтиСтроки(СтруктураПоиска);
           Если СтрокиКомплектующих.Количество() = 0 Тогда
               Продолжить;
           КонецЕсли;

           СтрокаТЧ.Количество         = СтрокиКомплектующих[0].Количество;
           СтрокаТЧ.КоличествоУпаковок = СтрокиКомплектующих[0].КоличествоУпаковок;

           ТаблицаКомплектцющих.Удалить(СтрокиКомплектующих[0]);
       КонецЦикла;

   КонецЕсли;

   Если ОбновитьПризнакИспользованияХарактеристик Тогда
       НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(
           Объект.Товары,
           Новый Структура("ЗаполнитьПризнакХарактеристикиИспользуются, ЗаполнитьПризнакВедетсяУчетПоГТД, ЗаполнитьПризнакАртикул",
               Новый Структура("Номенклатура", "ХарактеристикиИспользуются"),
               Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"),
               Новый Структура("Номенклатура", "Артикул")));
   КонецЕсли;
   
   НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий.ТЧ);

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


Этот код можно вообще использовать в реализации? У меня выбора нет надо чтобы комплектующими заполняла и все...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.