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