Имя: Пароль:
1C
1С v8
Добавление элемента справочника в группу программно.
0 Bukasoid
 
05.12.16
00:19
Не могу понять как программно добавить элемент в группу. Поле "Родитель" заполняется, элемент не перемещается...
1 глазковыколупыватель
 
05.12.16
00:20
Код показывай.
2 Bukasoid
 
05.12.16
00:27
&НаСервере
Процедура ВыбратьРодителя()
    
    Класс = Объект.Класс.Наименование;
    Если НЕ Объект.Родитель.Наименование = Класс Тогда
        Группа = Справочники.Ученики.НайтиПоНаименованию(Класс);
        Если Группа = Справочники.Ученики.ПустаяСсылка() Тогда
            Группа = Справочники.Ученики.СоздатьГруппу();
            Группа.Наименование = Класс;
            Группа.Записать();
        КонецЕсли;
        Объект.Родитель = Группа.Ссылка;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
     ВыбратьРодителя();
КонецПроцедуры
3 h-sp
 
05.12.16
00:31
зачем вы одинаковое наименование даете классу и группе. Вот они у вас перепутались.
4 глазковыколупыватель
 
05.12.16
00:37
(2) Ищите группу запросом среди элементов-групп.
5 Bukasoid
 
05.12.16
00:45
(3) Класс - это просто переменная, до процедуры не определена. (4) Первоначально делал именно так, все-равно не работало
6 Bukasoid
 
05.12.16
00:48
(3) А, не сразу понял о чем вы, задача как раз и стоит запихнуть ученика в группу соответствующего класса. Поэтому группа как раз должна иметь одинаковое наименование с классом.
7 Bukasoid
 
05.12.16
00:50
(6) Цель - сделать так, чтобы при записи элемент самостоятельно помещался в нужную группу.
8 Torquader
 
05.12.16
01:02
Если у объекта есть поле класс, то есть подозрение, что переменная Класс - это оно и есть, назовите переменную например "ы" и попробуйте.
9 Bukasoid
 
05.12.16
01:09
(8) С сервера реквизиты вроде как недоступны. На всякий случай переименовал, попробовал. Все без изменений.
10 Bukasoid
 
05.12.16
01:17
Разобрался. Проблема была в форме списка. Стояло отображение "Список" вместо "Иерархический список".
11 Torquader
 
05.12.16
02:04
(10) Я об этом, кстати, тоже подумал, но - обычно если не получается программно - народ делает вручную.