Имя: Пароль:
1C
1С v8
v8 УФ Как создать программно ТЗ на форме Документа?
🠗 (aka AMIGO 26.01.2017 16:57)
, ,
0 aka AMIGO
 
26.01.17
14:36
"Непрограммно" вроде просто:
1- в Реквизиты поместил ТЗ,
2- задал колонки
3- в Элементах создал Группу-Страницу
4- перетащил ТЗ в эту Группу, при перетаскивании цепляется вопрос - перетащить и колонки. Вижу ТЗ в виде закладки, поименованы колонки.
Вопрос (нубический): как создать колонки программно?
При удалении колонок из элементов удаляется и сама ТЗ с формы.. Нет её, и всё тут..
1 aka AMIGO
 
26.01.17
14:37
С утра обшарил мисту, ответ не нашел..
2 1dvd
 
26.01.17
14:38
СоздатьКолонки()?
3 aka AMIGO
 
26.01.17
14:39
(2) Самое интересное - в какой момент-то.. Как обратиться к ТЗ на форме, если её нет?
4 shamannk
 
26.01.17
14:40
Может видимость скрыть?
5 lucbak
 
26.01.17
14:42
6 lucbak
 
26.01.17
14:42
>>При удалении колонок из элементов удаляется и сама ТЗ с формы.. Нет её, и всё тут..

Привыкай - это нормальное поведение для УФ
7 aka AMIGO
 
26.01.17
14:42
(4) Да нет, друже, видимость пусть будет. Мне надо обновлять эту тз с сервера.. А колонки мешают
8 lucbak
 
26.01.17
14:43
(7) После ОФ немного непривычно (когда в 100 раз больше) но потом привыкнешь и будет казать нормальным.
9 lucbak
 
26.01.17
14:44
*казатьСЯ
10 Fish
 
26.01.17
14:45
(7) Вот тут очень доступно описано: http://catalog.mista.ru/public/356288/
11 aka AMIGO
 
26.01.17
14:45
(5) Спасибо, это я уже читал.. Я подчеркнул в сабже - на форме Документа А в ссылке - в чистую форму без сторонних реквизитов
12 aka AMIGO
 
26.01.17
14:45
(10) О, это я не видел еще, спасибо!
13 lucbak
 
26.01.17
14:46
(11) не имеет значения на какой форме...
14 aka AMIGO
 
26.01.17
15:50
Реквизит ТЗ (в Форме, а не в Объекте) и Элемент: КоллТЗ
http://i.paste.pics/d8bfcba3bebdba2e95c0e7603b89e418.png

Отладка:
http://i.paste.pics/08e53968bf22f5f9d3dace4b1c4b8d13.png
Видно, что КоллФормы - это уже ТЗ, без колонок

А вот код:
ТабРез = Новый ТаблицаЗначений;
    Для х = 1 по 5 Цикл
            ТабРез.Колонки.Добавить("Кол"+Формат(х,"ЧГ = 0"));
    КонецЦикла;
    Стр = ТабРез.Добавить();
    Стр.Кол1 = "Это кол1";
    Стр.кол2 = "а это - кол2";
    Стр.Кол3 = "И кол3!";
    Стр.кол4 = "а это - кол4";
    Стр.Кол5 = "И кол5!";
   МассивДобавляемыхРеквизитов = Новый Массив;
    МассивУдаляемыхРеквизитов = Новый Массив;
    //ИдКоллекции="Коллекция1";
    ИдКоллекции="ТЗ";
    //ИдТаблицы="Таблица1";
    ИдТаблицы="КоллТЗ";
    КоллФормы=РеквизитФормыВЗначение(ИдКоллекции); //становится таблицей значений, колонок нет
    Для каждого ТекКол из КоллФормы.Колонки Цикл
        МассивУдаляемыхРеквизитов.Добавить(ИдКоллекции+"."+ТекКол.Имя);
    КонецЦикла;
    Для каждого ТекКол из ТабРез.Колонки Цикл
        МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ТекКол.Имя,ТекКол.ТипЗначения,ИдКоллекции));
    КонецЦикла;
    ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
    ЗначениеВРеквизитФормы(ТабРез,КоллФормы);

Значение в реквизит КоллФормы (в последнем операторе) не передается..
15 aka AMIGO
 
26.01.17
15:55
ТабРез - просто некая тестовая ТЗ, её заполняю в самом начале.
Вот её и пытаюсь выпихнуть на форму
Программист всегда исправляет последнюю ошибку.