При внедрении связки программных продуктов 1С:Управление нашей фирмой (УНФ) и 1С:Бухгалтерия предприятия (БП) 3.0 специалисты часто сталкиваются с неожиданной проблемой. В версии ПРОФ синхронизация настраивается интуитивно понятно, так как в списке доступных конфигураций присутствует прямой пункт "1С:Управление нашей фирмой". Однако, открыв версию КОРП, мы обнаруживаем, что этого пункта в перечне просто нет. Рассмотрим подробнее, почему так происходит, проанализируем программный код и разберем алгоритм настройки обмена в таких условиях.
Проанализируем ситуацию с точки зрения архитектуры решений 1С. Версия КОРП предназначена для крупных организаций с разветвленной структурой и обособленными подразделениями. В то же время УНФ позиционируется как решение для малого и среднего бизнеса. Разработчики системы применили искусственное ограничение в интерфейсе помощника настройки синхронизации, считая, что связка "Малый бизнес — КОРП" является нетипичной — для таких случаев есть выгрузка из УНФ в Бухгалтерию.
Если мы заглянем "под капот" конфигурации, то увидим конкретный участок кода, который отвечает за формирование списка доступных обменов. Обратим внимание на то, как система проверяет имя метаданных конфигурации. В типовом механизме формирования списка обмена используется проверка, которая буквально отсекает план обмена с УНФ для версии КОРП:
Если Метаданные.ПланыОбмена.Найти("ОбменУправлениеНебольшойФирмойБухгалтерия30") <> Неопределено Тогда
// В версии КОРП это условие может дополняться проверкой имени конфигурации
Если Метаданные.Имя <> "БухгалтерияПредприятияКОРП" Тогда
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена["ОбменУправлениеНебольшойФирмойБухгалтерия30"]);
КонецЕсли;
КонецЕсли;
Как мы видим, план обмена ОбменУправлениеНебольшойФирмойБухгалтерия30 физически может присутствовать в дереве метаданных, но он исключается из пользовательского интерфейса помощника настройки. Это сделано для того, чтобы не смущать пользователей крупных корпораций "непрофильными" интеграциями. Тем не менее, механизмы обмена универсальны, и мы можем их использовать.
Самый надежный способ настроить синхронизацию, когда одна из программ "скрывает" нужный пункт — это инициировать процесс со стороны второй программы. В нашем случае мы рекомендуем всегда начинать настройку в 1С:УНФ. Рассмотрим по шагам этот процесс:
SyncSetup.xml) в доступное место.Теперь перейдем в 1С:Бухгалтерию КОРП — альтернативный обмен обеспечит обмен УНФ и БП через COM/OLE. Вместо того чтобы искать пункт "УНФ", мы воспользуемся механизмом загрузки готовых настроек. В мастере создания новой синхронизации выберем пункт "Загрузить параметры из файла". Выбрав файл, созданный в УНФ, мы автоматически создадим узел обмена с нужными кодами и правилами, минуя интерфейсные ограничения версии КОРП.
Важно понимать, что современный обмен между УНФ 3.0 и БП 3.0 базируется на технологии EnterpriseData — её использует синхронизация УНФ и БП через EnterpriseData. Это универсальный формат обмена данными, основанный на XML. Рассмотрим, что это означает для технического специалиста.
Пункт меню "1С:Управление нашей фирмой" в версии ПРОФ — это, по сути, "обертка" над универсальным планом обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Если в КОРП-версии вы решите настроить обмен вручную (не через файл настроек), вам следует выбирать пункт "Синхронизация через универсальный формат" или "Другая конфигурация".
Проанализируем нюансы версий формата:
Разберем важный момент, с которым мы столкнемся сразу после успешного запуска обмена. В БП КОРП справочник Подразделения имеет иерархическую структуру и тесно связан с концепцией обособленных подразделений. В УНФ структура подразделений значительно проще.
Проанализируем возможные сложности при сопоставлении данных:
Выясним итоговую последовательность действий при возникновении подобной ситуации. Если в списке нет нужной программы:
Конфигуратор или Отладчик. Ищем наличие плана обмена ОбменУправлениеНебольшойФирмойБухгалтерия30 или СинхронизацияДанныхЧерезУниверсальныйФормат.EnterpriseData.Таким образом, отсутствие кнопки в интерфейсе 1С:Бухгалтерии КОРП не является препятствием для настройки штатного обмена. Это лишь особенность позиционирования продуктов, которую мы легко обходим, используя механизмы универсального обмена данными.