8.х Заполнить по спецификации табличную часть, используя остатки номенклатуры

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем fisenko-ip, 21 фев 2017.

  1. TopicStarter Overlay
    fisenko-ip
    Offline

    fisenko-ip

    Регистрация:
    21 фев 2017
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Добрый день, не судите строго, я начинающий программист. Есть конфигурация, немного переписанная на базе УНФ 1.6. Есть документ "Сборка запасов", на таб. части есть кнопка "Заполнить по спецификации", после объединения в запросе спецификации и регистра накопления, в табличную часть "материалы" попадают все остатки из регистра накопления, как ограничить, чтобы попадало то количество из остатков, которое необходимо в спецификации
    Использую код:
    Код:
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
       //
       Запрос = Новый Запрос;
       Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
       Запрос.Текст =
       "ВЫБРАТЬ
       |   ТаблицаПродукция.НомерСтроки КАК НомерСтроки,
       |   ТаблицаПродукция.Количество КАК Количество,
       |   ТаблицаПродукция.Спецификация КАК Спецификация
       |ПОМЕСТИТЬ ВременнаяТаблицаПродукция
       |ИЗ
       |   &ТаблицаПродукция КАК ТаблицаПродукция
       |ГДЕ
       |   ТаблицаПродукция.Спецификация <> ЗНАЧЕНИЕ(Справочник.Спецификации.ПустаяСсылка)";
     
       Если ТаблицаУзлы = Неопределено Тогда
         Запасы.Очистить();
         ТаблицаПродукция = Продукция.Выгрузить();
         ТаблицаУзлы = ТаблицаПродукция.СкопироватьКолонки("НомерСтроки,Количество, Спецификация");
         Запрос.УстановитьПараметр("ТаблицаПродукция", ТаблицаПродукция);
         КонецЕсли;
     
       Запрос.Выполнить();
     
       Запрос.Текст =
     
     
       "ВЫБРАТЬ
       |   ТаблицаПродукция.Спецификация КАК СпецификацияПродукции,
       |   МИНИМУМ(ТаблицаМатериалы.НомерСтроки) КАК НомерСтрокиСостава,
       |   ТаблицаМатериалы.Номенклатура КАК Номенклатура,
       |   СУММА(ТаблицаМатериалы.Количество / ТаблицаМатериалы.КоличествоПродукции * ТаблицаПродукция.Количество) КАК Количество,
       |   ТаблицаМатериалы.Спецификация КАК Спецификация,
       |   ТаблицаМатериалы.Ссылка
       |ПОМЕСТИТЬ ДокТЧ
       |ИЗ
       |   ВременнаяТаблицаПродукция КАК ТаблицаПродукция
       |     ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК ТаблицаМатериалы
       |     ПО ТаблицаПродукция.Спецификация = ТаблицаМатериалы.Ссылка
       |ГДЕ
       |   ТаблицаМатериалы.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
       |
       |СГРУППИРОВАТЬ ПО
       |   ТаблицаПродукция.Спецификация,
       |   ТаблицаМатериалы.Номенклатура,
       |   ТаблицаМатериалы.Спецификация,
       |   ТаблицаМатериалы.Ссылка
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |   СерийныеНомераОстатки.Номенклатура,
       |   СерийныеНомераОстатки.СерийныйНомер,
       |   ДокТЧ.Номенклатура КАК НоменклатураТаб,
       |   ДокТЧ.Ссылка
       |ИЗ
       |   ДокТЧ КАК ДокТЧ
       |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СерийныеНомера.Остатки КАК СерийныеНомераОстатки
       |     ПО ДокТЧ.Номенклатура = СерийныеНомераОстатки.Номенклатура
       |
       |СГРУППИРОВАТЬ ПО
       |   СерийныеНомераОстатки.Номенклатура,
       |   ДокТЧ.Номенклатура,
       |   СерийныеНомераОстатки.СерийныйНомер,
       |   ДокТЧ.Ссылка";
       Запрос.УстановитьПараметр("Ссылка", Ссылка);
     
       Выборка = Запрос.Выполнить().Выбрать();
       Пока Выборка.Следующий() Цикл
           НоваяСтрока = Запасы.Добавить();
           НоваяСтрока.Номенклатура = Выборка.Номенклатура;
           НоваяСтрока.СерийныеНомера = Выборка.СерийныйНомер;
           КонецЦикла;
       СтекСпецификацийУзлов.Очистить();
     
     
       //Запасы.Свернуть("Номенклатура, Характеристика, Партия, ЕдиницаИзмерения, Спецификация", "Количество, Резерв");
    Если сворачиваю запасы, то серийные номера не заполняются(((
    Последнее редактирование модератором: 22 фев 2017

Поделиться этой страницей