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

Помогите с внешним отчетом.

Автор mila1231, 23 июн 2015, 10:54

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

mila1231

Ребята, тут я не могу сообразить
Создаю внешний отчёт по идеи нужно будет выбрать период с-по и будут формироваться данные, не получается самое начало, так вот ругается на строку
ТабДок.Вывести(ОбластьДанные); , говорит Метод объекта не обнаружен (Вывести)

вот собственно сам код

Процедура КнопкаСформироватьНажатие(Кнопка)
   
      ТабДок = ЭлементыФормы.ТабДок;
      Макет = ПолучитьМакет("Макет");
     // ОблатьКонстанты= Макет.ПолучитьОбласть("Константы");
      ОбластьДанные=  Макет.ПолучитьОбласть("Данные");
      ТабДок.Очистить();
      
      Запрос = новый Запрос;
      Запрос.Текст =
      "ВЫБРАТЬ
                     |   Свидетельство.Действителен_до,
                     |   Свидетельство.Номер
                     |ИЗ
                     |   Документ.Документ1 КАК Документ1";
                
                 ВыборкаДанные = Запрос.Выполнить().Выбрать();
   
                
Пока ВыборкаДанные.Следующий() Цикл                
   
      ОбластьДанные.Параметры.Дата_До   = ВыборкаДанные.Действителен_до;   
      ОбластьДанные.Параметры.номер = ВыборкаДанные.Номер;   
                   
                   
   КонецЦикла;
   
   ТабДок.Вывести(ОбластьДанные); здесь ругаетсо 
    
       //ТабДок.Вывести(ОбластьКонстанты);
КонецПроцедуры

Зы Заранее спсб.

mixqn

ну во-первых, судя по всему, ТабДок.Вывести(ОбластьДанные); должно быть внутри цикла, а во-вторых, хотелось бы текст ошибки увидеть

LexaK

проверьте элемент формы ТабДок, Тип должен быть Поле табличного документа
если помогло нажмите: Спасибо!

mila1231

Цитата: mixqn от 23 июн 2015, 11:14
ну во-первых, судя по всему, ТабДок.Вывести(ОбластьДанные); должно быть внутри цикла, а во-вторых, хотелось бы текст ошибки увидеть

вот сам текст, возникает сразу после нажатия кнопки сформировать Метод объекта не обнаружен (Вывод), после нажатия на кнопку подробно
{Форма.ФормаОтчета.Форма(30)}: Метод объекта не обнаружен (Вывод)
   ТабДок.Вывод(областьДанные);   

ТабДок.Вывести(ОбластьДанные); -строку убрала внутрь цикла, спсб
          

Добавлено: 23 июн 2015, 12:11


Цитата: LexaK от 23 июн 2015, 11:14
проверьте элемент формы ТабДок, Тип должен быть Поле табличного документа

если я вас правильно поняла то нужно зайти на вкладку диалог и посмотреть тип значения ТабДок, оно равно Таблица Значений, или я не там смотрю? или нужно заменить строку ТабДок = ЭлементыФормы.ТабДок;  на
ТабДок =новый ТабличныйДокумент; ??

Sandi

я бы стала обращаться не к элементу формы Табдок. У элемента формы нет метода Вывести. этот метод есть у табличного документа
  как я поняла, у Вас в форме отчета есть реквизит формы  Табдок (тип реквизита должен быть ТабличныйДокумент), который выведен на форму. (примерно как на картинке)
пишите не
   ЭлементыФормы.Табдок.Вывести(ОбластьДанные)
а
  ТабДок.Вывести(ОбластьДанные)


или  в самом начале надо определить
ТабДок = Новый ТабличныйДокумент

тогда ваш отчет будет формироваться в новом документе

vitasw

Цитата: mila1231 от 23 июн 2015, 12:07{Форма.ФормаОтчета.Форма(30)}: Метод объекта не обнаружен (Вывод)
   ТабДок.Вывод(областьДанные);   

ТабДок.Вывести(ОбластьДанные); -строку убрала внутрь цикла, спсб

Явно, что в предприятии и конфигураторе открыты разные отчеты. В тексте модуля нет метода "Вывод"

mila1231

Цитата: vitasw от 23 июн 2015, 14:33
Цитата: mila1231 от 23 июн 2015, 12:07{Форма.ФормаОтчета.Форма(30)}: Метод объекта не обнаружен (Вывод)
   ТабДок.Вывод(областьДанные);   

ТабДок.Вывести(ОбластьДанные); -строку убрала внутрь цикла, спсб

Явно, что в предприятии и конфигураторе открыты разные отчеты. В тексте модуля нет метода "Вывод"

пробывала и Выод и Вывести, поэтому возможно где-то ошибка розница, в итоге оставила вывести, но ошибка всё равно есть.
Добавлено: 24 июн 2015, 04:15


Цитата: Sandi от 23 июн 2015, 12:39
я бы стала обращаться не к элементу формы Табдок. У элемента формы нет метода Вывести. этот метод есть у табличного документа
  как я поняла, у Вас в форме отчета есть реквизит формы  Табдок (тип реквизита должен быть ТабличныйДокумент), который выведен на форму. (примерно как на картинке)
пишите не
   ЭлементыФормы.Табдок.Вывести(ОбластьДанные)
а
  ТабДок.Вывести(ОбластьДанные)


или  в самом начале надо определить
ТабДок = Новый ТабличныйДокумент

тогда ваш отчет будет формироваться в новом документе

у меня только два реквизита Начало и Конец, это на будущее, чтоб сделать с какого по какое формировать отчёт,
Табдок я добавила уже после формирования Формы отчёта, т.е на поле просто добавила табличный документ, приложила принскрины, самого отчёта.

Добавлено: 24 июн 2015, 05:04


вопрос решён, неправильно выбранный объект был....

LexaK

у вас неправильный тип элемента формы ТабДок,
по картинке ваш ТабДок это Табличное поле
а вам нужно Поле табличного документа!!!

как исправить.

в конфигураторе откройте конструктор формы, удалите ваш элемент ТабДок
внизу на панели Элементы управления выберите значек - Поле табличного документа (такой с буквой А см.рис.) и мышкой на форме растяните область, дайте название ТабДок.
После этого у вас будет работать ТабДок.Вывести()
если помогло нажмите: Спасибо!

mila1231

спасибо!!))
Добавлено: 24 июн 2015, 10:41


Ребят, не хочу сорить темами, подскажите незнающему вот текст запроса
   Запрос.Текст = "ВЫБРАТЬ
                     |   Свидетельство.Номер_в_гос_реестре,
                     |   Свидетельство.Тип_прибора.Наименование,
                     |   Свидетельство.Марка.Наименование,
                     |   Свидетельство.Заводской_Номер,
                     |   Свидетельство.Год_выпуска_прибора,
                     |   Свидетельство.Дата_от,
                     |   Свидетельство.Действителен_до,
                     |   Свидетельство.Номер,
                     |   Свидетельство.Контрагент.Полное_наименование,
                     |   Свидетельство.Контрагент.ИНН
                     |ИЗ
                     |   Документ.Свидетельство КАК Свидетельство";

дальше при присваивании ругается на строку

ОбластьДанные.Параметры.Номер_прибора = ВыборкаДанные.Заводской_номер; ,
единственное я поняла, что программа не понимает к чему обращаться... подскажите как правильно нужно, пожалуйста... или где глянуть отправьте....

vitasw

|ИЗ
|   Документ.Свидетельство КАК Свидетельство
|ГДЕ Документ.Свидетельство.Ссылка=&ТекущийДокумент";

Запрос.УстановитьПараметр("ТекущийДокумент",Ссылка);

+
Из приведенного текста не видно что такое "ОбластьДанные"


Теги:

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

Рейтинг@Mail.ru

Поиск