Вот есть меню там есть блюдо и к нему должны подтягиваться компоненты, они тянуться только не один а от общего числа
Вот 6 сыра и должно быть один. цыкл кудато не туда втулил чтоли?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МенюБлюда.Ссылка.Дата,
| МенюБлюда.Ссылка.ДатаМеню,
| МенюБлюда.Ссылка.Подразделение,
| МенюБлюда.Ссылка.ГруппаПитания,
| МенюБлюда.Ссылка.ПриёмПищи,
| МенюБлюда.Ссылка.КоличествоПитающихся,
| МенюБлюда.Блюдо,
| МенюБлюда.Выход1,
| МенюБлюда.ЕдиницаВыхода,
| МенюБлюда.Выход2,
| МенюБлюда.Выход3,
| МенюБлюда.КоличествоПорций,
| МенюБлюда.Меню1,
| МенюБлюда.Меню2,
| МенюБлюда.Ссылка.Номер КАК Номер,
| МенюБлюда.Ссылка.Ответственный,
| МенюБлюда.Ссылка.Комментарий,
| МенюБлюда.ИдентификаторБлюда
|ИЗ
| Документ.Меню.Блюда КАК МенюБлюда
|ГДЕ
| МенюБлюда.Ссылка.ДатаМеню МЕЖДУ &ДатаМенюС И &ДатаМенюПо";
Запрос.УстановитьПараметр("ДатаМенюПо", Объект.ДатаПо);
Запрос.УстановитьПараметр("ДатаМенюС", Объект.ДатаС);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Док = Документы.МенюДляОфБух.НайтиПоНомеру(Выборка.Номер);
Если НЕ Док.Пустая() Тогда
Для Каждого Строка из Док.Блюда цикл
Если Строка.Блюдо = Выборка.Блюдо Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
Док = Док.ПолучитьОбъект();
Иначе
Док = Документы.МенюДляОфБух.СоздатьДокумент();
КонецЕсли;
Док.Дата = Выборка.Дата;
Док.ДатаМеню = Выборка.ДатаМеню;
Док.ГруппаПитания = Выборка.ГруппаПитания;
Док.КоличествоПитающихся = Выборка. КоличествоПитающихся;
Док.Комментарий = Выборка. Комментарий;
Док.Номер = Выборка.Номер;
Док.Ответственный = Выборка.Ответственный;
Док.Подразделение = Выборка.Подразделение;
Док.ПриёмПищи = Выборка.ПриёмПищи;
///////////Запись Блюда
НовСтрока = Док.Блюда.Добавить();
НовСтрока.Блюдо = Выборка.Блюдо;
НовСтрока.ИдентификаторБлюда = Выборка.ИдентификаторБлюда;
НовСтрока.Выход1 = Выборка.Выход1;
НовСтрока.ЕдиницаВыхода = Выборка.ЕдиницаВыхода;
НовСтрока.Выход2 = Выборка.Выход2;
НовСтрока.Выход3 = Выборка.Выход3;
НовСтрока.КоличествоПорций = Выборка.КоличествоПорций;
НовСтрока.Меню1 = Выборка.Меню1;
НовСтрока.Меню2 = Выборка.Меню2;
///////////////Запись компонента
ПараметрыБлюда = Компонент(Выборка.Номер);
Для каждого КомпонентПолученный из ПараметрыБлюда цикл
НовыйКомпонент = Док.КомпонентыБлюд.Добавить();
НовыйКомпонент.ИдентификаторБлюда = КомпонентПолученный.ИдентификаторБлюда;
НовыйКомпонент.Компонент = КомпонентПолученный.Компонент;
НовыйКомпонент.ЗакладкаБрутто = КомпонентПолученный.ЗакладкаБрутто;
НовыйКомпонент.ЕдиницаИзмеренияБрутто = КомпонентПолученный.ЕдиницаИзмеренияБрутто;
НовыйКомпонент.ЗакладкаНетто = КомпонентПолученный.ЗакладкаНетто;
НовыйКомпонент.ЕдиницаИзмеренияНетто = КомпонентПолученный.ЕдиницаИзмеренияНетто;
НовыйКомпонент.Пересчитывать = КомпонентПолученный.Пересчитывать;
КонецЦикла;
Док.Записать();
КонецЦикла;
&НаСервере
Функция Компонент(Номер)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МенюКомпонентыБлюд.ИдентификаторБлюда,
| МенюКомпонентыБлюд.Компонент,
| МенюКомпонентыБлюд.ЗакладкаБрутто,
| МенюКомпонентыБлюд.ЕдиницаИзмеренияБрутто,
| МенюКомпонентыБлюд.ЗакладкаНетто,
| МенюКомпонентыБлюд.ЕдиницаИзмеренияНетто,
| МенюКомпонентыБлюд.Пересчитывать
|ИЗ
| Документ.Меню.КомпонентыБлюд КАК МенюКомпонентыБлюд
|ГДЕ
| МенюКомпонентыБлюд.Ссылка.Номер = &Номер";
Запрос.УстановитьПараметр("Номер", Номер);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Возврат РезультатЗапроса;
КонецФункции
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua