Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/47: Рейтинг темы: голосов - 47, средняя оценка - 4.68
7 / 7 / 0
Регистрация: 04.12.2012
Сообщений: 397
1

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

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

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

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

Добавлено через 16 часов 30 минут
Напишите позжайлуста в чем ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2013, 12:37
Ответы с готовыми решениями:

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

Программно добавить поле типа "дата" в таблицу mdb
Как программно добавить поле типа "дата" в таблицу mdb? Нужно, чтобы формат был краткий, типа...

Как программно добавить "Внедрить" код в активную страницу сайта в браузере например "ЯндексБраузер" средствами делфи
Собственно вопрос, Как программно добавить "Внедрить" код в активную страницу сайта в браузере...

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

5
Модератор
Эксперт 1С
2811 / 2556 / 456
Регистрация: 10.03.2011
Сообщений: 9,436
Записей в блоге: 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
7 / 7 / 0
Регистрация: 04.12.2012
Сообщений: 397
29.03.2013, 14:44  [ТС] 3
Dethmontt Спасибо мужик , Меня смутило то что уже добавленная на форму таблица имела тип "ДанныеФормыКоллекция".

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

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

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

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

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

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

Почему?
0
Модератор
Эксперт 1С
2811 / 2556 / 456
Регистрация: 10.03.2011
Сообщений: 9,436
Записей в блоге: 1
30.03.2013, 01:05 6
ТАк ты добавь мышкой РЕКВИЗИТ форме (не помещая этот реквизит на форму) и посмотри какой у него ТИП
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2013, 01:05

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

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

Как добавить кнопку "Добавить форму Windows." на панель VS?
Как добавить кнопку "Добавить форму Windows..." на "панель" или "обозреватель решений" VS?

Хочу изменить тип "int" в тип "float". Но как его меняю, то появляется ошибка как её можно исправить?
public class Ball { PongForm form; private PictureBox ballPictureBox,...

Как в sql реализован логич.тип?Как можно в sql сделать так,чтобы были только значения "0"и"1" или "да"и"Нет"?
Хочу использовать в таблице переменные логического типа, но не нашла ничего про логический тип в...


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

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

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