Изменить значение колонки дерева значений
Есть дерево значений в строке нужно изменить значение колонки. Пробовал так:
Значение не присваивается, остается Null, ошибок тоже не возникает. Подскажите, как это сделать?
Пробовал добавить новую строку и в ней для теста присвоить значение колонки:
Новая строка создается, значение колонки ПараметрыДанныхДолжностьРаботникаКадровойСлужбы остается Null.
Данные.Строки[0].ПараметрыДанныхДолжностьРаботникаКадровойСлужбы = "Тест";
Значение не присваивается, остается Null, ошибок тоже не возникает. Подскажите, как это сделать?
Пробовал добавить новую строку и в ней для теста присвоить значение колонки:
/ Данные это ДеревоЗначений.
НС = Данные.Строки.Добавить();
НС.ПараметрыДанныхДолжностьРаботникаКадровойСлужбы = "Тест";
По теме из базы знаний
- Рекурсивный обход дерева значений с пересчетом иерархических итогов группировок
- Управляемая форма 1С 8.2(8.3) – работа с деревом значений и таблицей значений. Часть II (Реализация DRAG and DROP)
- Управляемая форма 1С 8.2(8.3) – работа с деревом значений и таблицей значений. Часть III (Реализация трехпозиционного флажка)
- Восстановление развернутых строк ДереваЗначений после его обновления (управляемая форма)
- Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Как добавить строку в число возможных?
Дерево так появляется:
В отладчике так выглядит:
Дерево так появляется:
Данные = Новый ДеревоЗначений;
// часть процедуры
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(Данные);
// Обозначим начало вывода
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
ПоказатьВ отладчике так выглядит:
Прикрепленные файлы:

(3) Судя по отладчику, тип значения этой колонки может быть только NULL. Соответственно, ничего другого в нее не записать.
Макет, надо понимать, взялся из схемы компоновки данных.
Надо посмотреть, что за запрос в этой схеме и почему он выдает NULL.
С другой стороны... если вы строите и меняете дерево руками, зачем вообще все эти компоновщики?
Макет, надо понимать, взялся из схемы компоновки данных.
Надо посмотреть, что за запрос в этой схеме и почему он выдает NULL.
С другой стороны... если вы строите и меняете дерево руками, зачем вообще все эти компоновщики?
Если по результатам запроса у вас получилось дерево и у какой то колонки вам нужно изменить тип - то вы запросто можете сделать. Но тут почему так получилось - ведь запрос/компоновщик сам определил тим, то есть он пустой - null, в ней ни чего нету. Можно два подхода сделать
1. Переопределить тип ДеревоЗначений.Колонки["ИмяКолонки"].ТипЗначения = Новый ОписанияТипов(.....)
2. Просто удалите колонку раз она пуская и новую добавьте с вашим типом
1. Переопределить тип ДеревоЗначений.Колонки["ИмяКолонки"].ТипЗначения = Новый ОписанияТипов(.....)
2. Просто удалите колонку раз она пуская и новую добавьте с вашим типом
(7) Сделал так:
Получаю ошибку: Поле объекта недоступно для записи (ТипЗначения).
КвалификаторыСтроки = Новый КвалификаторыСтроки(20);
ОписаниеСтроки = Новый ОписаниеТипов("Строка", ,КвалификаторыСтроки);
Данные.Колонки.ПараметрыДанныхРаботникКадровойСлужбы.ТипЗначения = ОписаниеСтроки;
(8) Извиняюсь, я вас не много деинформировал, свойство ТипЗначения у колонки дерева значений только для чтения. То есть вы не можете интерактивно его изменить. Остается только вариант добавить свою новую колонку и назначить ей нужный тип
А первичную колонку перед этим нужно удалить
КвалификаторыСтроки = Новый КвалификаторыСтроки(20);
ОписаниеСтроки = Новый ОписаниеТипов("Строка", ,КвалификаторыСтроки);
Данные.Колонки.Добавить("ПараметрыДанныхРаботникКадровойСлужбы", ОписаниеСтроки)
А первичную колонку перед этим нужно удалить
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот