модуль регистра сведений, в нем "ПередЗаписью" возникает несколько раз, в том числе при записи документа сначала программно удаляются записи, потом заного пишутся, наборы - разные, через ДополнительныеСвойства набора не передаются!!!
СтарыйНаборСтатусов = Неопределено;
Если ЭтотОбъект.ДополнительныеСвойства.Свойство("СтарыйНаборСтатусов", СтарыйНаборСтатусов) = Ложь Тогда
// это первая запись
мТЗ = ЭтотОбъект.Выгрузить();
ЭтотОбъект.Прочитать();
СтарыйНаборСтатусов = ЭтотОбъект.Выгрузить();
ЭтотОбъект.ДополнительныеСвойства.Вставить("СтарыйНаборСтатусов", СтарыйНаборСтатусов);
ЭтотОбъект.Загрузить(мТЗ);
Иначе
// это вторая запись
Для Каждого эл из ЭтотОбъект Цикл
Отбор = Новый Структура();
Отбор.Вставить("Регистратор", эл.Регистратор);
Строки = СтарыйНаборСтатусов.НайтиСтроки(Отбор);
Если Строки.Количество() = 0 Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
ИначеЕсли эл.Статус <> Строки[0] Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
КонецЕсли;
КонецЦикла;
Для Каждого эл из СтарыйНаборСтатусов Цикл
Отбор = Новый Структура();
Отбор.Вставить("Регистратор", эл.Регистратор);
Строки = ЭтотОбъект.НайтиСтроки(Отбор);
Если Строки.Количество() = 0 Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
КонецЕсли;
КонецЦикла;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший