|
Программный вывод ТаблицыЗначений на форму.
| ☑ |
0
Vasya1c
23.10.19
✎
11:26
|
Здравствуйте, помогите разобраться, пытаюсь вывести таблицу значений на форму обработки программно, реквизита ТЗ нет на форме
ИмяТаблицыЗн="План";
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяТаблицыЗн, Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Контрагент", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100)),ИмяТаблицыЗн , "Контрагент"));
ТаблицаФормы = Элементы.Добавить(ИмяТаблицыЗн, Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = ИмяТаблицыЗн;
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);
Вылетает ошибка,
Недопустимое значение параметра (параметр номер '2')
{ВнешняяОбработка.ПолучитьФайлЭкселя.Форма.Форма.Форма(187)}: ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);
|
|
1
ДенисЧ
23.10.19
✎
11:27
|
А нет ли у тебя на форме уже реквизита с таким именем?
|
|
2
Franchiser
гуру
23.10.19
✎
11:33
|
где ИзменитьРеквизиты ?
|
|
3
Vasya1c
23.10.19
✎
11:36
|
(1)Реквизита с таким именем нет.
(2) процедура большая я часть выложил сюда,на самом деле так
ИмяТаблицыЗн="План";
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяТаблицыЗн, Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Контрагент", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100)),ИмяТаблицыЗн , "Контрагент"));
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
ТаблицаФормы = Элементы.Добавить(ИмяТаблицыЗн, Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = ИмяТаблицыЗн;
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ЗначениеВРеквизитФормы(ТаблицаЗначений, ИмяТаблицыЗн);
|
|
4
Vasya1c
23.10.19
✎
11:38
|
На самом деле , пример из учебника практически, но что то не работает.
|
|
5
Андрюха
23.10.19
✎
11:40
|
СоздатьКолонки
|
|
6
Franchiser
гуру
23.10.19
✎
11:41
|
Если реквизит создаешь программно, то обращение к нему возможно как правило только через "ЭтоФорма".
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
|
|
7
hhhh
23.10.19
✎
11:42
|
(4) ну может таблицы разные. Для ЗначениеВРеквизитФормы всё должно совпадать, типы колонок и их количество и всё остальное.
Например, Контрагент - действтельно в другой таблице тоже строка длиной 100?
|
|
8
Vasya1c
23.10.19
✎
11:57
|
Парни благодарю, действительно в тз типы не совпадают.
Т3111= Новый ТаблицаЗначений();
Т3111.Колонки.Добавить("Контрагент",Новый ОписаниеТипов("Строка"));
Новаястрока=Т3111.Добавить();
Новаястрока.Контрагент = "Леопольд";
ЗначениеВРеквизитФормы(Т3111, ИмяТаблицыЗн);
Вот так без ошибки.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший