Помогите, как автоматически заполнить табличную часть. Есть документ реализация товара и справочник Технологическая Карта. В реализации товара две табличные части, первая заполняется на основании документа заказ клиента. Мне нужно заполнить вторую табличную часть ингредиентами для пиццы, взяв их из справочника. Ингредиенты заполняются для каждой пиццы из табличной части товары.
---
|ГДЕ
| ТехнологическаяКарта.Владелец = &Владелец";
Запрос.УстановитьПараметр("Владелец",ТехнологическаяКарта.Номенклатура);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл

//заполнение второй ТЧ

КонецЦикла;

КонецЕсли;
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
---
Алгоритм следующий у вас должен быть:
1. Запросом вытаскиваете строки из табличной части заказа
2. К ней левым соединением присоединяете таблицу с расходами (Технологическая карта). В ней ставите условие на родителя, чтобы коробки не попали в расход нового документа
3. Ставите итог по номенклатуре
4. Обходите результат запроса по группировкам (Номенклатура и детальные записи), заполняя по группировке номенклатура - табличную часть Товары, а по группировке детальные записи - табличную часть Ингридиенты
5. Устанавливаете отбор строк, чтобы при кликании в таблице с пиццами на определенную пиццу в нижней таблице с расходами отображались данные по конкретной пицце.

А дальше гуглите как это сделать, скачайте консоль запросов и в ней постепенно смотрите какой результат получается при выборе той или иной таблицы, используйте временные таблицы

И не используйте запрос в цикле, лучше сразу учитесь сперва получать данные одним запросом, а потом обрабатывать их
---
Добрый вечер! Для меня очень актуальна тема Вашего обращения. Если не составит труда могли бы Вы прислать конечный код процедуры и способ её использования (как вы к ней обращаетесь), можно в скринах
---
А сама не пробовала?
---
А в чем проблема? В момент ввода на основании, запросом читаем ингредиенты и добавляем в нужную табличную часть
---
не знаю как вытащить ингредиенты для конкретной пиццы, то есть у каждой свой состав и если в табличной части товары, например, сырная пицца, мне нужны только её ингредиенты
---
Обращайтесь к справочнику ТК по полю владелец(пицца), полученный результат грузить во вторую таблицу
---
Можете примерно по этому коду подсказать?
---
Условие добавьте.
Так как вы пока не "алё" сделайте в цикле хотя бы (так делать плохо). В цикле, то есть, запрос и обработка его результата добавить внутрь цикла сверху. Последними строками в процедуре будут КонецЦикла; КонецЕсли; КонецПроцедуры
---
Вот так?
---
Не совсем. Условие кривое
 но вы же понимаете что запрос нужно обработать? То есть не хватает еще кода добавления ингридиентов во вторую таблицу?
---
&Владелец оставьте. Но параметр значение - это ТекСтрокаЗаказ.Номенклатура
---
А можете всю процедуру написать? Я вообще в этом новичок :(
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
 //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
 // Данный фрагмент построен конструктором.
 // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
  // Заполнение шапки
  Покупатель = ДанныеЗаполнения.ИмяКлиента;
  Ответственный = ДанныеЗаполнения.Ответственный;
  ДокументОснования = ДанныеЗаполнения.Ссылка;
  СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;
  Для Каждого ТекСтрокаЗаказ Из ДанныеЗаполнения.Заказ Цикл
   НоваяСтрока = Товары.Добавить();
   НоваяСтрока.ЕдиницаПродажи = ТекСтрокаЗаказ.ЕдиницаПродажи;
   НоваяСтрока.Количество = ТекСтрокаЗаказ.Количество;
   НоваяСтрока.НДС = ТекСтрокаЗаказ.НДС;
   НоваяСтрока.Номенклатура = ТекСтрокаЗаказ.Номенклатура;
   НоваяСтрока.Сумма = ТекСтрокаЗаказ.Сумма;
   НоваяСтрока.СуммаСНДС = ТекСтрокаЗаказ.СуммаСНДС;
   НоваяСтрока.Цена = ТекСтрокаЗаказ.Цена;
   Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ТехнологическаяКарта.Номенклатура КАК Номенклатура,
    | ТехнологическаяКарта.ЕдиницыИзмерения КАК ЕдиницыИзмерения,
    | ТехнологическаяКарта.Склад КАК Склад,
    | ТехнологическаяКарта.Расход КАК Расход,
    | ТехнологическаяКарта.Владелец КАК Владелец
    |ИЗ
    | Справочник.ТехнологическаяКарта КАК ТехнологическаяКарта,
    | Документ.РеализацияТоваров КАК РеализацияТоваров
    |ГДЕ
    | ТехнологическаяКарта.Владелец = ТехнологическаяКарта.Номенклатура";
    РезультатЗапроса = Запрос.Выполнить();
   Для
   КонецЦикла;
 КонецЕсли;
 //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
---
|ГДЕ
| ТехнологическаяКарта.Владелец = &Владелец";
Запрос.УстановитьПараметр("Владелец",ТехнологическаяКарта.Номенклатура);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл

//заполнение второй ТЧ

КонецЦикла;

КонецЕсли;
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
---
Почти получилось...
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
 //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
 // Данный фрагмент построен конструктором.
 // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
  // Заполнение шапки
  Покупатель = ДанныеЗаполнения.ИмяКлиента;
  Ответственный = ДанныеЗаполнения.Ответственный;
  ДокументОснования = ДанныеЗаполнения.Ссылка;
  СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;
  Для Каждого ТекСтрокаЗаказ Из ДанныеЗаполнения.Заказ Цикл
   НоваяСтрока = Товары.Добавить();
   НоваяСтрока.ЕдиницаПродажи = ТекСтрокаЗаказ.ЕдиницаПродажи;
   НоваяСтрока.Количество = ТекСтрокаЗаказ.Количество;
   НоваяСтрока.НДС = ТекСтрокаЗаказ.НДС;
   НоваяСтрока.Номенклатура = ТекСтрокаЗаказ.Номенклатура;
   НоваяСтрока.Сумма = ТекСтрокаЗаказ.Сумма;
   НоваяСтрока.СуммаСНДС = ТекСтрокаЗаказ.СуммаСНДС;
   НоваяСтрока.Цена = ТекСтрокаЗаказ.Цена;
   Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ТехнологическаяКарта.Номенклатура КАК Номенклатура,
    | ТехнологическаяКарта.ЕдиницыИзмерения КАК ЕдиницыИзмерения,
    | ТехнологическаяКарта.Склад КАК Склад,
    | ТехнологическаяКарта.Расход КАК Расход,
    | ТехнологическаяКарта.Владелец КАК Владелец
    |ИЗ
    | Справочник.ТехнологическаяКарта КАК ТехнологическаяКарта,
    | Документ.РеализацияТоваров КАК РеализацияТоваров
    |ГДЕ
                | ТехнологическаяКарта.Владелец = &Владелец";
   Запрос.УстановитьПараметр("Владелец",ТекСтрокаЗаказ.Номенклатура);
   РезультатЗапроса = Запрос.Выполнить();
   Если НЕ РезультатЗапроса.Пустой() Тогда
    Выборка = РезультатЗапроса.Выбрать();
     Пока Выборка.Следующий() Цикл
                    НоваяСтрока1 = Ингредиенты.Добавить();
                    НоваяСтрока1.Номенклатура = Выборка.Номенклатура;
     НоваяСтрока1.ЕдиницыИзмерения = Выборка.ЕдиницыИзмерения;
     НоваяСтрока1.Склад = Выборка.Склад;
     НоваяСтрока1.Расход = Выборка.Расход;
     НоваяСтрока1.Количество = ТекСтрокаЗаказ.Количество;
     КонецЦикла;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
---
Такими темпами они там пиццу из коробок есть будут)
---
Коробки и салфетки отдельная тема)
---
Алгоритм следующий у вас должен быть:
1. Запросом вытаскиваете строки из табличной части заказа
2. К ней левым соединением присоединяете таблицу с расходами (Технологическая карта). В ней ставите условие на родителя, чтобы коробки не попали в расход нового документа
3. Ставите итог по номенклатуре
4. Обходите результат запроса по группировкам (Номенклатура и детальные записи), заполняя по группировке номенклатура - табличную часть Товары, а по группировке детальные записи - табличную часть Ингридиенты
5. Устанавливаете отбор строк, чтобы при кликании в таблице с пиццами на определенную пиццу в нижней таблице с расходами отображались данные по конкретной пицце.

А дальше гуглите как это сделать, скачайте консоль запросов и в ней постепенно смотрите какой результат получается при выборе той или иной таблицы, используйте временные таблицы

И не используйте запрос в цикле, лучше сразу учитесь сперва получать данные одним запросом, а потом обрабатывать их
---
Спасибо большое!