Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Программный вывод ТаблицыЗначений на форму.

Программный вывод ТаблицыЗначений на форму.
Я
   Vasya1c
 
23.10.19 - 11:26
Здравствуйте, помогите разобраться, пытаюсь вывести таблицу значений на форму обработки программно, реквизита ТЗ нет на форме

ИмяТаблицыЗн="План";
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяТаблицыЗн, Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Контрагент", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100)),ИмяТаблицыЗн , "Контрагент"));

ТаблицаФормы = Элементы.Добавить(ИмяТаблицыЗн, Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = ИмяТаблицыЗн;
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);

Вылетает ошибка,
Недопустимое значение параметра (параметр номер '2')
{ВнешняяОбработка.ПолучитьФайлЭкселя.Форма.Форма.Форма(187)}:  ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);
 
 
   ДенисЧ
 
1 - 23.10.19 - 11:27
А нет ли у тебя на форме уже реквизита с таким именем?
   Franchiser
 
2 - 23.10.19 - 11:33
где ИзменитьРеквизиты ?
   Vasya1c
 
3 - 23.10.19 - 11:36
(1)Реквизита с таким именем нет.
(2) процедура большая я часть выложил сюда,на самом деле так

ИмяТаблицыЗн="План";
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяТаблицыЗн, Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Контрагент", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100)),ИмяТаблицыЗн , "Контрагент"));

ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
ТаблицаФормы = Элементы.Добавить(ИмяТаблицыЗн, Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = ИмяТаблицыЗн;
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);
   Vasya1c
 
4 - 23.10.19 - 11:38
На самом деле , пример из учебника практически, но что то не работает.
   Андрюха
 
5 - 23.10.19 - 11:40
СоздатьКолонки
   Franchiser
 
6 - 23.10.19 - 11:41
Если реквизит создаешь программно, то обращение к нему возможно как правило только через "ЭтоФорма".
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
   hhhh
 
7 - 23.10.19 - 11:42
(4) ну может таблицы разные. Для ЗначениеВРеквизитФормы всё должно совпадать, типы колонок и их количество и всё остальное.

Например, Контрагент - действтельно в другой таблице тоже строка длиной 100?
   Vasya1c
 
8 - 23.10.19 - 11:57
Парни благодарю, действительно в тз типы не совпадают.
  Т3111= Новый ТаблицаЗначений();
  Т3111.Колонки.Добавить("Контрагент",Новый ОписаниеТипов("Строка"));
  Новаястрока=Т3111.Добавить();
  Новаястрока.Контрагент = "Леопольд";
  ЗначениеВРеквизитФормы(Т3111, ИмяТаблицыЗн); 
Вот так без ошибки.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.