Как реализовать поддержку от нескольких поставщиков в одной конфигурации 1С?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

В практике разработки на платформе 1С:Предприятие 8 часто возникает ситуация, когда в одну информационную базу необходимо интегрировать функционал от разных разработчиков. Например, объединить типовую конфигурацию 1С:Комплексная автоматизация и отраслевое решение от стороннего вендора, сохранив при этом возможность обновлять оба продукта. В этой статье мы подробно разберем, как технически реализовать механизм нескольких поставщиков, проанализируем особенности работы этой системы и выясним, можно ли оставить все объекты "на замке".

Механизм работы нескольких поставщиков в платформе

Для начала проанализируем, как платформа 1С идентифицирует поставщиков. Важно понимать, что система ориентируется не на текстовое название компании, а на уникальные внутренние идентификаторы (UUID). В служебных таблицах базы данных может храниться несколько эталонных конфигураций поставщиков. Когда мы выполняем процедуру объединения с файлом .cf, платформа сопоставляет объекты и предлагает поставить новую конфигурацию на поддержку.

Рассмотрим ситуацию по шагам. Допустим, у нас есть база с конфигурацией от "Поставщика №1" (например, фирма "1С"). Мы хотим добавить функционал от "Поставщика №2".

Инструкция по добавлению второго поставщика

Для реализации этой задачи воспользуемся следующим алгоритмом:

  1. Подготовка второй конфигурации: Во второй конфигурации (которую мы хотим добавить как нового поставщика) необходимо создать комплект поставки. Перейдем в меню КонфигурацияПоставка конфигурацииСоздать файлы поставки и обновления конфигурации.
  2. Настройка обновлений: При создании файлов поставки крайне важно указать, что данная конфигурация может являться обновлением для текущей основной конфигурации. Это позволит платформе корректно сопоставить объекты при первом объединении.
  3. Объединение в основной базе: В целевой базе перейдем в КонфигурацияСравнить, объединить с конфигурацией из файла и выберем созданный файл .cf или .cfu второго поставщика.
  4. Постановка на поддержку: После завершения сравнения платформа предложит поставить объекты на поддержку. В окне Настройка поддержки мы увидим, что теперь в списке числятся два поставщика.

Проблема статуса На замке (полная поддержка)

Разберем важный вопрос: можно ли добиться того, чтобы обе конфигурации были "на замке" (статус Объект поставщика не редактируется)? Это самый сложный момент в архитектуре 1С. Рассмотрим два сценария:

Сценарий 1: Объекты не пересекаются. Если "Поставщик №1" поставляет справочник Номенклатура, а "Поставщик №2" — совершенно новый справочник CRM_Взаимодействия, то оба этих объекта могут находиться на полной поддержке. Платформа будет обновлять их независимо друг от друга.

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

Особенности процесса обновления

Выясним, как проводить обновление, когда в базе уже "прописаны" два вендора. Штатный механизм "Поиск доступных обновлений" может работать нестабильно, так как он часто настроен на поиск обновлений только для основного поставщика.

Рекомендуется использовать следующий метод:

Перейдем в КонфигурацияПоддержкаОбновить конфигурацию. В появившемся окне выберем вариант Выбор файла обновления и укажем конкретный файл (.cf или .cfu) нужного нам поставщика. В процессе обновления платформа проанализирует изменения именно для выбранного контура поддержки. Мы увидим окно сравнения, где будут подсвечены изменения относительно именно этого поставщика.

Риски и ограничения при использовании нескольких поставщиков

Проанализируем основные опасности, с которыми мы можем столкнуться при такой схеме работы:

Современная альтернатива: Расширения конфигурации

Важно отметить, что методика использования нескольких поставщиков внутри одной конфигурации сегодня считается устаревшей. Начиная с версии платформы 8.3.6, компания 1С активно развивает механизм Расширений (.cfe).

Посмотрим на преимущества расширений перед несколькими поставщиками:

  1. Типовая конфигурация остается "на замке": Основная поставка от 1С обновляется полностью автоматически, так как мы не вносим в нее физических изменений.
  2. Изоляция кода: Весь функционал второго поставщика (или ваши собственные доработки) живет в отдельном слое. Это исключает путаницу в метаданных основной базы.
  3. Простота управления: Расширение можно легко отключить или обновить, не затрагивая структуру таблиц основной базы данных.

Если перед вами стоит задача добавить функционал CRM в Комплексную автоматизацию, лучшим решением будет держать "КА" на полной поддержке от 1С, а все изменения от CRM-системы или собственные модули подключать через механизм расширений. Это обеспечит максимальную стабильность и простоту сопровождения информационной системы.

Таким образом, мы выяснили, что техническая возможность работы с несколькими поставщиками существует, но она накладывает серьезные ограничения на использование статуса "На замке" при пересечении объектов и требует ручного контроля в процессе обновления.

← На главную