1С Режим Конфигуратор



Дополнение - часть 8


Например, в изделии А (10 шт.) есть комплектующая К, и в изделии Б (10 шт.) есть комплектующая К. Суммарно изделие К должно быть списано из партии 1 и из партии 2 по 10 штук, но этот механизм дважды спишет К из партии 1. А это неправильно. Перепишем эту процедуру заново:

Процедура ОбработкаПроведения()

  Если Склад.Выбран()=0 Тогда

    Сообщить("Документ Наряд на сборку №"+НомерДок+" от "+ДатаДок+"

    |не проведен.

    |Не выбран склад заготовок");

    НеПроводитьДокумент();

    Возврат;

  КонецЕсли;

  Если Сборщик.Выбран()=0 Тогда

    Сообщить("Документ Наряд на сборку №"+НомерДок+" от "+ДатаДок+"

    |не проведен.

    |Не указан сборщик");

    НеПроводитьДокумент();

    Возврат;

  КонецЕсли;

  ТабЗн=СоздатьОбъект("ТаблицаЗначений");

  ТабЗн.НоваяКолонка("Ком","Справочник.Комплектующие");

  ТабЗн.НоваяКолонка("Кол","Число",12,0);

  СпрКом=СоздатьОбъект("Справочник.Комплектация");

  ВыбратьСтроки();

  Пока ПолучитьСтроку()=1 Цикл

    СпрКом.ИспользоватьВладельца(Изделие);

    СпрКом.ВыбратьЭлементы();

    Пока СпрКом.ПолучитьЭлемент()=1 Цикл

      ТабЗн.НоваяСтрока();

      ТабЗн.Ком=СпрКом.ТекущийЭлемент().Комплектующее;

      ТабЗн.Кол=Кол;

    КонецЦикла;

    СпрКом.ИспользоватьВладельца("");

  КонецЦикла;

  БухИтоги=СоздатьОбъект("БухгалтерскиеИтоги");

  БухИтоги.ИспользоватьПланСчетов(ПланыСчетов.Наш);

  БухИтоги.ИспользоватьРазделительУчета(ФирмаДокумента);

  ФлагОтказа=0;

  ТабЗн.Свернуть("1","2");

  ТабЗн.ВыбратьСтроки();

  Пока ТабЗн.ПолучитьСтроку()=1 Цикл

    Ком=ТабЗн.Ком;




Содержание  Назад  Вперед