Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 июн 2024, 13:02

Направьте на нужный путь, начинающий программист.

Автор Klarex, 02 сен 2023, 22:10

0 Пользователей и 1 гость просматривают эту тему.

Klarex

Дали задачу - сделать документ, в котором будет 2 табличных части, в первой будет продукция, в которой можно выбирать блюда, например борщ, а во второй материалы, тоесть состав этих блюд, и по нажатии тч.материалы на кнопку "заполнить" будут выводиться ингридиенты блюда из продукции, учитывать количество этих продуктов тоже надо. Например при выборе блюда "Борщ" в количестве 2шт в продукции, в материалах при нажатии на кнопку заполнить заполнятся колонки ингредиент и количество, 0,500 капуста, 0.300 картофель и тд. Сделать это либо через справочник наверное с ингредиентами, либо через регистр сведений. Если знаете как это сделать, скажите пожалуйста хотя бы в каком направлении мне двигаться и что изучить. 1С:Предприятие 8.3. Желательно без запросов, сказали можно сделать и без них

alexandr_ll


antoneus

Создать, например, регистр сведений "Спецификация", измерения - номенклатура и материал, ресурсы - количество номенклатуры и материала, при нажатии на кнопку запросом выгребать номенклатуру из документа, материал, количество материала * количество номенклатуры из документа / количество номенклатуры из регистра.

Klarex

Спасибо вам большое! начну работу, обязательно кину результат сюда) :zebzdr:

Klarex

antoneus, В общем, сделал я справочник рецепты, где у меня связаны названия блюд и их ингридиенты и граммовка, перебираю записи документа и справочника и с помощью запроса(он кстати работает в конструкторе запросов так, как надо) вывожу это все в табличную часть... но это на словах только, а по сути ошибка "Итератор для значения не определен", когда захожу в цикл со справочники.Рецепты. Вроде нашел почему так, мол в цикле мы можем перебирать только коллекции, но как обратиться к справочнику тогда?Первый скрин - код и конфигурация, второй на какую строчку ругается 1ска.
Текст ошибки:Итератор для значения не определен
{Документ.Производство.Форма.ФормаДокумента.Форма(7)}:Для Каждого Спр ИЗ Справочники.Рецепты Цикл
{Документ.Производство.Форма.ФормаДокумента.Форма(37)}:ЗаполнитьМатериалыНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
изображение_2023-09-03_215353616.png

antoneus

Ну, во-первых, элементы справочника перебираются не так, а с помощью метода Выбрать(), а во-вторых, перебирать элементы здесь не надо, а в-третьих все совсем не так надо делать)

тзПродукция = Объект.Продукция.Выгрузить();
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    тзПродукция.Номенклатура,
|    тзПродукция.Количество
|ПОМЕСТИТЬ Продукция
|ИЗ &тзПродукция КАК тзПродукция
|;
|ВЫБРАТЬ
|    РецептыСоставРецепта.Продукт,
|    РецептыСоставРецепта.Количество * Продукция.Количество КАК Количество
|ИЗ
|    Продукция КАК Продукция
|ЛЕВОЕ СОЕДИНЕНИЕ
|    Справочник.Рецепты.СоставРецепта КАК РецептыСоставРецепта
|ПО
|    Продукция.Номенклатура = РецептыСоставРецепта.Ссылка.НазванияБлюд";

Запрос.УстановитьПараметр("тзПродукция", тзПродукция);
Объект.Материалы.Загрузить(Запрос.Выполнить().Выгрузить());//или как там табличная часть называется

примерно так

Похожие темы (5)

Рейтинг@Mail.ru

Поиск