0
DrLekter
30.01.20
✎
23:22
|
Сегодня наткнулся:
Есть в УНФ справочник с реквизитом ИдентификаторПоставляемыхДанных типа Уникальный идентификатор. Мне понадобилось присвоить некий УИД вновь созданному элементу этого справочника. Зачем - это отдельная история. На форме реквизита, разумеется, нет (а как его вывести?). Написал примитивную обработку, код на дюжину строк:
&НаСервереБезКонтекста
Процедура СохранитьУИДНаСервере(Профиль, УИД)
ПрофильОбъект = Профиль.ПолучитьОбъект();
ПрофильОбъект.ИдентификаторПоставляемыхДанных = Новый УникальныйИдентификатор(УИД);
ПрофильОбъект.Записать();
КонецПроцедуры
&НаКлиенте
Процедура СохранитьУИД(Команда)
СохранитьУИДНаСервере(Профиль, УИД);
КонецПроцедуры
Выполняется, но реквизит не меняется. Отладкой смотрю в конец процедуры записи - нет, и в объекте как был так и остаётся!
Решил проверить, как вообще реквизиты меняются. Добавляю в код строку:
&НаСервереБезКонтекста
Процедура СохранитьУИДНаСервере(Профиль, УИД)
ПрофильОбъект = Профиль.ПолучитьОбъект();
ПрофильОбъект.ИдентификаторПоставляемыхДанных = Новый УникальныйИдентификатор(УИД);
ПрофильОбъект.Наименование = "Рабочее место кассира отредактированное";
ПрофильОбъект.Записать();
КонецПроцедуры
&НаКлиенте
Процедура СохранитьУИД(Команда)
СохранитьУИДНаСервере(Профиль, УИД);
КонецПроцедуры
И вуаля - ИдентификаторПоставляемыхДанных становится вновь полученным и успешно сохраняется!
И вот что это было?
|
|
2
DrLekter
31.01.20
✎
17:47
|
Да одинаково все делал. Но в первом случае не работает, а во втором - работает. Читал когда-то сто лет назад про баг, что если хотя бы пустую строку где-то там после чего-то не добавишь, то не работает. Но не думал, что до сих пор такое случается.
|
|