Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0
Люди добрые, подскажите пожалуйста как заполнить табличную часть документа из справочника. У меня есть справочник Блюда с табличной частью Ингредиенты. И есть документ Заказ с табличной частью Перечень блюд. Хочу чтобы в документе в табличной части при выборе какого-либо блюда из справочника Блюда заполнялась табличная часть в документ. Вот уже что-то начала, но оно не работает.
&НаСервере Процедура ЗаполнитьПоляНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | БлюдаИнгредиенты.Ссылка.Наименование КАК Блюдо, | БлюдаИнгредиенты.Игредиент.Наименование КАК Ингредиенты, | БлюдаИнгредиенты.Количество КАК КоличествоИнгредиентов, | БлюдаИнгредиенты.ЕдиницаИзмерения |ИЗ | Справочник.Блюда.Ингредиенты КАК БлюдаИнгредиенты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Заказ.ПереченьБлюд КАК ЗаказПереченьБлюд | ПО БлюдаИнгредиенты.Ссылка.Наименование = ЗаказПереченьБлюд.Блюдо |ГДЕ | БлюдаИнгредиенты.Ссылка.Наименование = ЗаказПереченьБлюд.Блюдо.Наименование"; Объект.ПереченьБлюд.Загрузить( Запрос.Выполнить().Выгрузить()); КонецПроцедуры
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Светлана0000 @ Вчера, 19:31
, Основная ваша ошибка в том, что вы выбираете наименования в запросах, а не ссылки. Я почти уверен что типы ваших реквизитов это ссылки на справочники, а не строковые выражения - как минимум из-за этого поля могут не заполняться. Во-вторых, тут в запросе не нужно внутреннее соединение с таб. частью заказов - тут опять же нет указания с каким именно документом вы связываетесь, оно возьмет абсолютно все заказы, достаточно как в моем примере просто параметром указать ссылку на Блюдо. Надеюсь разницу между ссылкой и строкой вы понимаете, если нет - то сначала прочитайте хоть какую-то книгу по 1С, даже того же Радченко: Пособие разработчика.
&НаСервере Процедура ЗаполнитьПоляНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | БлюдаИнгредиенты.Ссылка КАК Блюдо, | БлюдаИнгредиенты.Игредиент КАК Ингредиент, | БлюдаИнгредиенты.Количество КАК КоличествоИнгредиентов, | БлюдаИнгредиенты.ЕдиницаИзмерения |ИЗ | Справочник.Блюда.Ингредиенты КАК БлюдаИнгредиенты |ГДЕ | БлюдаИнгредиенты.Ссылка = &Блюдо";
Запрос.УстановитьПараметр("Блюдо", Объект.Блюдо); // Объект.Блюдо - это ваш реквизит Блюдо из Заказа
Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.ПереченьБлюд.Добавить(); // если у вас в табличной части Заказа типы ингридиентов не строки, и имена реквизитов совпадают с тем, что у вас в запросе тогда так: ЗаполнитьЗначенияСвойство(НоваяСтрока, Выборка);
// или если имена реквизитов не совпадают тогда так: НоваяСтрока.ИмяВашегоИнгридиента = Выборка.Ингридиент; НоваяСтрока.КоличествоВашегоИнгридиента = Выборка.КоличествоИнгредиентов; // и т.д.
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0
Bernet @ Сегодня, 8:20
, Спасибо большое, все заработало, а вот как сделать теперь кнопку, чтобы при нажатии можно было добавить еще одно блюдо и также заполнить табличную часть ингредиенты?
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Немного не понял что вы хотите. Если нужна возможность указывать несколько блюд, то сделайте просто таб. часть "Блюда"
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Bernet @ 27.11.17, 14:16)
то сделайте просто таб. часть "Блюда"
Судя по запросу из первого поста ТС практически не шарит что такое программирование в 1С, а вы как человек знакомый с Общепитом и Рарусом должны догадаться что необходимо, и после того как будет сделана Просто ТЧ Блюда, понадобиться видеть какие ингредиенты в какие блюда входят по нажатию на блюдо, и т.д.. Либо тут самый просто вариант - набить ТЧ ингредиентами, тогда ТЧ Блюда не надо, нужно что-то типа "Подбора" блюд, а результатом подбора будет заполнение ингредиентами
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
logist @ Сегодня, 15:57
, ну у меня ещё был вариант, что это самописная конфигурация...) то что человек совсем не программировал это я понял, потому и посоветовал начать хотябы с Радченко
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0
Да вы правы, я первый раз создаю конфигурацию, и многое не получается. Сначала я думала сделать ТЧ где будет написано Блюдо и из каких ингредиентов оно состоит, но у меня не получилось обратиться к Блюду как к объекту. И поэтому я сделала отдельно выбор блюда и ТЧ ингредиенты. Но необходимо, чтобы был выбор нескольких блюд. И я думала может сделать кнопку, которая будет добавлять реквизиты Блюда и ТЧ Ингредиенты. Но я не уверена что так вообще можно. Я буду вам очень благодарна если вы мне подскажите как лучше сделать.
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Начнем с того, что динамически реквизиты добавить не получится. Точнее элементы на форму можно а именно "реквизиты объекта" не получится - они определяются в конфигураторе в дереве метаданных. То что вы хотите сделать усложнит вам жизнь. Можно конечно где-то хранить эти реквизиты, и каждый раз динамически создавать их на форме, но я считаю в рамках данной задачи это излишнее. Вам достаточно просто сделать таб. часть с блюдами и все. Обращаться к таб части можно через Объект.ИмяВашейТабЧасти Строки можно получать и обходить в цикле. или обращаться по индексу при необходимости
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Bernet @ 29.11.17, 22:40)
Начнем с того, что динамически реквизиты добавить не получится.
Bernet, вы начали со слишком сложного объяснения, думаю девушка не до конца понимает что такое Объект, или вы понимаете контекст по разному Расскажите как сделать две ТЧ - Блюда и Ингредиенты, и как заполнять первую - подбором, и при этом добавлять данные во вторую. Это и всё что требуется от этого вопроса.
Личные бесплатные консультации не даю, для этого есть форум!
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0
Bernet @ Сегодня, 1:26
, Не получается. Выдает вот такую ошибку.
{Документ.Заказ.Форма.ФормаДокумента.Форма(18)}: Ошибка при вызове метода контекста (Выполнить) Выборка = Запрос.Выполнить().Выбрать(); по причине: {(8, 26)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. БлюдаИнгредиенты.Ссылка <<?>>= &МассивБлюд
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0
logist @ Сегодня, 17:51
, Спасибо огромное все заработало,но у меня возник другой вопрос. Когда я заполняю ингредиенты,мне нужно чтобы поле количество ингредиентов умножалось на количество порций,я не знаю как правильно обратиться. Вот я пишу
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Светлана0000 @ 30.11.17, 20:21)
А он выдает ошибку Преобразование к типу Число не может быть выполнено
На будущее, лучше спросите как сделать, а не делать какую-то фигню (раз уж не разбираетесь), а потом спрашивать почему она не работает
Цитата(Bernet @ 30.11.17, 20:58)
У колонки "КоличествоПорций" и "КоличествоИнгредиентов " добавьте событие "ПриИзменении", в нем напишите такой код:
Та ну, после того как набили блюда и нажали кнопку - надо заполнить программно Ингредиенты, ручное изменение вообще ни к чему не привязано, т.к. при изменении количества блюд надо пересчитать все строки ингредиентов, поэтому луче весь расчет повесть на одну и ту же кнопку, и сделать в одном запросе.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Выложите конфигурацию [необходимо зарегистрироваться для просмотра ссылки] И скажите как вы хотите чтобы работало, тогда перестанем тыкать пальцем в небо
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!