1с удалить элемент дерева значений

Пример удаления строки из дерева значений на УФ

День добрый.
Есть дерево значений на форме (УФ). Не могу понять как обратиться к индексу текущей строки дерева и удалить строку, пересчитав потом всю форму. Удалять надо только нижний уровень, соответственно если в верхнем уровне не останется подчиненных то тоже нужно его удалить.
Если у кого-то код такой есть, то буду благодарен, если поделитесь.
Спасибо!

Удаление текущей строки (на клиенте)

УдаляемаяСтрока = ДеревоЗначений.НайтиПоИдентификатору(Элементы.ДеревоЗначений.ТекущиеДанные.ПолучитьИдентификатор()); ДеревоЗначений.ПолучитьЭлементы().Удалить(УдаляемаяСтрока);

Так не работает, если удаляемая строка не на первом уровне. Если она в глубине работает заклинание

Так как получить элементы тянет только один уровень.
На первом уровне может и нет родителя и заклинание упадёт, я не проверял, мне не надо. Но гибрида если что каждый думаю соберёт.

Реализовал так.
Здесь пустой родитель не удаляется (мне это не нужно). Но думаю, что логика понятна.

В моем коде в дереве может быть два уровня. Я могу выделить курсором либо строку нижнего уровня, либо родителя.
Соответственно удаляется либо первый уровень целиком, либо строка на втором уровне.

&НаКлиенте Процедура Удалить(Команда) Если Элементы.Дерево.ТекущиеДанные <> Неопределено Тогда ид = Элементы.Дерево.ТекущиеДанные.ПолучитьИдентификатор(); Стр = Дерево.НайтиПоИдентификатору(ид); Родитель = Стр.ПолучитьРодителя(); Если Родитель = Неопределено Тогда Дерево.ПолучитьЭлементы().Удалить(Элементы.Дерево.ТекущиеДанные); Иначе Родитель.ПолучитьЭлементы().Удалить(Элементы.Дерево.ТекущиеДанные); КонецЕсли; КонецЕсли; КонецПроцедуры

Источник

1С 8.3 : Как удалить строку или очистить дерево значений

Распечатать

Помните, что при при удалении/очистке строки, все подчиненные строки удаляются.

Очистить дерево значений: Дерево.Строки.Очистить();

 &НаСервере 
Процедура ОчиститьНаСервере()
тДерево = РеквизитФормыВЗначение("Дерево");

тДерево.Строки.Очистить();

ЗначениеВРеквизитФормы(тДерево, "Дерево");
КонецПроцедуры

Точно также можно очистить от подчиненных элементов другую другую строку.

Удалить строку дерева значений не сложнее & нужно только знать ее индекс:

 &НаКлиенте 
Процедура Удалить(Команда)
УдалитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура УдалитьНаСервере()
тДерево = РеквизитФормыВЗначение("Дерево");

тДерево.Строки.Удалить(0);

ЗначениеВРеквизитФормы(тДерево, "Дерево");
КонецПроцедуры

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора ВКС — Высококвалифицированные специалисты — какие настройки нужно сделать ЗУП? 0
В этой статье мы вкратце расскажем — какие настройки нужно сделать ЗУП для временно пребывающих высококвалифицированных иностранных специалистов. Гражданство Откройте сотрудника и перейдите в настройки данных о Гражданстве Если сотрудник ВКС то Выгрузка картинок из базы 1С в XML 2
В нынешнее время для электронного каталога или интернет-магазина необходимо выгружать не только информацию о цене и характеристиках товара, но и сопутствующие изображения. Хранящиеся в базе или связанные с номенклатурой изображения порой приходилось Посмотреть все результаты поиска похожих

Читайте также:  Средство против гнили дерева

Еще в этой же категории

Дерево значений в таблицу значений или в табличную часть и обратно 9
Для одной организации надо было реализовать документы, где вместо табличной части надо использовать дерево и все это на управляемых формах. Но дерево нельзя сохранить в базе в текущем виде. Пришлось использовать табличную часть документа для хранени ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка — дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко Как отобразить дерево значений на управляемой форме 0
Создадим новую внешнюю обработку. Добавляем управляемую форму и создаем обработчик ПриСозданииНаСервере(). Никаких реквизитов и элементов “вручную” не добавляем, будем делать это программно. НаСервере Процедура ПриСозданииНаСервере(Отказ, Станда Посмотреть все в категории Работа с Деревом Значений

Источник

1С 8.2 УП : Как удалить строку или очистить дерево значений

Распечатать

Помните, что при при удалении/очистке строки, все подчиненные строки удаляются.

Очистить дерево значений: Дерево.Строки.Очистить();

 &НаСервере 
Процедура ОчиститьНаСервере()
тДерево = РеквизитФормыВЗначение("Дерево");

тДерево.Строки.Очистить();

ЗначениеВРеквизитФормы(тДерево, "Дерево");
КонецПроцедуры

Точно также можно очистить от подчиненных элементов другую другую строку.

Удалить строку дерева значений не сложнее & нужно только знать ее индекс:

 &НаКлиенте 
Процедура Удалить(Команда)
УдалитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура УдалитьНаСервере()
тДерево = РеквизитФормыВЗначение("Дерево");

тДерево.Строки.Удалить(0);

ЗначениеВРеквизитФормы(тДерево, "Дерево");
КонецПроцедуры

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=» D:ВашаБаза1с77″ ; Пользователь= Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих

Читайте также:  Чем ободрать кору дерева

Еще в этой же категории

Примеры работы с Деревом значений в УП 11
Так как работа с ДеревомЗначений и ТаблицейЗначений в данном контексте практически не отличается, в примере будет использоваться ДеревоЗначений, все тоже самое за исключением иерархии применимо и к ТаблицеЗначений. Как известно, в платформе 1С 8.1 н Дерево значений в таблицу значений или в табличную часть и обратно 9
Для одной организации надо было реализовать документы, где вместо табличной части надо использовать дерево и все это на управляемых формах. Но дерево нельзя сохранить в базе в текущем виде. Пришлось использовать табличную часть документа для хранени Как в дереве значений строку перекинуть в другой родитель? 5
Процедура ПереместитьСтрокуДерева(Дерево, ПеремещаемаяСтрока, НовыйРодитель, Уровень = 0) Если Уровень = 0 Тогда НоваяСтрока = НовыйРодитель.Строки.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ПеремещаемаяСтрока); ПереместитьСтрокуДерева(Де Как Свернуть, Развернуть узлы Дерева значений на форме? 4
Как программно свернуть/развернуть дерево значений на управляемой форме? Желательно НаКлиенте. КоллекцияЭлементовДерева=ДеревоНоменклатуры.ПолучитьЭлементы(); //Свернуть дерево Для Каждого Строка Из КоллекцияЭлементовДерева Цикл ИдентификаторСт ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка — дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко Посмотреть все в категории Работа с Деревом Значений

Источник

Оцените статью