|
Отследить удаление записи регистра сведений. Как? | ☑ | ||
---|---|---|---|---|
0
imtade2
18.09.11
✎
20:23
|
Нужно проконтролировать изменения адресной информации по контрагенту.
Изменение контролируется достаточно просто, перед записью в модуле набора записей считываем предыдущее значение и сравниваем. Как отследить удаление если записывается пустой набор записей? |
|||
1
imtade2
18.09.11
✎
20:24
|
Процедура ПередЗаписью(Отказ, Замещение)
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для каждого Запись Из ЭтотОбъект Цикл Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнен объект."; Продолжить; КонецЕсли; Если Запись.Объект.ЭтоГруппа Тогда Отказ = Истина; СтрокаОтказа = "Нельзя использовать в качестве объекта контактной информации - группу."; Прервать; КонецЕсли; //imt+ Если ТипЗнч(Запись.Объект) = Тип("СправочникСсылка.Контрагенты") Тогда //проверим модифицированность МЗ1 = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); МЗ1.Объект = Запись.Объект; МЗ1.Тип = Запись.Тип; МЗ1.Вид = Запись.Вид; МЗ1.Прочитать(); Если МЗ1.Представление <> Запись.Представление Тогда МЗ = РегистрыСведений._РегистрацияИзменений.СоздатьМенеджерЗаписи(); МЗ.Объект = Запись.Объект; МЗ.Период = ТекущаяДата(); МЗ.Активность = Истина; МЗ.Реквизит = Запись.Вид.Наименование; МЗ.Значение = Запись.Представление; МЗ.Записать(); КонецЕсли; КонецЕсли; //imt- КонецЦикла; Если Отказ Тогда Сообщить(СтрокаОтказа); КонецЕсли; КонецПроцедуры |
|||
2
imtade2
18.09.11
✎
20:48
|
ап
|
|||
3
GROOVY
18.09.11
✎
20:51
|
ПЕредЗаписью()
Если ЭтотОбъект.Количество() = 0 Тогда |
|||
4
imtade2
18.09.11
✎
20:52
|
(3)
проблема в том, что у объекта есть только отбор по реквизиту объект. не понятно какой вид контактной информации был удален. |
|||
5
GROOVY
18.09.11
✎
20:54
|
Думаю как то через доп.информацию можно извернуться, готовый сценарий не предложу.
|
|||
6
imtade2
18.09.11
✎
20:58
|
(5) спасибо
еще вопрос: как грамотно проверить табличную часть на модифицированность? |
|||
7
imtade2
18.09.11
✎
20:58
|
модифицированность реквизитов проверял так:
Для Каждого Реквизит Из Источник.метаданные().Реквизиты Цикл Если Источник[Реквизит.Имя] <> Источник.Ссылка[Реквизит.Имя] Тогда МЗ = РегистрыСведений._РегистрацияИзменений.СоздатьМенеджерЗаписи(); МЗ.Объект = Источник.Ссылка; МЗ.Период = ТекущаяДата(); МЗ.Активность = Истина; МЗ.Реквизит = Реквизит.Имя; МЗ.Значение = Источник[Реквизит.Имя]; МЗ.Записать(); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |