Имя: Пароль:
1C
1С v8
Можно ли програмно добавлять закладки в форму документа и табличные поля?
0 Cerera
 
31.01.13
09:52
Вот есть на форме документа закладка с табличной частью. А нужно, чтобы было ещё несколько закладок с табличными полями содержащими те же поля, что и табличная часть, только разбитые по отборам. Можно ли это динамически создавать без использования УФ? так то я могу сам добавить несколько закладок и в них табличные поля, ссылающиеся в табличной части как к источнику данных, только с нужными мне отборами, но это негибкое решение, заранее неизвестно на сколько кусков нужно дробить. хотелось бы динамически это решать.
2 Cerera
 
31.01.13
10:06
(1)не. ну я серьезно это реализуемо?
3 Maxus43
 
31.01.13
10:09
(2) да, а что мешает?
З.ы. с привязками заманаешся и т.д. каждый пук описывать надо будет чтоб работало как то
4 Cerera
 
31.01.13
10:12
(3)ну мне по сути нужно только табличную часть с итогами и всё. чтоб менеджеры могли знать на какую сумму какого направления товара в заказе
5 ИС-2
 
naïve
31.01.13
10:13
(1) ну и за чем давать глупые ответы на нормальные вопросы?

добавить закладку, но года 2 назад пытался это сделать - не получилось.
ЭлементыФормы.Панель1.Страницы.Добавить(

(3) чтобы с привяками не мучаться я делаю так - добавляю все ручками на форму,тестирую, а потом с помощью декомпилятора (пр. http://infostart.ru/public/22147/) форм получаю код для программного добавления форм и вставлю его.
6 vde69
 
31.01.13
10:13
//----------------------------------------------------------
   // очищаем вкладки на форме
   
   Сч = Элементы.ГруппаСтраницРезультата.ПодчиненныеЭлементы.Количество() - 1;
   Пока Сч >= 0 Цикл
       Элементы.Удалить(Элементы.ГруппаСтраницРезультата.ПодчиненныеЭлементы[Сч]);
       Сч = Сч - 1;
   КонецЦикла;
   
   //----------------------------------------------------------
   // реквизиты делаем
   
   СуществующиеРеквизиты = Новый Массив;
   УдаляемыеРеквизиты = Новый Массив;
   Для каждого РеквизитФормы Из ЭтаФорма.ПолучитьРеквизиты() Цикл
       СуществующиеРеквизиты.Добавить(?(ЗначениеЗаполнено(РеквизитФормы.Путь), РеквизитФормы.Путь + ".", "") + РеквизитФормы.Имя);
       Если Лев(РеквизитФормы.Имя, 4) = "дат_" Тогда
           УдаляемыеРеквизиты.Добавить(?(ЗначениеЗаполнено(РеквизитФормы.Путь), РеквизитФормы.Путь + ".", "") + РеквизитФормы.Имя);
       КонецЕсли;
   КонецЦикла;
   
   ДобавляемыеРеквизиты = Новый Массив;
   Для Каждого эл из мКоллекцияПечатныхФорм Цикл
       ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("дат_"+эл.ИмяМакета, Новый ОписаниеТипов("ТабличныйДокумент"), , эл.СинонимМакета));
   КонецЦикла;
   
   ЗарплатаКадры.ИзменитьРеквизитыФормы(ЭтаФорма, ДобавляемыеРеквизиты,  ЭтаФорма.ПолучитьРеквизиты(), УдаляемыеРеквизиты );
   
   //----------------------------------------------------------
   // оформляем элементы формы
   
   Для Каждого эл из мКоллекцияПечатныхФорм Цикл
       НоваяВкладка = Элементы.Добавить("пчт_"+эл.ИмяМакета, Тип("ГруппаФормы"), Элементы.ГруппаСтраницРезультата);        
       НоваяВкладка.Вид = ВидГруппыФормы.Страница;
       НоваяВкладка.Заголовок = эл.ИмяМакета;
       
       ЭтаФорма["дат_"+эл.ИмяМакета] = эл.ТабличныйДокумент;
       
       НовыйДокумент = Элементы.Добавить("ф_дат_"+эл.ИмяМакета, Тип("ПолеФормы"), НоваяВкладка);        
       НовыйДокумент.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
       НовыйДокумент.ПутьКДанным = "дат_"+эл.ИмяМакета;
   КонецЦикла;
7 Maxus43
 
31.01.13
10:13
(4) отчет не проще нарисовать?
8 Maxus43
 
31.01.13
10:15
(5) декомпилятор - это конечно прикольно, но я стараюсь уйти от таких задач. динамическое формирование форм в обычном приложении - больше гемороя имхо
9 Maxus43
 
31.01.13
10:18
(5) так работает вроде по странице:
   Форма.ЭлементыФормы.ОсновнаяПанель.Страницы.Добавить("СтраницаПеречислениеНалогов","Перечисление в бюджет");
   Форма.ЭлементыФормы.ОсновнаяПанель.Страницы.СтраницаПеречислениеНалогов.Видимость = Истина;  
   Форма.ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = Форма.ЭлементыФормы.ОсновнаяПанель.Страницы.СтраницаПеречислениеНалогов;
10 Cerera
 
31.01.13
10:35
(7)ну отчет это хорошо конечно. просто суть в том что есть докумет - сводный заказ в нём менеджеры набивают заявку которая потом разобьётся на несколько юр лиц в зависимости от того какой там товар набили. а им нужно наглядно видеть на какие суммы какой заказ. отчет то проще но не так динамично.
(9)а табличное поле как добавить?
(5)ценный совет спасибо
11 ИС-2
 
naïve
31.01.13
10:38
(8) согласен, что затраты на добавление реквизтов вырастают в несколько раз, но это потом слихвой компенсируется при поднятии релизов. Поэтому надо смотреть, где надо делать (УПП, Бух) и где не надо (УТ)
(10) Возьми декомпилятор - сразу все станет понятно
12 Defender aka LINN
 
31.01.13
10:57
(5) Документу "Корректировка записей регистров" в типовых существенно больше двух лет. ИЧСХ, там это вполне себе работало тогда и работает сейчас.
Ну и вопрос был "Можно ли это динамически создавать без использования УФ?". На такой вопрос я принципиально даю только такие ответы - чтобы хоть немного межушной мышцей шевелили.
13 Cerera
 
31.01.13
13:55
(11)скачал декомпилятор - вообще весчь. ахринительная. теперь все формы бы так создавать. обработки только нужно написать для автоматизации
14 ИС-2
 
naïve
31.01.13
17:20
(13) Я часа 2 приводил в божеский вид форму номенклатуры после добавления 1 поля :D