Здравствуйте! Спасибо за вашу работу.
Обратите внимание:
Процедура РегистрацияИзменений(Объект, Автор, РежимЗаписи = Неопределено) Экспорт
МетаданныеОбъекта = Объект.Метаданные();
Если МетаданныеОбъекта.Имя = "ИмяОтключаемогоОбъекта" Тогда
Возврат;
КонецЕсли;
МетаданныеОбъектаПолноеИмя = МетаданныеОбъекта.ПолноеИмя();
ТекТип = ОпределитьТипОбъекта(МетаданныеОбъектаПолноеИмя);
СтруктураЗаписи = Новый Структура;
Если Объект.ЭтоНовый() Тогда
Объект_Ссылка = Объект.ПолучитьСсылкуНового();
Если Объект_Ссылка.Пустая() Тогда
Если ТекТип = "Документ" Тогда
Объект_Ссылка = Документы[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "Справочник" Тогда
Объект_Ссылка = Справочники[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "БизнесПроцесс" Тогда
Объект_Ссылка = БизнесПроцессы[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "Задача" Тогда
Объект_Ссылка = Задачи[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
КонецЕсли;
Объект.УстановитьСсылкуНового(Объект_Ссылка);
КонецЕсли;
Показать
Если регистрация изменений происходит в транзакции(например при проведении документа) и из-за ошибки проведения транзакция отменяется, при повторном проведении ещё не записанного документа версия не регистируется т.к.
Если Объект.ЭтоНовый() Тогда
ЭтоНовый() = Истина
а
Объект_Ссылка = Объект.ПолучитьСсылкуНового();
Если Объект_Ссылка.Пустая() Тогда
Объект_Ссылка.Пустая() = Ложь
в Объект_Ссылка сидит ранее присвоенная "<Объект не найден> (117:b43e0fea937b0c814fe5218ca5e99d5a)"
которая была присвоена при первом проведении документа Объект.УстановитьСсылкуНового(НоваяСсылка);
но т.к. ссылка не пустая повторное выполнение кода не идёт
Объект.УстановитьСсылкуНового(Объект_Ссылка);
и первая запись отсутствует
решение: делал на версии на обычных формах, думаю для управляемых тоже должна работать...
Процедура РегистрацияИзменений(Объект, Автор, РежимЗаписи = Неопределено) Экспорт
МетаданныеОбъекта = Объект.Метаданные();
Если МетаданныеОбъекта.Имя = "ИмяОтключаемогоОбъекта" Тогда
Возврат;
КонецЕсли;
МетаданныеОбъектаПолноеИмя = МетаданныеОбъекта.ПолноеИмя();
ТекТип = ОпределитьТипОбъекта(МетаданныеОбъектаПолноеИмя);
СтруктураЗаписи = Новый Структура;
Если Объект.ЭтоНовый() Тогда
Объект_Ссылка = Объект.ПолучитьСсылкуНового();
Если Объект_Ссылка.Пустая() Тогда
Если ТекТип = "Документ" Тогда
Объект_Ссылка = Документы[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "Справочник" Тогда
Объект_Ссылка = Справочники[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "БизнесПроцесс" Тогда
Объект_Ссылка = БизнесПроцессы[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
ИначеЕсли ТекТип = "Задача" Тогда
Объект_Ссылка = Задачи[МетаданныеОбъекта.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор());
КонецЕсли;
Объект.УстановитьСсылкуНового(Объект_Ссылка);
//88( Администратор 2026.07.03
Иначе
Если СтрНайти(Строка(Объект_Ссылка), "<Объект не найден>") = 1 Тогда
Объект.УстановитьСсылкуНового(Объект_Ссылка);
КонецЕсли;
//)88 Администратор 2026.07.03
КонецЕсли;
Показать