Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

На управляемой форме не видны поля добавленные программно

На управляемой форме не видны поля добавленные программно
Я
   bodri
 
30.09.16 - 08:28
Программно добавляются страницы по видам помещений
Страницы на форме отображаются, дальше в зависимости от вида помещений, если паркинг или коммерческие добавляется табличный документ - добавляется и видно на форме, а если вид помещений квартира, добавляется ещё элемент формы страниц и на них добавляются страницы по блокам, а уже в страницах этих блоков добавляется табличные документы - вот как раз с ними и проблема, все добавляется (видно в отладчике), а в предприятии на форме нет нечего.
Помогите разобраться.

Код:

            //Добавляем страницы видов помещений

            ВидПомещения = Элемент_2.ВидПомещения;
            Имя = "ЖК_" + Элемент_1.ЖК.Код + "_" + Лев(ВидПомещения,2); 
            ЭлементФормы_3 = ЭтаФорма.Элементы.Найти(Имя);
            
            Если ЭлементФормы_3 = Неопределено Тогда
                ЭлементФормы_3 = ЭтаФорма.Элементы.Добавить(Имя,Тип("ГруппаФормы"),ЭлементФормы_2);
                ЭлементФормы_3.Вид            = ВидГруппыФормы.Страница;
                ЭлементФормы_3.Заголовок    = ВидПомещения;
                ЭлементФормы_3.Видимость    = Истина;
            КонецЕсли;
            
            //Если вид помещения Паркинг или Коммерческие тогда выводим табличную часть

            Если ВидПомещения = Перечисления.ВидыПомещений.Паркинг 
                или ВидПомещения = Перечисления.ВидыПомещений.КоммерческоеПомещение Тогда
                
                //Добавляем таблицу

                Имя = "Т_ЖК_" + Элемент_1.ЖК.Код + "_" + Лев(ВидПомещения,2);
                ЭлементФормы_4 = ЭтаФорма.Элементы.Найти(Имя);
                
                Если ЭлементФормы_4 = Неопределено Тогда
                    ЭлементФормы_4 = ЭтаФорма.Элементы.Добавить(Имя,Тип("ПолеФормы"),ЭлементФормы_3);
                    ЭлементФормы_4.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
                    ЭлементФормы_4.Видимость= Истина;
                    ЭлементФормы_4.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
                    ЭлементФормы_4.УстановитьДействие("ОбработкаРасшифровки","ОбработкаРасшифровки");
                    ТекРеквизит = Новый РеквизитФормы(ЭлементФормы_4.Имя,Новый ОписаниеТипов(МассивТиповТаблицы));
                    ДобавляемыеРеквизиты = Новый Массив;
                    ДобавляемыеРеквизиты.Добавить(ТекРеквизит);
                    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
                    ЭлементФормы_4.ПутьКДанным = ТекРеквизит.Имя;
                КонецЕсли;
                
                Если ВидПомещения = Перечисления.ВидыПомещений.КоммерческоеПомещение Тогда
                    ЗаполнитьТабличныйДокумент_Коммерческие(ЭтаФорма[Имя],Элемент_2.Строки);
                ИначеЕсли ВидПомещения = Перечисления.ВидыПомещений.Паркинг Тогда
                    ЗаполнитьТабличныйДокумент_Паркинги(ЭтаФорма[Имя],Элемент_2.Строки);
                КонецЕсли;
                
                //Если вид помещения Квартира тогда добавляем страницы по блокам

            ИначеЕсли ВидПомещения = Перечисления.ВидыПомещений.Квартиры Тогда
                
                //Добавляем группу видов помещений

                Имя = "СтраницыБлоков_" + Элемент_1.ЖК.Код;
                ЭлементФормы_5 = ЭтаФорма.Элементы.Найти(Имя);
                
                Если ЭлементФормы_5 = Неопределено Тогда
                    ЭлементФормы_5 = ЭтаФорма.Элементы.Добавить(Имя,Тип("ГруппаФормы"),ЭлементФормы_3);
                    ЭлементФормы_5.Вид        = ВидГруппыФормы.Страницы;
                    ЭлементФормы_5.Видимость= Истина;
                КонецЕсли;
                
                //Обход по блокам

                Элементы_3 = Элемент_2.Строки;
                
                Для Каждого Элемент_3 из Элементы_3 Цикл
                    
                    //Добавляем страницы блоков

                    Имя = ОбработатьТекстИмени("ЖК_" + СокрЛП(Элемент_1.ЖК.Код) + "_Блок_" + СокрЛП(Элемент_3.Блок));
                    ЭлементФормы_6 = ЭтаФорма.Элементы.Найти(Имя);
                    Если ЭлементФормы_6 = Неопределено Тогда
                        ЭлементФормы_6 = ЭтаФорма.Элементы.Добавить(Имя,Тип("ГруппаФормы"),ЭлементФормы_5);
                        ЭлементФормы_6.Вид             = ВидГруппыФормы.Страница;
                        ЭлементФормы_6.Заголовок    = "Блок " + Элемент_3.Блок;
                        ЭлементФормы_6.Видимость    = Истина;
                    КонецЕсли;
                    
                    //Добавляем таблицу блока

                    Имя = ОбработатьТекстИмени("Т_ЖК_" + СокрЛП(Элемент_1.ЖК.Код) + "_Блок_" + СокрЛП(Элемент_3.Блок));
                    ЭлементФормы_7 = ЭтаФорма.Элементы.Найти(Имя);
                    
                    Если ЭлементФормы_7 = Неопределено Тогда
                        
                        ЭлементФормы_7 = ЭтаФорма.Элементы.Добавить(Имя,Тип("ПолеФормы"),ЭлементФормы_6);
                        ЭлементФормы_7.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
                        ЭлементФормы_7.Видимость= Истина;
                        ЭлементФормы_7.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
                        ЭлементФормы_7.УстановитьДействие("ОбработкаРасшифровки","ОбработкаРасшифровки");
                        ТекРеквизит = Новый РеквизитФормы(ЭлементФормы_7.Имя,Новый ОписаниеТипов(МассивТиповТаблицы));
                        ДобавляемыеРеквизиты = Новый Массив;
                        ДобавляемыеРеквизиты.Добавить(ТекРеквизит);
                        ИзменитьРеквизиты(ДобавляемыеРеквизиты);
                        ЭлементФормы_7.ПутьКДанным = ТекРеквизит.Имя;
                        
                    КонецЕсли;
                    
                    ЗаполнитьТабличныйДокумент_Квартиры(ЭтаФорма[Имя],Элемент_3.Строки);
                    
                КонецЦикла;
                
            КонецЕсли;
 
 
   МимохожийОднако
 
1 - 30.09.16 - 08:41
попробуй программно заполнить добавленное поле
   bodri
 
2 - 30.09.16 - 08:45
(1) оно заполняется
   aleks_default
 
3 - 30.09.16 - 09:28
сначала добавляй реквизиты реквизиты а потом элементы формы.
   aleks_default
 
4 - 30.09.16 - 09:28
а не наоборот
   bodri
 
5 - 30.09.16 - 09:40
(3),(4) без разницы, т.к. в обоих условиях одинаково создается, вот только в одном работает как надо а в другом нет
   aleks_default
 
6 - 30.09.16 - 10:27
А у Элемент_2 какой тип? Че-то не врублюсь. Это элемент формы или дерево?
   bodri
 
7 - 30.09.16 - 10:31
(6) Это строка Дерева
   aleks_default
 
8 - 30.09.16 - 10:34
не пробовал страницу назначать текущей?
   bodri
 
9 - 30.09.16 - 10:36
(8) после добавления каждой страницы?
   aleks_default
 
10 - 30.09.16 - 10:37
нет не каждой, первую или последнюю
 
 Рекламное место пустует
   aleks_default
 
11 - 30.09.16 - 10:37
любую
   bodri
 
12 - 30.09.16 - 10:47
Будет проблематично, т.к. строятся элементы примерно так:

Форма
 - Страницы комплексов
   -комплекс 1 (Видно)
     -вид помещения
       -Квартиры (видно)
         -Страницы блоков
           -Блок 1 (не видно)
             -Табличная часть (не видно)
           -Блок 2 (не видно)
             -Табличная часть (не видно)
           -Блок n (не видно)
             -Табличная часть (не видно)
       -Коммерческие (видно)
         -Табличная часть (Видно)
       -Паркинг (видно)
         -Табличная часть (Видно)
  -комплекс n..

У всех имена уникальные и конфликта нет

Отладчик после прохода этой процедурины
ЭтаФорма.Элементы - показывает все элементы которые были добавлены и у всех видимость стоит ИСТИНА.
А вот на форме страницы блоков так и не показываются

уже было думал что не все таблицы выводятся, так для пробы тупо вставил вывод одной области и который выводит всегда без условий. Всё равно без изменений.
   bodri
 
13 - 30.09.16 - 11:19
Разобрался.
   bodri
 
14 - 30.09.16 - 11:20
(1) и (11) Спасибо за попытку помочь.

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