|
Запрос для печати | ☑ | ||
---|---|---|---|---|
0
Enigrade
03.06.13
✎
15:34
|
выф
|
|||
1
Kreont
03.06.13
✎
15:36
|
куда и чего?
|
|||
2
Enigrade
03.06.13
✎
15:42
|
Здравствуйте! Помогите пожалуйста сделать отчёт)
У меня есть документ Меню и справочник номенклатура. В документе Меню 2 таб. части. В 1ю таблицу я указываю название блюда, а во вторую таблицу должны выводиться ингредиенты, которые указаны в номенклатуре. Я это организовал таким образом: Ингредиенты.Загрузить(ТекСтрока.Блюдо.ТЧ1.Выгрузить()); Он выводит норм, но когда мне нужно распечатать это меню, он вторую таблицу печатает только для одного блюда( Пытаюсь сделать через запрос, но не могу составить, поможете?) плззз руки опускаются) |
|||
3
salvator
03.06.13
✎
15:45
|
Показывай, что есть.
|
|||
4
mikecool
03.06.13
✎
15:46
|
(2) ну ты пару раз руки опусти, потом помой и выкладывай что получается
|
|||
5
Enigrade
03.06.13
✎
15:47
|
Вот такой запрос делал, но он мне фигню какую то выводит , пишет в в каждом поле "Таблица значений"
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Меню.Блюда.( | Ссылка, | НомерСтроки, | Блюдо | ), | Номенклатура.ТЧ1.( | Ссылка, | НомерСтроки, | Сырьё, | ЕИ, | Количество | ) |ИЗ | Документ.Меню КАК Меню | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО Меню.Блюда.Блюдо = Номенклатура.ТЧ1.Ссылка"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ЭлементыФормы.ТабличноеПоле1.Значение = Результат.Выгрузить(); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); |
|||
6
Enigrade
03.06.13
✎
15:48
|
я студент, только изучаю 1с ку)
|
|||
7
mikecool
03.06.13
✎
15:48
|
(5) парвильно пишет, Блюда и ТЧ1 - будут в результате в виде ТЗ
|
|||
8
salvator
03.06.13
✎
15:48
|
Запрос строй напрямую к ТЧ документа.
|
|||
9
Enigrade
03.06.13
✎
15:49
|
Но он же должен выводить сами значения...
|
|||
10
salvator
03.06.13
✎
15:50
|
+(8) и к ТЧ справочника
|
|||
11
mikecool
03.06.13
✎
15:51
|
(9) переберешь после выборки, хотя - хз что тебе нужно в результате
|
|||
12
Enigrade
03.06.13
✎
15:53
|
А такое вообще через связи делать?
|
|||
13
Kreont
03.06.13
✎
16:17
|
Примерно для получения ном.из тч документа:
"ВЫБРАТЬ МенюБлюда.Номенклатура ИЗ Документ.Меню.Блюда КАК МенюБлюда ГДЕ МенюБлюда.Ссылка = &Ссылка" потом, проходишь по всем, рисуешь шапку Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл и для каждой строки получаешь результат уже для тч ингридиентов из спр.номенклатура, как то так: ВЫБРАТЬ НоменклатураТЧ1.Сырьё, НоменклатураТЧ1.ЕИ, НоменклатураТЧ1.Количество ИЗ Справочник.Номенклатура.ТЧ1 КАК НоменклатураТЧ1 ГДЕ НоменклатураТЧ1.Ссылка = &Ссылка |
|||
14
Enigrade
03.06.13
✎
17:23
|
Спасибо за помощ, но я опять что то не так делаю)
Ошибок нет, но всё равно выводит ингредиенты только для одного блюда( Процедура Печать(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) Макет = Документы.Меню.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МенюБлюда.Блюдо, |НоменклатураТЧ1.Сырьё, |НоменклатураТЧ1.ЕИ, |НоменклатураТЧ1.Количество | ИЗ | Документ.Меню.Блюда КАК МенюБлюда | Справочник.Номенклатура.ТЧ1 КАК НоменклатураТЧ1 |ГДЕ | НоменклатураТЧ1.Ссылка = &Ссылка | МенюБлюда.Ссылка = &Ссылка"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьБлюдаШапка = Макет.ПолучитьОбласть("БлюдаШапка"); ОбластьБлюда = Макет.ПолучитьОбласть("МенюБлюда"); ОбластьИнгредиентыШапка = Макет.ПолучитьОбласть("ИнгредиентыШапка"); ОбластьИнгредиенты = Макет.ПолучитьОбласть("НоменклатураТЧ1"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьБлюдаШапка); ВыборкаБлюда = Выборка.Блюда.Выбрать(); Пока ВыборкаБлюда.Следующий() Цикл ОбластьБлюда.Параметры.Заполнить(ВыборкаБлюда); ТабДок.Вывести(ОбластьБлюда, ВыборкаБлюда.Уровень()); КонецЦикла; ТабДок.Вывести(ОбластьИнгредиентыШапка); ВыборкаИнгредиенты = Выборка.НоменклатураТЧ1.Ссылка.Выбрать(); Пока ВыборкаИнгредиенты.Следующий() Цикл ОбластьИнгредиенты.Параметры.Заполнить(ВыборкаИнгредиенты); ТабДок.Вывести(ОбластьИнгредиенты, ВыборкаИнгредиенты.Уровень()); КонецЦикла; ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры |
|||
15
Kreont
03.06.13
✎
17:48
|
Ну если решил все таки одним запросом делать,
что б такое использовать, надо что б в запросе была группировка по нужным полям, выше в запросе добавляй тогда итоги (сумма,максимум и т.п.)какие то + группировку: |ПО | Блюда, | Сырьё и потом получение последовательно: Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ...цикл... и в середине обход нижней группировки через: ВыборкаСырья = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСырья.Следующий() Цикл как то так... в (13) то же самое только раздельно, ну да не красиво может, но для печ.форм сойдет :) |
|||
16
Enigrade
03.06.13
✎
18:40
|
Вот же блин, попробовал раздельно сделать, он всё видимо из по макету выводит ингредиенты, я их из кода вообще убрал, а он всё равно выводит..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |