0
vde69
20.11.14
✎
16:50
|
модуль регистра сведений, в нем "ПередЗаписью" возникает несколько раз, в том числе при записи документа сначала программно удаляются записи, потом заного пишутся, наборы - разные, через ДополнительныеСвойства набора не передаются!!!
|
|
2
vde69
20.11.14
✎
16:53
|
Перем НовыеСтатусы;
Процедура ПередЗаписью(Отказ, Замещение)
НовыеСтатусы.Очистить();
СтарыйНаборСтатусов = Неопределено;
Если ЭтотОбъект.ДополнительныеСвойства.Свойство("СтарыйНаборСтатусов", СтарыйНаборСтатусов) = Ложь Тогда
// это первая запись
мТЗ = ЭтотОбъект.Выгрузить();
ЭтотОбъект.Прочитать();
СтарыйНаборСтатусов = ЭтотОбъект.Выгрузить();
ЭтотОбъект.ДополнительныеСвойства.Вставить("СтарыйНаборСтатусов", СтарыйНаборСтатусов);
ЭтотОбъект.Загрузить(мТЗ);
Иначе
// это вторая запись
Для Каждого эл из ЭтотОбъект Цикл
Отбор = Новый Структура();
Отбор.Вставить("Регистратор", эл.Регистратор);
Строки = СтарыйНаборСтатусов.НайтиСтроки(Отбор);
Если Строки.Количество() = 0 Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
ИначеЕсли эл.Статус <> Строки[0] Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
КонецЕсли;
КонецЦикла;
Для Каждого эл из СтарыйНаборСтатусов Цикл
Отбор = Новый Структура();
Отбор.Вставить("Регистратор", эл.Регистратор);
Строки = ЭтотОбъект.НайтиСтроки(Отбор);
Если Строки.Количество() = 0 Тогда
НоваяСтрока = НовыеСтатусы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, эл);
КонецЕсли;
КонецЦикла;
ЭтотОбъект.ДополнительныеСвойства.Удалить("СтарыйНаборСтатусов");
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ, Замещение)
Для Каждого эл из НовыеСтатусы Цикл
а = 1;
КонецЦикла;
КонецПроцедуры
НовыеСтатусы = ЭтотОбъект.ВыгрузитьКолонки();
|
|