Имя: Пароль:
1C
 
Добавление строк в дерево значений
0 Franchiser
 
гуру
12.05.20
13:24
в консоли запросов есть такой код:
&НаКлиенте
Процедура ДобавитьЗапрос(Команда)
    ГридДереваЗапросов = Элементы.ДеревоЗапросов;
    ТекущийЗапрос = ГридДереваЗапросов.ТекущиеДанные;
    Если ТекущийЗапрос <> Неопределено Тогда
        ГридДереваЗапросов.ДобавитьСтроку();
        НовыйЗапрос = ГридДереваЗапросов.ТекущиеДанные;
        ИнициализироватьЗапрос(НовыйЗапрос, "<без названия>");
        Модифицированность = Истина;
    Иначе
        ПоказатьПредупреждение(, "Запрос-родитель не выбран");
        Модифицированность = Ложь;
    КонецЕсли;
КонецПроцедуры

В конфигурации в режим совместимости 8.3.12 все работало.

В новых конфигурациях с режимом совместимости 8.3.14 не работает добавление строк в дерево:
ГридДереваЗапросов.ДобавитьСтроку();
1 Franchiser
 
гуру
12.05.20
13:53
Переписал так:
&НаКлиенте
Процедура ДобавитьЗапрос(Команда)
    ГридДереваЗапросов = Элементы.ДеревоЗапросов;
    ТекущийЗапрос = ГридДереваЗапросов.ТекущиеДанные;
    Если ТекущийЗапрос <> Неопределено Тогда
        //-
        //ГридДереваЗапросов.ДобавитьСтроку();
        //НовыйЗапрос = ГридДереваЗапросов.ТекущиеДанные;
        //-
        
        //+
        ТекущаяСтрока       = ДеревоЗапросов.НайтиПоИдентификатору(ГридДереваЗапросов.ТекущаяСтрока);
        НовыйЗапрос   = ТекущаяСтрока.ПолучитьЭлементы().Добавить();
        ГридДереваЗапросов.ТекущаяСтрока = НовыйЗапрос.ПолучитьИдентификатор();
        //+
        
        ИнициализироватьЗапрос(НовыйЗапрос, "<без названия>");
        
        Модифицированность = Истина;
    Иначе
        ПоказатьПредупреждение(, "Запрос-родитель не выбран");
        Модифицированность = Ложь;
    КонецЕсли;
КонецПроцедуры
2 Fish
 
12.05.20
13:58
Молодец!
3 Franchiser
 
гуру
12.05.20
14:22
(2) Да, но почему не работает ДобавитьСтроку()?
4 Fedor-1971
 
12.05.20
14:42
(3) Так ведь тип - Дерево, ДобавитьСтроку() тупо не знает в какую ветку тебе что-то нужно добавлять
в твоём коде из (1) можешь попробовать использовать ДобавитьСтроку() вместо Добавить()
5 Franchiser
 
гуру
12.05.20
16:08
(4) у ГридДереваЗапросов тип "Таблица формы". Это элемент формы к которому привязано ДЗ.
6 Fedor-1971
 
12.05.20
16:10
(5) Так без разницы, проблема та же "В какую ветку добавлять строку?"
7 Franchiser
 
гуру
12.05.20
16:11
ДобавитьСтроку (AddRow)
Синтаксис:
ДобавитьСтроку()
Описание:
Добавляет строку в таблицу, аналогично выполнению команды "Добавить".
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Примечание:
Метод не выполняет действия, если соответствующая ему команда таблицы недоступна.
Использование в версии:
Доступен, начиная с версии 8.2
8 Franchiser
 
гуру
12.05.20
16:13
(6) на совместимости 8.3.12 то работает. Должно работать так же как если пользователь выполнил стандартную команду Добавить.
9 Franchiser
 
гуру
12.05.20
16:16
Если вывести стандартную команду в командную панель в привязке к этому элемент на формы она действительно почему то не доступна, но почему такое может быть.
10 Fedor-1971
 
12.05.20
16:19
(8) надёжно работать с деревом значений на форме лучше через поиск ветки в самом дереве
В таком раскладе снимается зависимость от реализации конкретной версии

(9) Это уже странно, в нормальном виде должно добавляться.
11 Franchiser
 
гуру
12.05.20
17:16
Разобрался: заработало после того как указал для элемента формы ДЗ свойство "изменять состав строк " = да