Имя: Пароль:
1C
1С v8
Родитель нужного уровня ☑
0 Rizhij_Nikitos
 
27.08.13
✎
11:15
Эта тема не про п*дарасов. Есть у меня управляемая форма(8.3.3 не такси), на ней расположены несколько групп, в которых сгруппированы однотипные поля ввода. Задача сгруппировать поля ввода по родителю нужного уровня - то есть основных групп, но они не являются группами высшего уровня - у них еще 2 уровня сверху.

Как лучше это сделать, есть ли стандартные средства? Не хотелось бы рекурсию устраивать.
1 Rizhij_Nikitos
 
27.08.13
✎
11:17
Извините, если не очень доходчиво - кожу со вчерашнего дня еще не останавливался...

Есть основные группы, у которых есть родители.

Есть поля ввода которые раскиданы по подчиненным группам основных групп.

Как перебрать все поля ввода(названия поддаются обходу при помощи итератора) и определить у них родителя кратчайшим путем - то есть какая из перечня основных групп является его родителем?
2 olegves
 
27.08.13
✎
11:27
(0) отдельно выбирай свои группы:
Выбрать Второй.ссылка
Поместить Группы
Из справочник.Твой КАК Верх
Левое соединение Справочник.Твой КАК Первый
  ПО Первый.Родитель = Верх.Ссылка
Левое соединение Справочник.Твой КАК Второй
  ПО Второй.Родитель = Первый.Ссылка
ГДЕ
Второй.ЭтоГруппа

а затем вяжи со своими элементами
3 Rizhij_Nikitos
 
27.08.13
✎
11:28
Почти угадал, только мы про УФ говорим а не про элементы справочника...
4 olegves
 
27.08.13
✎
11:29
(3) а кто тебе мешает использовать Дин.список с произвольным запросом на УФ?
5 Rizhij_Nikitos
 
27.08.13
✎
11:30
Мы говорим про элементы формы, а не про объекты ИБ.
6 olegves
 
27.08.13
✎
11:34
(5) ты не умеешь добавлять элемент формы с типом: Динамический список?
7 Rizhij_Nikitos
 
27.08.13
✎
11:35
http://clip2net.com/s/5DzJnM

Надеюсь так понятнее станет...
8 olegves
 
27.08.13
✎
11:40
(7) любим плавать в шубе и валенках? Упростить форму не пробовал?
9 Rizhij_Nikitos
 
27.08.13
✎
11:43
Это уже другой вопрос и форма итак уже упрощена, удачно сгруппирована и набита всякими крутыми штуками чтобы эргономично вмещать в себя около 300 полей ввода. Кароче мы не обсуждаем сейчас мое ТЗ, мне надо взяв любое поле ввода определить принадлежит ли оно группе на несколько уровней выше.
10 olegves
 
27.08.13
✎
11:50
(9) см (2) и думать
11 Rizhij_Nikitos
 
27.08.13
✎
11:53
Я конечно еще не специалист, но на сколько мне известно, к элементам формы запросы делать нельзя.
12 olegves
 
27.08.13
✎
12:43
(11) принадлежность группе в какой момент собираешься проверять?
В ПриСозданииНаСервере заполни реквизит формы с типом ТаблицаЗначений запросом, подобным (2)
А в проверке вызывай серверную функцию, в которой делай поиск родителя проверяемого элемента в этой таблицеЗначений
13 Rizhij_Nikitos
 
27.08.13
✎
13:41
Ну вот как то так...

    Отбор=Новый Структура;
    Попытка
        Отбор.Вставить("Группа",Элементы[Элемент].Родитель);    
    Исключение
        //Если обращение к родителю не прокатит, что конечно очень врятли...
        Сообщить("Ошибка определения родителя поля при расчете коэффициентов, обратитесь к автору сего творения!");
        Возврат("Ошибка");
    КонецПопытки;
    
    Результат=ТЗПоказателей.НайтиСтроки(Отбор);
    
    Если Результат.Количество()>0 Тогда
        Возврат(Результат[0]);
    Иначе
        Возврат(ОпределитьРодителя(Элементы[Элемент].Родитель.Имя));
    КонецЕсли;
14 Rizhij_Nikitos
 
27.08.13
✎
13:41
Это был полный текст функции Функция ОпределитьРодителя(Элемент)
15 Rizhij_Nikitos
 
27.08.13
✎
13:42
В ТЗ показателей в колонке группа содержатся проверяемые основные группы