Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УТ 10.3 обмен РИБ с ограничением выгрузки по складу

УТ 10.3 обмен РИБ с ограничением выгрузки по складу
Я
   Soul771
 
01.06.21 - 17:00
Здравствуйте!
Есть база УТ 10.3 с настроенным РИБом по двум узлам,полный двусторонний обмен,в каждом узле есть все документы, что и в центральном узле. Открыли новый филиал, в котором не должны быть доступны документы, не относящиеся к нему. Подскажите, пожалуйста, как лучше реализовать?
Допиливать РИБ, использовать универсальный обмен, написать разграничение по правам?
С РИБом что-то туплю.. Если правильно понимаю, нужно отключить авторегистрацию для документов, после чего где-то в модуле каждого документа прописывать, что при таком-то складе для такого-то узла регистрация, для другого - нет регистрации?..Не делала подобного( Подозреваю, что права нужно будет ограничивать в любом случае, чтобы не было доступа к отчетам по чужим складам..
Написать правила через конвертацию представляю как, использовать ПКО ПередВыгрузкой. Но, возможно, этот велосипед здесь лишний, есть ли более подходящий способ для решения этой задачи?
Третий вариант, где выгружать все, но прописать для пользователя отбор при открытии журналов документов мне кажется технически неграмотным, небезопасным.
 
 Партнерская программа EFSOL Oblako
   Фрэнки
 
1 - 01.06.21 - 17:35
На уровне идеи - там нет особых сложностей. Смотришь в свой РИБ и для тех объектом метаданных, которые будут ограничиваться от передачи в Филиал, нужно оставляя их в составе РИБ, убирать авторегистрацию.
Авторегистрация создается подпиской на ПриЗаписи таких объектов. В подписке проверяется условие на наличие в объектах нужного реквизита с нужным значением.
Чтоб гарантия непопадания в выгрузку запрещенных объектов была выше - прописываешь правила проверки такие же примерно, как в подписке, но внутри процедуры-обработчика выгрузки.

Роли, права, РЛС - зачем? В базе филиала лишней инфы не будет.

Другое дело, если Пользователи из Филиала будут шариться в базе Центра, ну тогда надо думать, как это все поделить в Центре.
Только для надежности, можно иметь базу для Филиала в Центре. А в сам филиал отправлять из отпочкованной базы Центра. Таким способом в Центре будет бакап филиала.

Любой вариант "выгружать все в Филиал" не просто небезопасный, но и будет создавать избыточные объемы передачи данных и при большом движении документов или номенклатуры просто будет тормозить обмен.
   Soul771
 
2 - 01.06.21 - 18:08
(1)- Благодарю!
Если правильно поняла,можно использовать подписку на событие ПриОтправкеДанныхПодчиненному? Или же нужно создать новую подписку? И указать,что при выполнении условия для такого-то узла регистрировать объект на обмен, для другого - не регистрировать.
Про процедуру обработчика выгрузки не поняла, где искать ее(( Вижу есть обработка ОбработчикиВыгрузкиВРозница,ОбменДаннымиXML (но это уже явно не то..), где обрабатывается обмен через РИБ туплю..
В данном случае доступа из филиала не планируют, но мысли про отпочкованную базу центра очень интересные, благодарю!
   Фрэнки
 
3 - 01.06.21 - 18:36
Это речь о предопределенном обработчике в Обмене РИБ. Процедура. На нее не надо подписываться, а в ней надо дописывать действия для обработки элементов.

ПриОтправкеДанныхПодчиненному(<ЭлементДанных>, <ОтправкаЭлемента>, <СозданиеНачальногоОбраза>)

Лучше готовый код поискать, конечно, чтоб увидеть как там удобней расписать проверки для ЭлементДанных - прямо сейчас у меня просто под руками нет чего скопировать.

Подписка на ПриЗаписи - это простая подписка на событие, что Документ будет оперативно или еще как-то записан в базе Центра. Не обмен. Простая подписка.
Но если в этой подписке выполнишь регистрацию объекта в нужный Узел, то вот и будет он при попадании в обмене. Пропустишь Документ и в обработке обмена будет пропущен.

Вспомни просто, что в базе при написании запроса конструктор тебе всегда светит кнопочку Отображать таблицы изменений. Вот это те самые таблицы и есть, что в Обмене затем используются.
Когда нет Авторегристрации в Составе объектов, то нет и записей в таблицах изменений. Их добавляют туда методом ЗарегистрироватьИзменения(<Узлы>, <Данные>)
Найди его в синтакс-помошнике, там и примеры для него есть.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.