Имя: Пароль:
1C
 
Как поймать ПослеЗаписи для набора записей регистра сведений?
0 mikecool
 
10.06.08
16:01
Воюю с ручной регистрацией изменений для рбд...
сталкиваюсь с тем, что при записи набора из любой формы в событии ПриЗаписи еще нет отбора по всем измерениям.
Тупо дописывать куски кода с регистрацией во все места, где происходит запись таких наборов - парит...
Каким то образом можно отловить ПослеЗаписи для набора записей РС?
1 ТелепатБот
 
гуру
10.06.08
16:01
2 Asmody
 
модератор
10.06.08
16:04
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
ПриЗаписи (OnWrite)
Синтаксис:
ПриЗаписи(<Отказ>, <Замещение>)
Параметры:
<Отказ>
Тип: Булево. Признак отказа от записи набора в базу данных.
Значение по умолчанию: Ложь
<Замещение>
Тип: Булево. Режим записи набора.
Истина - запись осуществляется с заменой существующих в базе данных записей набора.
Ложь - запись осуществляется с "дописыванием" текущего набора записей.
Описание:
Возникает при записи объекта. Процедура-обработчик вызывается ___после записи объекта в базу данных, но до окончания транзакции записи___.
3 mikecool
 
10.06.08
16:11
(2) если я пишу, к примеру, свойства ном-ры или КИ контрагента(т.е. добавляю их в форме объекта), то в момент ПриЗаписи по какому-то из измерений не установлен еще отбор и регистрация не проходит.
Как затычки в коде, уже после НаборЗаписей.Записать(), перечитываю данные и регистрирую - так проходит...
но таких мест может быть оч много и пока все найду... :(
4 mikecool
 
10.06.08
16:12
"но до окончания транзакции записи" - фиксануть ее в обработке события можно?
5 MSensey
 
10.06.08
16:14
(3) странно, а как типовые работают? Подписку пробовал?
6 MSensey
 
10.06.08
16:18
(0) кстати, а почему при записи отбор должен быть установлен? Я так понял ты про независимый РС?
Можно же записать и без отбора
7 ptiz
 
10.06.08
16:18
(0) Посмотри как в типовых сделано. Регистрации происходит ПередЗаписью() (и не случайно).
8 mikecool
 
10.06.08
16:53
(6) да, про независимый... таки записать можно и без отбора, а вот регистрировать изменения не дает...
9 mikecool
 
10.06.08
16:54
(7) щас посмотрю...
10 MSensey
 
10.06.08
16:56
вот в ЕСИС откапал
Регистрация изменений наборов записей независимых регистров
К таким регистрам относятся регистры сведений со свойством РежимЗаписи, установленным в значение Независимый. Для регистрации изменений наборов записей данного регистра необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные набор записей. Состав элементов отбора, при этом, должен  строго соответствовать основному отбору регистра. Выбирать поля, входящие в основной отбор регистра необходимо в соответствии с логикой работы конфигурации (см. Подготовка конфигурации к работе в распределенной ИБ).

Для регистрации данных регистра сведений, отбираемых по некоторому критерию, необходимо:

выбрать уникальные значения измерений регистра, входящих в основной отбор (если регистр сведений является периодическим и Период включен в основной отбор, то Период также должен участвовать в отборе)
выполнить регистрацию наборов записей с установленными значениями отбора, соответствующими каждой выбранной комбинации значений измерений (входящих в основной отбор).
11 MSensey
 
10.06.08
16:58
(7) скорее всего ты указываешь на ручную регистрацию, а не на принудительную. Т.к. только для принудительной нужен отбор
12 mikecool
 
10.06.08
17:07
(10) вот на сие я и натолкнулся...
мне интересно, как происходит сие действие при автомате, как система это выполняет?
13 MSensey
 
10.06.08
17:36
А ты делаешь принудительную регистрацию, при помощи ЗарегистрироватьИзменения?
Как я понял тебе надо передать набор записей с установленным отбором.
Для этого тебе надо из записываемого набора выбрать различные комбинации измерений для которых установлен "ОСноввной отбор" и передать в ЗарегистрироватьИзменения. Т.е. здесь нужна просто информация об отборе. для регистрации не важно какие записи пишутся, важен отбор, т.к. единицей является комбинация измерений с отбором
14 mikecool
 
10.06.08
17:58
(13) это я понял... просто местов в упп, где пишутся такие наборы - нашел порядка 300, и дабы не париться, я пошел другим путем - оставил авторегистрацию для РС с независимой записью, и вручную регистрирую только те, что подчинены регистратору...
15 ptiz
 
10.06.08
19:24
(14) Посмотри, как в БП 1.6 сделана подписка на событие для регистрации изменений регистров (про УПП не знаю).