Вход | Регистрация
 

Работа с реквизитом типа Уникальный идентификатор - баг или фича?

Работа с реквизитом типа Уникальный идентификатор - баг или фича?
Я
   DrLekter
 
30.01.20 - 23:22
Сегодня наткнулся:
Есть в УНФ справочник с реквизитом ИдентификаторПоставляемыхДанных типа Уникальный идентификатор. Мне понадобилось присвоить некий УИД вновь созданному элементу этого справочника. Зачем - это отдельная история. На форме реквизита, разумеется, нет (а как его вывести?). Написал примитивную обработку, код на дюжину строк:

&НаСервереБезКонтекста
Процедура СохранитьУИДНаСервере(Профиль, УИД)
    ПрофильОбъект = Профиль.ПолучитьОбъект();
    ПрофильОбъект.ИдентификаторПоставляемыхДанных = Новый УникальныйИдентификатор(УИД);
    ПрофильОбъект.Записать();
КонецПроцедуры

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

Выполняется, но реквизит не меняется. Отладкой смотрю в конец процедуры записи - нет, и в объекте как был так и остаётся!
Решил проверить, как вообще реквизиты меняются. Добавляю в код строку:

&НаСервереБезКонтекста
Процедура СохранитьУИДНаСервере(Профиль, УИД)
    ПрофильОбъект = Профиль.ПолучитьОбъект();
    ПрофильОбъект.ИдентификаторПоставляемыхДанных = Новый УникальныйИдентификатор(УИД);
    ПрофильОбъект.Наименование = "Рабочее место кассира отредактированное";
    ПрофильОбъект.Записать();
КонецПроцедуры

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

И вуаля - ИдентификаторПоставляемыхДанных становится вновь полученным и успешно сохраняется!

И вот что это было?
 
 
   vicof
 
1 - 31.01.20 - 05:20
Нужно было нажать сохранить в обработке
   DrLekter
 
2 - 31.01.20 - 17:47
Да одинаково все делал. Но в первом случае не работает, а во втором - работает. Читал когда-то сто лет назад про баг, что если хотя бы пустую строку где-то там после чего-то не добавишь, то не работает. Но не думал, что до сих пор такое случается.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.