Была задача:
Настроить обмен из двух баз Бухгалтерии, где уже ведется обмен, в одну базу УТ.
Проблема:
В базах префикс не стоят, соответственно возникает вероятность того, что объекты из двух баз будут затирать друг друга.
Решение:
Проставить у существующих объектов префикс базы.
Для этого была разработана обработка, которая работает по следующему принципу:
- Проходится по подпискам, которые отлавливают события При установке нового кода или номера
- Из этих подписок извлекается обработчик этих событий
- Выбираются источники подписок (т.е. объекты, у которых отлавливается событие)
В обработке выводится список объектов, у которых выполняется отлов установки номера.
Галочками проставляем объекты, которые хотим обработать.
По нажатию кнопки "Изменить префиксы" отбираются все объекты у выбранных типов, выполняются обработчики, которые обрабатывают данный тип источника, события установки нового кода.
Если у объекта уже установлен данный префикс, то он пропускается.
После обработки у объектов будет стоять префикс, который запланирован был. При этом порядковый номер сохраняется.
Пример:
В конфигурации Бухгалтерии создана подписка "УстановитьПрефиксИнформационнойБазыОрганизацииПодразделенияНомеруДокумента" на событие при установке нового номера для документа "Реализация товаров и услуг"
В документе указан организация "Рога и копыта" (префикс = РР)
Документ имеет номер РР00-000006
В базе не было установлено синхронизации данных, поэтому префикс базы пустой, т.е. 00
Нам нужно сделать синхронизацию и устанавливаем префикс базы "ШШ"
А что делать со старыми доками? Они же сами не переформируются
Обработка пройдется по каждой реализации и выполнит процедуру, которая обрабатывает подписку "УстановитьПрефиксИнформационнойБазыОрганизацииПодразделенияНомеруДокумента"
Процедура "ПрефиксацияОбъектовБПСобытия.УстановитьПрефиксИнформационнойБазыОрганизацииПодразделения"
В результате выполнения процедуры получит префикс, который должен был получиться для этого документа
В нашем случаи был изменен префикс базы, и префикс документа теперь должен быть "РРШШ"
Так как префикс документа и нового не совпадают, то обработка изменит его на РРШШ и перезапишет документ.
В результате обработки документ будет иметь номер "РРШШ-000006"
Обработка обкатывалась на конфигурации: Бухгалтерия 3.0 релиз 3.0.34.18
Обрабатывает типы Справочник, Документ