Рассмотрим следующую ситуацию. Пользователю требуется интегрированное решение, сочетающее в себе две достаточно различные функциональности, например торговлю и управление персоналом. Присутствующие на рынке интегрированные решения по каким - либо причинам его не удовлетворяют, но устраивающие его решения по отдельности существуют. Он приобретает эти решения и объединяет их в одну конфигурацию. Конечно, любое объединение двух существенно отличающихся конфигураций (особенно если они разработаны различными поставщиками) это сложный процесс, требующий "ручной" доработки результата "механического" объединения. Нужно постараться не нарушая работоспособности конфигураций объединить функционально аналогичные объекты, присутствующие в исходных конфигурациях. Сам по себе этот вопрос выходит за рамки данной статьи, мы рассмотрим его с точки зрения механизма поставки и поддержки конфигураций.
Пользователь вероятно захочет сохранить поддержку конфигурации поставщика, но какой именно? Можно, конечно, выбрать наиболее важную (объемную, сложную), а последующие обновления в другой конфигурации поставщика интегрировать вручную, но платформа 1С:Предприятие 8 позволяет сохранить поддержку обеих конфигураций поставщика.
При обновлении конфигурации учитываются только те объекты пользовательской конфигурации, которые происходят из конфигурации поставщика, все остальные объекты считаются добавленными пользователем и влияния на процесс обновления не оказывают, поэтому не имеет значения, были они действительно добавлены пользователем или были получены из другой конфигурации поставщика. Интерес представляют сопоставленные объекты двух конфигураций поставщиков. Рассмотрим вопрос как может осуществляться поддержка таких объектов. Для каждой конфигурации поставщика анализируются только ее связи с пользовательскими объектами, то есть если объект пользовательской конфигурации связан так же с объектом другой конфигурации поставщика, это никак не влияет на работу механизма поставки и поддержки. Если пользователь выполнит обновление объекта из первой конфигурации поставщика, то "с точки зрения" второй конфигурации поставщика, это будет выглядеть как обычное пользовательское редактирование. Эта особенность позволяет для одного объекта сохранить поддержку двух (или более) конфигураций поставщика. Естественно, процесс обновления такого объекта требует внимательного контроля, и "ручной" доработки результата, однако механизм поставки и поддержки все равно приносит пользу, хотя бы возможностью сразу получить отчет об изменениях, внесенных поставщиком в новой версии. Оставлять объект на поддержке двух конфигураций не обязательно. Можно сохранить поддержку только одной из них, чья функциональность в данном объекте более важна или более сложна для адаптации. Можно и вовсе снять объект с поддержки обеих конфигураций поставщика, и все дальнейшие обновления производить вручную.
Если конфигурация находится на поддержке более одной конфигурации поставщика, существует, как минимум, один сопоставленный объект - это корневой объект конфигурации. Большинство его свойств не оказывает существенного влияния на функционирование конфигурации, и, вполне возможно, будут изменены пользователем. Особую важность представляют модули приложения и, возможно, внешнего соединения. Здесь пользователю придется принимать решение о способе поддержки, но в любом случае обновление этих модулей будет представлять из себя трудоемкий процесс. Это является одной из причин, по которым разработчикам рекомендуется наиболее существенную функциональность выносить в общие модули, а в этих модулях оставлять только вызовы процедур. Следование этому правилу может сильно облегчить задачу пользователя.
Для того, что бы сохранить для сопоставленного объекта поддержку двух конфигураций поставщика, нужно в настройке поддержки обеих установить правило "Редактируется с сохранением поддержки". Если требуется поддержка только одной конфигурации, то в ее настройке следует установить правило "Редактируется с сохранением поддержки", а в настройке другой "Объект поставщика снят с поддержки". Конечно, все эти правила должны быть допустимыми "с точки зрения" правил поставки, установленных поставщиками для данного объекта. Если оба поставщика установили правило "Изменения запрещены", то сопоставить объекты, сохраняя поддержку обеих поставщиков для конфигурации пользователя, невозможно.
Постановка на поддержку любой конфигурации поставщика может выполняться двумя способами - прямым использованием дистрибутива поставщика или объединением с дистрибутивом с постановкой на поддержку. Очевидно, что для постановки на поддержку двух конфигураций поставщика требуется хотя бы для одной из них использовать второй способ.