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 | |||
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 |
|
Список тем форума
|