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

ЭлементыФормы.ПолеТабличногоДокумента

Автор nenoob, 20 фев 2012, 09:55

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

nenoob

Я только-только принялся за 1С, так что не судите строго :)

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


   Макет = ПолучитьМакет("Макет");
   ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("ЛицевыеСчета");
   
   ВыборкаЛицевыеСчета = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Выборкалицевыесчета.Следующий();
   ОбластьлицевыеСчета.Параметры.Заполнить(ВыборкаЛицевыесчета);
     
КонецПроцедуры





Вот такой вот запрос, делаю по примеру, так синтаксических ошибок нет, но при выполнении

Код

{Форма.Форма(17)}: Поле объекта не обнаружено (ПолеТабличногоДокумента)
   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;




Хотя в Примере просто написано ТабДок = ЭлентыФормы.ПолеТабличногоДокумент;

Получаю вот такую ерунду.
Код

{Форма.Форма(28,11)}: Переменная не определена (ЭлентыФормы)
   ТабДок = <<?>>ЭлентыФормы.ПолеТабличногоДокумент;



Подскажите в чем ошибка?

sergejK74

ЭлементыФормы в 8.1 (обычные формы), в 8.2 (управляемые формы) просто Элементы
Кнопочка Спасибо - слева!

Klyacksa

У Вас опечатка в слове ЭлементыФормы:
ЦитироватьТабДок = <<?>>ЭлентыФормы
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

nenoob

Опечатку устранил, результат тот же, версия 8.1, посоветовали почитать ЕСИС, нашел читаю, но что-то все равно ни чего не выходит.

Можете привести простой небольшой запрос с выводом в таблицу, чтобы можно было у себя попробовать и понять механизм. Такое ощущение что ответ на поверхности, но вот что-то ни как до него не дойду.

Суть такая мне нужно составить Запрос, чтобы в конечном счете я мог просмотреть результат, скопировать, в общем любой способ привести результат к читаемому виду.

Klyacksa

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

Только Вы либо создаете новый ТабДок
ТабДок = Новый ТабличныйДокумент;
либо привязываете к существующему:
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
во втором случае как раз и должен быть на форме элемент управления.

Приводите примеры, что именно не выходит, будем разбираться.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

nenoob

ТабДок = Новый ТабличныйДокумент;    // ТабДок у меня Создан

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;     // после установки "точки" в вариантах выбора нет "ПолеТабличногоДокумента".

Вы меня конечно извините, но я что-то вообще не пойму что нужно сделать чтобы вывести результат.

Запрос есть, далее, РезультатЗапроса, есть, далее нужно вывести его в таблицу, как это сделать не понимаю.

Klyacksa

1. Хотим вывести результат в табдок, открывающийся новым окном
ТабДок = Новый ТабличныйДокумент;
// Далее запрос, получение макета, вывод данных в макет, вывод ТабДока.
Запрос=...;
Результат=Запрос.Выполнить();

Макет = ПолучитьМакет("Макет");
  ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("ЛицевыеСчета");
 
  ВыборкаЛицевыеСчета = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  Пока Выборкалицевыесчета.Следующий() цикл
       ОбластьлицевыеСчета.Параметры.Заполнить(ВыборкаЛицевыесчета);
       ТабДок.Вывести(ОбластьлицевыеСчета);
  КонецЦикла;

ТабДок.Показать();


2. Хотим вывести результат в табдок, УЖЕ размещенный на нашей форме.
// НЕ НАДО ЗДЕСЬ СТРОКУ ТабДок = Новый ТабличныйДокумент;
// Запрос, получение макета, привязка ТабДок к СУЩЕСТВУЮЩЕМУ НА ФОРМЕ табдоку, вывод данных в макет.
Запрос=...;
Результат=Запрос.Выполнить();
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента; // КОТОРЫЙ УЖЕ РАЗМЕЩЕН НА ФОРМЕ
Макет = ПолучитьМакет("Макет");
  ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("ЛицевыеСчета");
 
  ВыборкаЛицевыеСчета = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  Пока Выборкалицевыесчета.Следующий() цикл
       ОбластьлицевыеСчета.Параметры.Заполнить(ВыборкаЛицевыесчета);
       ТабДок.Вывести(ОбластьлицевыеСчета);
  КонецЦикла;
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Klyacksa

Кстати, а зачем Вам ОбходРезультатаЗапроса.ПоГруппировкам? В Вашем запросе оно не надо. Используйте просто Выбрать(), без параметров внутри.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

nenoob

При выполнении Первого варианта {Форма.Форма(35)}: Ошибка при вызове метода контекста (ПолучитьМакет): Недопустимое значение параметра (параметр номер '1')
Макет = ПолучитьМакет("Макет");
по причине:
Недопустимое значение параметра (параметр номер '1')


При выполнении Второго {Форма.Форма(14)}: Поле объекта не обнаружено (ПолеТабличногоДокумента)
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента; // КОТОРЫЙ УЖЕ РАЗМЕЩЕН НА ФОРМЕ

Klyacksa

1. у Вашего объекта (обработки, документа, справочника... не знаю, где вы там все это пишете) должен быть Макет, который и получается по имени "Макет". Если его нет, то и получать нечего.
2. Вы меня совсем не "читаете"? я уже капс-локом Вам комментарии выделила. НУ НЕ ОБНАРУЖЕНО ПолеТабличногоДокумента на форме. Для второго способа НА ФОРМЕ ДОЛЖЕН БЫТЬ РАСПОЛОЖЕН ЭЛЕМЕНТ УПРАВЛЕНИЯ ПОЛЕ ТАБЛИЧНОГО ДОКУМЕНТА (с таким же именем)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Теги:
Рейтинг@Mail.ru

Поиск