![]() |
|
Создание дерева значения у документа с обработки | ☑ | ||
---|---|---|---|---|
0
LivingStar
27.09.19
✎
09:50
|
Есть документ. У него есть табличная часть.
На форме это дерево значений. Отображение дерево. Как мне создать в нем нужную структуру с обработки? НоваяДолжность = ДокНормыВыдачиСИЗ.ЛичныеНормыВыдачи.Строки.Добавить(); Идет ошибка Поле объекта не обнаружено (Строки) |
|||
1
vicof
27.09.19
✎
09:51
|
РеквизитФормыВЗначение
|
|||
2
ale-sarin
27.09.19
✎
10:06
|
Если ЛичныеНормыВыдачи - это табличная часть документа ДокНормыВыдачиСИЗ, то какие нахрен у нее Строки.
НоваяСтрокаТЧ = ДокНормыВыдачиСИЗ.ЛичныеНормыВыдачи.Добавить(); |
|||
3
Веселый собака
27.09.19
✎
10:13
|
(2) ну, дерево можно сохранить в хранилище значения, может неофит не знает.
|
|||
4
ale-sarin
27.09.19
✎
10:24
|
(3) Судя по (0) в документе есть ТЧ. На форме документа она отображается в виде ДереваЗначений. Автору из обработки надо заполнить ТЧ.
Я так понял. |
|||
5
Веселый собака
27.09.19
✎
10:32
|
(4) правильно понял.
Но я видел как и в ТЧ сохраняют дерево- добавляют реквизит уровень в ТЧ и с бубном и танцами строят дерево, а потом обратно в тч с бубном.. |
|||
6
ale-sarin
27.09.19
✎
10:39
|
(5) Да много чего мы в жизни видели.
Но если ЛичныеНормыВыдачи это ТЧ, то у нее нет свойства Строки. О чем и выводится ошибка в (0). И что бы добавить строку в ТЧ надо использовать ЛичныеНормыВыдачи.Добавить(). И неважно, какие у нее реквизиты-колонки.И неважно, собирается ли кто-то из этой ТЧ потом Дерево строить. |
|||
7
LivingStar
27.09.19
✎
11:41
|
Если с загружаемых данных, повторяется значение первой ветки, как это правильно делать?
Я вот создаю первую ветку, Должность. Потом ветку под ней, СредстваИндивидуальнойЗащиты. А как дальше????? Если некоторые элементы, нужно разместить под первой веткой? А далее создавать новую первую. И так же элементы под ней? //СтрТЗ.Должность // 4. НоваяДолжность = ДокНормыВыдачиСИЗ.ЛичныеНормыВыдачи.Добавить(); Если ЗначениеЗаполнено(СтрТЗ.Должность) Тогда НайденнаяДолжность = Справочники.Должности.НайтиПоНаименованию(СокрЛП(СтрТЗ.Должность), 1); Если Не НайденнаяДолжность = Справочники.Должности.ПустаяСсылка() Тогда НоваяДолжность.ДолжностьПрофессия = НайденнаяДолжность; Иначе СозданнаяДолжность = Справочники.Должности.СоздатьЭлемент(); СозданнаяДолжность.Наименование = СокрЛП(СтрТЗ.Должность); СозданнаяДолжность.Записать(); // НоваяДолжность.ДолжностьПрофессия = СозданнаяДолжность.Ссылка; КонецЕсли; КонецЕсли; //СтрТЗ.СредствоЗащиты // 5. НайденноеСредствоЗащиты = Справочники.СредстваИндивидуальнойЗащиты.НайтиПоНаименованию(СокрЛП(СтрТЗ.СредствоЗащиты), 1); Если Не НайденноеСредствоЗащиты = Справочники.СредстваИндивидуальнойЗащиты.ПустаяСсылка() Тогда НоваяДолжность.СредствоЗащиты = НайденноеСредствоЗащиты; Иначе СозданноеСредствоЗащиты = Справочники.СредстваИндивидуальнойЗащиты.СоздатьГруппу(); СозданноеСредствоЗащиты.Наименование = СокрЛП(СтрТЗ.СредствоЗащиты); НайденнаяЕдИзм = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СокрЛП(СтрТЗ.ЕдИзм), 1); Если Не НайденнаяЕдИзм = Справочники.ЕдиницыИзмерения.ПустаяСсылка() Тогда СозданноеСредствоЗащиты.ЕдиницаИзмерения = НайденнаяЕдИзм; Иначе СозданнаяЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); СозданнаяЕдИзм.Наименование = СокрЛП(СтрТЗ.ЕдИзм); СозданнаяЕдИзм.НаименованиеПолное = СокрЛП(СтрТЗ.ЕдИзм); СозданнаяЕдИзм.Записать(); // СозданноеСредствоЗащиты.ЕдиницаИзмерения = СозданнаяЕдИзм.Ссылка; КонецЕсли; СозданноеСредствоЗащиты.Класс = Перечисления.КлассыСИЗ.ОдеждаСпециальнаяЗащитная; СозданноеСредствоЗащиты.Записать(); // НоваяДолжность.СредствоЗащиты = СозданноеСредствоЗащиты.Ссылка; КонецЕсли; |
|||
8
Веселый собака
27.09.19
✎
11:52
|
Убил бы за такое создание новой должности.
Пусть выбирают из штатного, с заполненными окладами, системами оплат и т.п. А тут кадровик безмозглый взял и создал, ага. |
|||
9
LivingStar
27.09.19
✎
12:05
|
Кажется, вот это помогло,
НоваяДолжность = ДокНормыВыдачиСИЗ.ЛичныеНормыВыдачи.Добавить(); Если ЗначениеЗаполнено(СтрТЗ.Должность) Тогда НайденнаяДолжность = Справочники.Должности.НайтиПоНаименованию(СокрЛП(СтрТЗ.Должность), 1); Если Не НайденнаяДолжность = Справочники.Должности.ПустаяСсылка() Тогда НоваяДолжность.ДолжностьПрофессия = НайденнаяДолжность; Иначе СозданнаяДолжность = Справочники.Должности.СоздатьЭлемент(); СозданнаяДолжность.Наименование = СокрЛП(СтрТЗ.Должность); СозданнаяДолжность.Записать(); // НоваяДолжность.ДолжностьПрофессия = СозданнаяДолжность.Ссылка; КонецЕсли; ТекущаяДолжность = НоваяДолжность.ДолжностьПрофессия; Иначе НоваяДолжность.ДолжностьПрофессия = ТекущаяДолжность; КонецЕсли; // |
|||
10
LivingStar
27.09.19
✎
12:05
|
(8) Я не совсем понимаю чем сам занимаюсь.
Опираюсь на собственные мысли только. Не делать не могу. Как то нужно что бы жить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |