Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Определить блюдо по ингредиенту          
Светлана0000 Подменю пользователя
сообщение 17.03.18, 11:38
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

У меня есть документ Заказ, в нем две вкладки ТЧ Блюда и ТЧ Ингредиенты, сначала я заполняю блюда( наименование, кол-во порций и т.д), далее нажимаю на кнопку заполнить ингредиенты и во вкладке Ингредиенты с учетом порций заполняются ингредиенты, далее перед проведением проходит проверка на наличие этих ингредиентов на складе, и если не хватает то выводится сообщение что такого-то ингредиента не хватает. А как мне сделать чтобы выводилось еще и блюдо в какое входит этот ингредиент???? Скорее всего это нужно что-то в запросе изменить, но у меня не получается. Помогите пожалуйста.
Вот проверка
Процедура ОбработкаПроведения(Отказ, Режим)
    // проверяем остатки
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |     Ингредиенты.Ингредиент КАК Ингредиент,
    |     СУММА(Ингредиенты.КоличествоИнгредиентов) КАК КоличествоИнгредиентов
    |ПОМЕСТИТЬ ВтИнгридиенты
    |ИЗ
    |    Документ.Заказ.ПереченьИнгредиентов КАК Ингредиенты
    |ГДЕ
    |    Ингредиенты.Ссылка = &ТекущийДокумент
    |СГРУППИРОВАТЬ ПО
    |    Ингредиенты.Ингредиент
    |;
    |///////////////////////////////////////////////
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |      ВтИнгридиенты.Ингредиент КАК Товар,
    |      ВтИнгридиенты.КоличествоИнгредиентов КАК Количество,
    |    ЕСТЬNULL(ОстаткиТоваров.КоличествоОстаток, 0) КАК КоличествоОстаток
    |ИЗ
    |     ВтИнгридиенты КАК ВтИнгридиенты    
    |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&Период, Товар В (ВЫБРАТЬ ВтИнгридиенты.Ингредиент ИЗ ВтИнгридиенты КАК ВтИнгридиенты )) КАК ОстаткиТоваров
    |        ПО ВтИнгридиенты.Ингредиент = ОстаткиТоваров.Товар
    |";
    
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    
    Движения.ОстаткиТоваров.Записывать = Истина;
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        
        Если Выборка.Количество > Выборка.КоличествоОстаток Тогда
        
            Сообщить("Недостаточно товара - "+Выборка.Товар+", необходимо - "+Выборка.Количество+", в наличии - "+Выборка.КоличествоОстаток );
            
            Отказ = Истина;
            Продолжить;    
        КонецЕсли;
        
        Движение = Движения.ОстаткиТоваров.ДобавитьРасход();
        ЗаполнитьЗначенияСвойств(Движение, Выборка);
        Движение.Период = Дата;
        Движение.Регистратор = Ссылка;
                
    КонецЦикла;
    
    
КонецПроцедуры



 ! 

Правила: 4,5
 


Сообщение отредактировал logist - 18.03.18, 2:13

хакерок Подменю пользователя
сообщение 17.03.18, 16:40
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Светлана0000 @ Сегодня, 11:38 * ,
Идите от простого к сложному. Сделайте в отдельной обработке запрос который по ссылке на инградиент выведет все товары куда он входит. И потом далее делайте...
Из вопроса не понятна как у вас хранятся борщи и картошка и что такое ВтИнгридиенты.

Светлана0000 Подменю пользователя
сообщение 17.03.18, 20:15
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

хакерок @ Сегодня, 17:40 * ,
У меня есть справочники Блюда(где хранятся борщи) и Ингредиенты(где картошка). В справочнике блюда есть ТЧ Ингредиенты.
А ВТИнгредиенты это названия временной таблицы.
А вы не подскажите как выглядит такой запрос, который по ссылке показывает куда входит ингредиент?

хакерок Подменю пользователя
сообщение 19.03.18, 19:51
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Светлана0000 @ 17.03.18, 20:15 * ,
&НаСервере
Процедура ВКакихБлюдахНаСервере()
    
    Ингредиент = Справочники.Ингредиенты.НайтиПоНаименованию("Картопля");    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Блюда.Ссылка КАК Блюдо
        |ИЗ
        |    Справочник.Блюда КАК Блюда
        |ГДЕ
        |    Блюда.Ингредиенты.Ингредиент = &Ингредиент";
    
    Запрос.УстановитьПараметр("Ингредиент", Ингредиент);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        
    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = Строка(ВыборкаДетальныеЗаписи.Блюдо);
    Сообщение.Сообщить();
        
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура ВКакихБлюдах(Команда)
    ВКакихБлюдахНаСервере();
КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 10:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!