Имя: Пароль:
1C
 
Как привязать правила регистрации к плану обмена в случае нетиповой конфы?
0 Сияющий Асинхраль
 
29.10.20
22:12
С типовыми 1С все понятно. Но конфа нетиповая, там нет ни БСП ни кусков типового кода, причем и нежелательно туда его пихать, но в нете упорно не могу найти как заставить план обмена работать с нужными правилами регистрации. Буду признателен за совет...
1 Фрэнки
 
29.10.20
22:26
(0) Если конфа нетиповая, то все процедуры, накрученные вокруг Планов обмена в БСП просто не существуют. Т.е. программного интерфейса для разработчика как бы и нет.

Но на самом деле он (API - application program interface) есть ровно в том базовом объеме, в котором он описан синтакс-помошнике и реализован средствами платформы.

Принципиальное отличие у планов обмена всего одно : или это план с использованием РИБ или это свойство плана отключено. В зависимости от этого свойства работают пары предопределенных обработчиков событий в модуле объекта "узел плана обмена" или в менеджере объекта "узел плана обмена".

Запуск этих обработчиков по умолчанию прицеплен в дефолтных панелях на формах узла и списков узлов планов обмена.

Можно немного поэкспериментировать и наваять что-то свое, вплоть до запуска регламентного задания, выполняющего обмен.

Ну а советовать механизмы регистрации объектов в обмен - это еще одна большая тема :-)
2 Сияющий Асинхраль
 
29.10.20
22:34
Регламентное задание уже наваял, даже проверил - работает. В принципе, подписка на событие при проведении или при записи и регистрация идет без проблем. Этот вариант умею и знаю. Хотелось как-то использовать возможности платформы не накручивая горы кода, но как-то совсем уж нет никаких данных в нете по этому поводу. Похоже буде делать как умею...
3 Фрэнки
 
29.10.20
22:39
Ах... В топике именно по правилам регистрации... Момент, сейчас напишу :-)

Самый примитивный ход - поставить "авторегистрацию" на всем составе объектов внутри плана обмена.
Тогда регистрируется все автоматом по изменениям и если обмен примитивный, то этого хватает с головой.

Но правила там тоже есть. Нечто вроде правил обмена прописывают прямо в теле обработчика, в котором формируется выгружаемый пакет. Т.е. из всей кучи по некоторым признаком выполняется отказ от включения в пакет обрабатываемого объекта. Это достаточно долго.

Более эффектный вариант:
- в авторегистрации по всем или почти по всем объектам поставить "Запретить"
- создать подписки по событиям. А уже в этих подписках можно откуда-то дергать так сказать Правила. Чаще всего эти Правила запихивают в Макеты, а уже в макеты можно разные настройки перключать, чтоб там, в том числе, мог быть исполняемый код. Если исполняемый код, хранимый в макете будет работать быстро-быстро, то этой будет не просто обработка подписки При записи какого-то объекта, а чрезвычайно быстро работающий код подписки, хотя правила внутри этого кода могут оказаться очень и очень внушительные.
4 Сияющий Асинхраль
 
29.10.20
22:45
(3) Да, сейчас и правда решил сделать с подписками. Наверное самый быстрый вариант. Хотя авторегистрация, пожалуй, у меня не прокатит, база старая, большая регистрировать кучу старых документов смысла не имеет. Да и наложить условия непосредственно в подписках, работать по идее должно быстрее для большой базы, чем дергать макет...
5 Фрэнки
 
30.10.20
00:02
(4) ну не обязательно быстрей код будет в модуле подписки или в другом месте...
Может быть на практике более удобно, что есть методы записи в макет нового содержимого в пользовательском режиме.
6 hhhh
 
30.10.20
02:23
(4) можешь взять обмен БП2.0 РИБ, по организациям, там эта фигня реализована.