Имя: Пароль:
1C
1С v8
(ЗУП) Событие при записи в рег.сведений - как отловить записываемые значения?
0 vechiy
 
18.01.13
17:09
Пытаюсь отловить значения, которые пишутся в рег.сведений.
К примеру, в паспортныеДанныеФизЛиц
Подскажите, как это сделать?
В событиях ПриЗаписи и ПередЗаписью в источник.отбор есть только значения реквизитов объекта, вызвавшего события (физЛицо).
При создании события ОбработкаЗаполнения - ругается

Собственно, как получить то, что сейчас пишется в регистр?
1 1C-band
 
18.01.13
17:09
(0) Модуль набора записей?
2 Reset
 
18.01.13
17:10
В событиях ПриЗаписи и ПередЗаписью в (1)
3 Axel2009
 
18.01.13
17:10
для каждого строка из источник цикл
конеццикла;
4 Reset
 
18.01.13
17:12
Рискуя быть повторно обвиненным в завышенном ЧСВ, отвечу на следующий вопрос - набор строк может быть пустым при "перезаписи" набора. Т.е сначала идет удаление (запись пустого), потому уже новые данные.
5 vechiy
 
18.01.13
17:31
как в ПРиЗаписи и ПередЗАписью обратиться к паспортным данным, сохраняемым из формы физ.лица?
источник.отбор - тут реквизиты только физ.лица, типа датыРождения
6 alextom81
 
18.01.13
18:16
МенеджерНабора записей пишет данные в другой регистр, соответственно, сохраняется история
7 alextom81
 
18.01.13
18:17
5 строчек и один РС - всё работает как часы. Смотрим, кто,как и когда менял настройки пользователей
8 vechiy
 
20.01.13
17:39
(6) т.е.?
цель - получить значения, которые пишутся в регистр, собственно во время записи
9 vechiy
 
20.01.13
18:15
ап
10 alextom81
 
21.01.13
10:22
Процедура ПередЗаписью (Отказ)
   
   
   #Если Клиент Тогда

   СтрТаб = ЭтотОбъект.Выгрузить();
   ПользовательКонтроля = ЭтотОбъект.Отбор.Пользователь.Значение;
   СтарыеНастройки = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();
   СтарыеНастройки.Отбор.Пользователь.Установить(ПользовательКонтроля);
   СтарыеНастройки.Прочитать();
   ТаблицаСтарыхЗаписей = СтарыеНастройки.Выгрузить();
   НаборКонтроля = РегистрыСведений.ГНС_КонтрольПользователей.СоздатьНаборЗаписей();
   НаборКонтроля.Отбор.Пользователь.Установить(ПользовательКонтроля);
       
   Для Каждого Строка из СтрТаб Цикл
       Значение = ТаблицаСтарыхЗаписей.Найти(Строка.Настройка);
       Если  Значение <> Неопределено Тогда
           Если Строка.Значение <> Значение.Значение Тогда
                   НоваяЗапись = НаборКонтроля.Добавить();
                   НоваяЗапись.Изменил = ПараметрыСеанса.ТекущийПользователь;
                   НоваяЗапись.Дата = ТекущаяДата();
                   НоваяЗапись.Пользователь = Значение.Пользователь;
                   НоваяЗапись.Настройка = Значение.Настройка;
                   НоваяЗапись.СтараяНастройка = Значение.Значение;
                   НоваяЗапись.НоваяНастройка  = Строка.Значение;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
       
   НаборКонтроля.Записать(Ложь);

   #КонецЕсли
   
КонецПроцедуры
11 alextom81
 
21.01.13
10:23
Помещено в модуль набора записей РС "НастройкиПользователей"
12 Defender aka LINN
 
21.01.13
10:24
(10) А почему только на клиенте?
13 alextom81
 
21.01.13
10:42
Потому что нас не интересует то, что выполняется на сервере. Только "пакости" проверяем (которые могут делать только другие пользователи в режиме "предприятия").