Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
andrey76
6 / 6 / 0
Регистрация: 04.12.2012
Сообщений: 394
1

Как программно добавить таблицу значений (тип "ДанныеФормыКоллекция") на форму

29.03.2013, 12:37. Просмотров 8309. Ответов 5
Метки нет (Все метки)

Подскажите позжайлуста в чем ошибка?

1C
1
2
3
4
5
6
7
8
9
&НаСервере
Процедура ДобавитьТаблицуНаСервере()
 
    МойТип = Новый ОписаниеТипов("ДанныеФормыКоллекция");   
    ТаблицаНовая = Новый РеквизитФормы("ТаблНовая",МойТип);
    ТаблицаНовая.Имя = "ТаблицаНовая";
    МассивДляТаблицаНовая = Новый Массив;
    МассивДляТаблицаНовая.Добавить(ТаблицаНовая);
    ЭтаФорма.ИзменитьРеквизиты(МассивДляТаблицаНовая);
пишет - недопустимый тип реквизита

Добавлено через 16 часов 30 минут
Напишите позжайлуста в чем ошибка?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 12:37
Ответы с готовыми решениями:

Не получается скопировать выделенные строчки из справочника "Сотрудники" в форму "Выбор"
Здравствуйте! У меня опыта работы с 1С мало поэтому хотел попросить помощи у более опытных коллег....

как программно в запросе ДС для реквизита определить тип "Число"?
как программно в запросе ДС для реквизита определить тип "Число", у которого есть 4 варианта - от...

Добавить колонку в форму списка документа "Заказ поставщику" УТ11
Вроде бы задача простая, но в чем дело понять не могу. Открываю форму списка документа, редактирую...

Как программно задать доступный список значений и изменить тип параметра
Всем привет! Платформа 1С:Предприятие 8.3, конфигурация редактированная типовая, режим...

Как вывести значение "бух учет" на форму документа?
как вывести такое значение "бух учет" на форму документа? без изменений в конфигураторе (чтобы...

5
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
29.03.2013, 13:43 2
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&НаСервере
Процедура ДобавитьНаСервере()
        
    ДобавляемыеРеквизиты = Новый Массив;    
    Реквизит1 = Новый РеквизитФормы("Таб", Новый ОписаниеТипов("ТаблицаЗначений"), , "Таблица", Истина);
    ДобавляемыеРеквизиты.Добавить(Реквизит1); 
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    ДобавляемыеРеквизиты = Новый Массив;    
    Реквизит2 = Новый РеквизитФормы("Кол", Новый ОписаниеТипов("Строка"),"Таб" , "Колонка", Истина);
    ДобавляемыеРеквизиты.Добавить(Реквизит2); 
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    ТаблицаФормы = ЭтаФорма.Элементы.Добавить("Таблица", Тип("ТаблицаФормы"), ЭтаФорма);    
    ТаблицаФормы.ПутьКДанным = "Таб";       
    
    Колонка = ЭтаФорма.Элементы.Добавить("Колонка", Тип("ПолеФормы"), ТаблицаФормы);    
    Колонка.ПутьКДанным = "Таб.Кол";       
    
КонецПроцедуры
2
andrey76
6 / 6 / 0
Регистрация: 04.12.2012
Сообщений: 394
29.03.2013, 14:44  [ТС] 3
Dethmontt Спасибо мужик , Меня смутило то что уже добавленная на форму таблица имела тип "ДанныеФормыКоллекция".

Всвязи с этим ворос: Почему мы добавляем реквизит типа "ТаблицаЗначений", а уже после добавления эта таблица имеет тип "ДанныеФормыКоллекция"?

Если можешь опиши логику - почему добавляемый элемент таблица имеет тип "ТаблицаФормы", а колонка которая принадлежит этой форме имеет такой же тип как например какая нибудь строка или число отображаемые на форме - тип "ПолеФормы"?

заранее спасибо
0
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
29.03.2013, 15:01 4
1.
1C
1
ЭтаФорма.Элементы.Добавить(Парам1,Парам2,.... )
Читаем в синтаксис помощнике про второй параметр метода ДОБАВИТЬ() - какие типы он принимает

2.
Реквизиты формы - могут иметь типы только прикладных типов или примитивных
1
andrey76
6 / 6 / 0
Регистрация: 04.12.2012
Сообщений: 394
29.03.2013, 19:00  [ТС] 5
Не понял. Мы же добавляем на форму реквизит Таким образом
Этаформа.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

а массив ДобавляемыеРеквизиты включает в себя один реквизит
Реквизит1 = Новый РеквизитФормы("Таб", Новый ОписаниеТипов("ТаблицаЗначений"), , "Таблица");
который имеет тип ТаблицаЗначений

а затем если посмотреть в отладчике после того как програмно создался реквезит Таб. Ивыделить вот это значение ----> (этаФорма.Таб) будет указано что у него тип ДанныеФормыКоллекция

Почему?
0
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
30.03.2013, 01:05 6
ТАк ты добавь мышкой РЕКВИЗИТ форме (не помещая этот реквизит на форму) и посмотри какой у него ТИП
0
30.03.2013, 01:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 01:05

На форму списка товаров добавить "ТабличноеПоле" с типом значений "ДеревоЗначений"
1С.8.0 На форму списка товаров добавить "ТабличноеПоле" с типом значений "ДеревоЗначений". При...

Как программно получить имена всех колонок реквизита формы, имеющего тип ДанныеФормыКоллекция?
как программно получить имена всех колонок реквизита формы, имеющего тип ДанныеФормыКоллекция?...

Для документа "ПродажаТоваров" на форму списка добавить "ПолеВвода"
Для документа "ПродажаТоваров" на форму списка добавить "ПолеВвода" с типом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru