|
Метод объекта не обнаружен | ☑ | ||
---|---|---|---|---|
0
Desrozen
23.06.16
✎
09:19
|
Здравствуйте!
Прошу сильно не пинать, в 1С только начинаю разбираться, и вот не могу понять что я делаю не так. в 8.2 (Управление рестораном) создаю отчет, который показывал бы рецептуру по выбранной номенклатуре: Процедура НаименованиеПриИзменении(Элемент) //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = Отчеты.Рецептура.ПолучитьМакет("Макет1"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Рецептура.Товары.( | Рецептура | ) |ИЗ | Документ.Рецептура КАК Рецептура"; Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТоварыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТоварыШапкаТаблицы"); ТоварыОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ТоварыПодвалТаблицы"); ТоварыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ТоварыДетали"); ТабДок=Документы.Рецептура; ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); ТабДок.НачатьГруппуСтрок(); ТабДок.Вывести(ТоварыОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ТоварыВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Товары.Выбрать(); Пока ТоварыВыборкаДетальныеЗаписи.Следующий() Цикл ТоварыОбластьДетальныхЗаписей.Параметры.Заполнить(ТоварыВыборкаДетальныеЗаписи); ТабДок.Вывести(ТоварыОбластьДетальныхЗаписей, ТоварыВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ТоварыОбластьПодвалТаблицы); ТабДок.ЗакончитьГруппуСтрок(); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры Вообще конструктор запроса при создании создает какой то ТабДок, который сразу же пытается очистить, создает при этом без объявления (ТабДок=Документы.Рецептура это уже я сам написал). При проверке синтаксических ошибок не находит, однако в режиме предприятия ругается: {Отчет.Рецептура.Форма.ФормаОтчета.Форма(31)}: Метод объекта не обнаружен (Вывести) ТабДок.Вывести(ОбластьЗаголовок); Подскажите, куда копать? |
|||
1
lubitelxml
23.06.16
✎
09:21
|
ТабДок - это имеется ввиду объект ТабличныйДокумент, а не табличная часть документа / таблица на форме
|
|||
2
RomaH
naïve
23.06.16
✎
09:24
|
Тип какой у ТабДок
|
|||
3
Desrozen
23.06.16
✎
09:25
|
окей, а почему тогда конструктор его создает и потом ругается что переменная не обнаружена?
|
|||
4
GROOVY
23.06.16
✎
09:27
|
(3) Потому что конструктор сделан не для того, чтобы голову выключать, а просто чтобы не печатать много кода руками.
|
|||
5
Desrozen
23.06.16
✎
09:27
|
[quote]Тип какой у ТабДок[/quote]
конструктор не присваивает ничего ей, какой у нее может быть тип? |
|||
6
Desrozen
23.06.16
✎
09:27
|
(4) а по существу можно? Я ничего не выключал, пытаюсь разобраться почти с нуля
|
|||
7
GROOVY
23.06.16
✎
09:28
|
По существу, нужно создать табличный документ.
|
|||
8
1dvd
23.06.16
✎
09:30
|
(7) или использовать поле табличного документа
|
|||
9
lxs
23.06.16
✎
09:35
|
И это все в "НаименованиеПриИзменении"?.. о_О
|
|||
10
Desrozen
23.06.16
✎
09:35
|
(7) что-то и правда, называется затупил =D Ну ругаться перестал, правда и не выводит пока ничего, будем ковырять дальше
|
|||
11
Desrozen
23.06.16
✎
09:36
|
(9) ну да, если я не в ту процедуру это пилю - подскажите куда оптимальнее?
|
|||
12
lxs
23.06.16
✎
09:36
|
(11) ТабДок.Показать();
|
|||
13
catena
23.06.16
✎
09:40
|
(11)Наверное в процедуру ПоказатьРецептуру()
|
|||
14
lxs
23.06.16
✎
09:52
|
(11) кнопку свою нарисовать хотя бы чтоли
|
|||
15
Desrozen
23.06.16
✎
09:54
|
(14) я на произвольной форме разместил элемент "Наименование" с выбором из номенклатуры, сейчас пытаюсь сделать так чтоб он мне выводил при выборе определенной номенклатуры ее рецептуру
|
|||
16
hhhh
23.06.16
✎
10:15
|
(15) может там в базе будут 10000 рецептур, зачем все сразу их выводить?
|
|||
17
Desrozen
23.06.16
✎
10:19
|
(16) их там немногим меньше, вот делаю фильтр чтоб именно нужную выводил))
|
|||
18
Garikus
23.06.16
✎
10:19
|
Судя по коду, запрос просто выдаст всю рецептуру без фильтра по номенклатуре, и как заметил (15) получите 100% тормоза
|
|||
19
Garikus
23.06.16
✎
10:20
|
(17) В запросе отфильтровывайте по конкретной номенклатуре и количество циклов уменьшайте
|
|||
20
Desrozen
23.06.16
✎
11:07
|
(19) с этим кодом он мне вообще пока ничего не выводит.
Если не сложно, можно пример привести как это сделать? :) |
|||
21
hhhh
23.06.16
✎
11:09
|
(20) перечитывай (12) до наступления озарения.
|
|||
22
Garikus
23.06.16
✎
11:13
|
Только непонятно что у тебя там имеется вообще в списке рецептов.
По запросу имеет смысл добавить: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Рецептура.Товары.( | Рецептура | ) |ИЗ | Документ.Рецептура КАК Рецептура |ГДЕ Рецептура.Товары в (&Номенклатура); Запрос.Параметры.Номенклатура = Номенклатура; Результат = Запрос.Выполнить(); Как то так, сложно тебе что то соорудить не зная что у тебя там и как |
|||
23
hhhh
23.06.16
✎
11:14
|
(20) и сделай запрос попроще. Зачем сразу высший пилотаж?
Запрос.Текст = "ВЫБРАТЬ | РецептураТовары.Рецептура |ИЗ | Документ.Рецептура.Товары КАК РецептураТовары"; |
|||
24
itlikbez
23.06.16
✎
11:26
|
(0) Откуда у тебя вот это:
ТабДок=Документы.Рецептура; ? |
|||
25
Garikus
23.06.16
✎
11:31
|
(24) Из леса вестимо)
|
|||
26
Garikus
23.06.16
✎
11:32
|
и где
ТабДок = Новый ТабличныйДокумент; ? |
|||
27
Desrozen
23.06.16
✎
12:42
|
Я вот думаю, может я зря вообще в конструктор полез, может можно было обойтись СКД?
|
|||
28
Desrozen
23.06.16
✎
12:43
|
(26) это поправил уже, спасибо))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |