Имя: Пароль:
1C
 
КД 2.0 Как изменить регистрацию документа
,
0 Klesk
 
11.07.21
14:36
Документ надо регистрировать не по дате документа который попадает в интервал синхронизации, а по другому реквизиту типа Дата
Т.е. у ПКО дата может не попадать в период синхронизации, а ДатаПробитияЧека если она попадает документ должен быть отмечен к регистрации. А остальным Отказ
Как это сделать, в правилах регистрации  менять, или в плане обмена или где?
1 Aleksey
 
11.07.21
14:39
С каких это пор "Документ регистрируется по дате документа"?
2 mikecool
 
11.07.21
14:41
(1) +1
3 mikecool
 
11.07.21
14:41
зарегистрированные к обмену могут отбираться по периоду, но регистрация всегда - текущей датой
4 Klesk
 
11.07.21
14:48
(3) вот и вопрос где они отбираются?
5 ДенисЧ
 
11.07.21
14:50
(4) Есть такая штука "правила регистрации"....
(3) а что такое "регистрация текущей датой"?
6 Klesk
 
11.07.21
15:03
(5)я  в правилах регистрации в отборах вижу только Дата Больше или равно ДатаНачалаВыгрузкиДокументов
а в обработчике "перед обработкой" - Объект – объект для которого выполняется правило регистрации
т.е. запрос уже выполнен где то
7 ДенисЧ
 
11.07.21
15:10
(6) Есть ещё одна хитрая штука - замер производительности называется...
8 серый КТУЛХУ
 
11.07.21
16:24
Способ#1. в подписке на сохранение объекта - ЕСЛИ регистрация выполняется там и авторегистрация (объекта в составе плана обмена) "запрещена". находим в коде при каких условиях объект регистрируется для обмена - правим как нам надо.

Способ#2. исправить правила регистрации в правилах для синхронизации - ЕСЛИ авторегистрация (объекта в составе плана обмена) не "запрещена". выполняется в кд2 (см.ниже). точнее выгружается - загружается в кд2 - правится в кд2 - выгружается из кд2 - загружается.

Способ#3. исправить правила обмена в правилах для синхронизации. действует тупо всегда и поверх всего. слегка увеличит трафик (выгрузятся со сбросом регистрации все зарегистрированные объекты - загрузятся с учетом кода указанного обработчика выборочно)

Для способов #2 и #3 - алгоритм работы в принципе общий (нюанс в том, что и как изменять в кд2. см.п.3 ниже)
1) в правилах синхронизации (они обычно хранятся в недрах конфигурации, но через бсп как правило реализован механизм их выгрузки-загрузки):
1а) выгружаем конфигурации этой базы и корреспондента соответствующей обработкой MD8xExp.epf из комплекта поставки конфигурации "конвертация данных 2.х" (2.1 из э бэст хотя можно и 2.0 - далее этот продукт будет именован "как обычно" кд2).
1б) выгружаем правила синхронизации - это как правило зип-файл в котором правила регистрации этой базы, правила обмена этой базы и правила обмена базы-корреспондента. распаковываем - получаем эти три файла: RegistrationRules.xml (правила регистрации в этой базе), ExchangeRules.xml (правила обмена этой базы) и CorrespondentExchangeRules.xml (правила обмена базы-корреспондента). кстати если выгружать аналогично в базе-корреспонденте, там те же самые правила обмена но переставленные местами (имеются ввиду имена), оттуда в принципе только правила регистрации базы-корреспондента нужны.
2) запускаем кд2, и в ней усердно делаем следующее
2а) загружаем в нее конфигурации этой базы и корреспондента - из файлов п.1а
2б) загружаем правила регистрации (см.п.1б) из файлов RegistrationRules.xml, полученных при выгрузке из этой базы и из базы-корреспондента.
2в) загружаем правила обмена (см.п.1б) этой базы (из файла RegistrationRules.xml) и базы-корреспондента (из файла CorrespondentExchangeRules.xml) комплекта, выгруженного в п.1б в этой базе
3) правим в кд2 (Для Способа#2 - правим правила регистрации этой базы, для Способа#3 - правим код обработчика "после загрузки" в правиле обмена этой базы для нужного объекта - проверять условия, и если объект грузить в базу-корреспондент не надо - "Отказ = Истина;")
4) выгружаем из кд2 комплекты (в зип-файлы для загрузки правил синхронизации).
Панель: Правила обмена -- Сохранить правила
или на начальном экране ссылка "Сохранить правила обмена данными" - третья (слева) ссылка в предпоследней строке ссылок
а затем (отказавшись от выбора файла если он сразу появится!) в открывшемся диалоге:
4а) создать комплект для этой базы:
Конвертация: выбрать правило обмена этой базы (прим.: откорректированное если это Способа#3)
Выгружать правила корреспондента: ВКЛючить
Конвертация корреспондента: выбрать правило обмена базы-корреспондента
Выгружать правила регистрации: ВКЛючить
Правила регистрации: выбрать правило регистрации этой базы (прим.: откорректированное если это Способа#2)
обратить внимание на то, чтобы "Сжимать файл правил" (вверху под полем файла выгрузки) было ВКЛючено
выбрать (вверху диалога) собственно zip-файл, в который всю эту байду для этой базы выгружать.
[Сохранить] = кнопка по умолчанию. дождаться окончания...
4б) создать комплект для базы-корреспондента:
Конвертация: выбрать правило обмена базы-корреспондента
Выгружать правила корреспондента: ВКЛючить
Конвертация корреспондента: выбрать правило обмена этой базы (прим.: откорректированное если это Способа#3)
Выгружать правила регистрации: ВКЛючить
Правила регистрации: выбрать правило регистрации базы-корреспондента
обратить внимание на то, чтобы "Сжимать файл правил" (вверху под полем файла выгрузки) было ВКЛючено
выбрать (вверху диалога) собственно zip-файл, в который всю эту байду для базы-корреспондента выгружать.
[Сохранить] = кнопка по умолчанию. дождаться окончания...
5) в правилах синхронизации (они обычно хранятся в недрах конфигурации, но через бсп как правило реализован механизм их выгрузки-загрузки) - загружаем правила синхронизации из выгруженных в кд2 zip-файлов (см.п.4) - в этой базе (из файла п.4а) и в базе-корреспонденте (из файла п.4б).

прим.: для тех. кто любит в конфигурациях играться с планами обмена. если в их формах, диалогах синхронизации и настроек пропадают кнопки (и пункты в меню) выгрузки-загрузки-удаления-создания правил и их настроек - обратите внимание на "Тип Параметра команды" - добавьте какие надо планы обмена для Общих Команд: "ЗагрузитьКомплектПравил", "ЗагрузитьПравилаКонвертацииОбъектов", "ЗагрузитьПравилаРегистрацииОбъектов", "НастройкиПодключения", "ПолучитьНастройкиСинхронизацииДляДругойПрограммы", "СоставОтправляемыхДанных" и "УдалитьНастройкуСинхронизации".

как-то так...
9 Klesk
 
11.07.21
17:01
(8) спасибо за ответ, подумаю
только как узнать период выгрузки, находить самый первый и самый последний документ?, я так понял сам запрос на отбор в недрах конфы
10 серый КТУЛХУ
 
11.07.21
17:14
(9): какой нафик, пардон, период?
смотрите в коде, который выполняется по подписке на событие (сохранение объекта). если надо - правьте код, но обычно там период в правилах синхронизации через бсп реализован.
там же, чарез администрирование(настройку) - синхронизацию(настройку синхронизации)- ваш план обмена - можно посмотреть состав последней не подтвержденной приемником выгрузки и того, что будет выгружено в следующей выгрузке.
там же - по смыслу содержания диалогов - можно добраться до самой начальной даты, начиная с которой выгружаются данные. это самая древняя дата.
2 + 2 = 3.9999999999999999999999999999999...