Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 12:25

Заполнение справочника

Автор Кот_Леопольд, 06 фев 2019, 10:29

0 Пользователей и 1 гость просматривают эту тему.

Кот_Леопольд

Добрый день. УФ 8.3 Иерархический справочник ОпределяемыеЭлементы в нем есть реквизит НаименованиеОбъекта Тип:СправочникСсылка.ОбъектыИсследований, мне нужно что бы этот реквизит при создании нового элемента справочника заполнялся из объекта Родитель. В 8.2 это было так

Процедура ПриОткрытии()
      ЗаполнитьОбъектКонтроляПоРодителю (Родитель);
КонецПроцедуры

Процедура ЗаполнитьОбъектКонтроляПоРодителю (Родитель)
Если не ЗначениеЗаполнено(НаименованиеОбъекта) тогда
Если ЗначениеЗаполнено(Родитель.НаименованиеОбъекта) тогда
НаименованиеОбъекта = Родитель.НаименованиеОбъекта;
ЭтотОбъект.Записать();
иначе
Сообщить ("Заполните в карточке группы-родителя поле 'Наименование объекта'");
конецесли;
конецесли;
КонецПроцедуры


у себя делаю так
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Объект.Ссылка.Пустая() Тогда
Если не ЗначениеЗаполнено(Объект.НаименованиеОбъекта) тогда
Если ЗначениеЗаполнено(Объект.Родитель) тогда
Объект.НаименованиеОбъекта = Объект.Родитель;
//ЭтотОбъект.Записать();
иначе
Сообщить ("Заполните в карточке группы-родителя поле 'Объект контроля'");
конецесли;
конецесли;

КонецЕсли;
КонецПроцедуры

но что то не заполняется

Vit1501

В вашем примере вы присваиваете НаименованиеОбъекта ссылку на родителя, а вам, насколько я понимаю нужно присваивать ссылку на элемент, хранящийся в Родитель.НаименованиеОбъекта

Кот_Леопольд

Цитата: Vit1501 от 06 фев 2019, 10:44
В вашем примере вы присваиваете НаименованиеОбъекта ссылку на родителя, а вам, насколько я понимаю нужно присваивать ссылку на элемент, хранящийся в Родитель.НаименованиеОбъекта
Так пробую, тоже не выходит
Если Объект.Ссылка.Пустая() Тогда
Если не ЗначениеЗаполнено(Объект.НаименованиеОбъекта) тогда
Если  ЗначениеЗаполнено(Объект.Родитель.Ссылка.НаименованиеОбъекта) тогда
Объект.НаименованиеОбъекта = Объект.Родитель.Ссылка.НаименованиеОбъекта;

Vit1501

У вас алгоритм вызывается только при создании формы на сервере, причем вы проверяете чтобы ссылки на этот объект еще нен было (т.е. это новый объект). сдается мне в данном случае у вас Родитель еще пустой. Попробуйте перенести алгоритм например в обработчик ПередЗаписью

Кот_Леопольд

Цитата: Vit1501 от 06 фев 2019, 13:42
У вас алгоритм вызывается только при создании формы на сервере, причем вы проверяете чтобы ссылки на этот объект еще нен было (т.е. это новый объект). сдается мне в данном случае у вас Родитель еще пустой. Попробуйте перенести алгоритм например в обработчик ПередЗаписью
Мне нужно при создании или при открытии, чтобы реквизит НаименованиеОбъекта заполнялось значением Родителя, т.е. если я нахожусь в группе Вода (родитель) и создаю новый элемент, в поле НаименованиеОбъекта подставлялось значение Вода.

Vit1501

А если пользователь спустя какое то время поменяет родителя?

Кот_Леопольд

Цитата: Vit1501 от 06 фев 2019, 18:00
А если пользователь спустя какое то время поменяет родителя?
Да немного не правильно описал задачу. Если родитель меняется ОбъектИсследования остается, но пользователь при желании его может изменить.
Суть в чем, при создании нового родителя (для пользователя эта проста папка) пользователь обязательно должен указать к какому ОбъектуИсследования  она относиться например "ВОДА", затем когда к этому родителю (папке) создается новый элемент или родитель  ОбъектИсследования должен заполняться автоматически "ВОДА"

Vit1501

Попробуйте проверить отладчиком в каком месте у вас возникает ошибка.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск