Введение в поставку и поддержку конфигураций
Рассмотрим типичную ситуацию. Фирма-поставщик выпускает тиражную конфигурацию. Клиент приобретает ее и адаптирует под свои требования. Через некоторое время поставщик выпускает новую версию, и перед клиентом встает вопрос обновления, то есть интеграции своих изменений с изменениями поставщика. Ручное объединение в подобных случаях очень трудоемко. Требуется составить список всех отличий своей конфигурации от старой конфигурации поставщика и заново внести их в новую версию. Можно делать и наоборот, то есть подготовить список изменений поставщика и внести их в свою конфигурацию, но это ничего не меняет. Многое также зависит от механизма сравнения конфигураций и подготовки отчета различий. В платформе «1С:Предприятие» версии 8 этот механизм был существенно улучшен по сравнению с «1С:Предприятием» версии 7.7, но даже самый лучший и подробный отчет от дальнейшей утомительной ручной работы не освобождает. Механизм поставки и поддержки конфигураций в значительной степени автоматизирует этот процесс.
Общая схема обновления
Подробно рассмотрим ситуацию на примере любого свойства объекта метаданных. Возможны следующие варианты:
| Пользователь | Поставщик | Правило обновления | |
| 1 | Менял | Не менял | Взять из конфигурации пользователя |
| 2 | Менял | Менял | ? |
| 3 | Не менял | Не менял | Взять из конфигурации пользователя |
| 4 | Не менял | Менял | Взять из конфигурации поставщика |
Таблица 1. Правила обновления по умолчанию
Нетрудно заметить, что варианты 1, 3, 4 в большинстве случаев не требуют модифицировать предложенное правило. Самый сложный случай – второй. Здесь нельзя сделать никаких предположений, но можно по крайней мере автоматически определить все такие свойства и предоставить пользователю отфильтрованный список для указания правила в каждом конкретном случае.
Реализация в платформе «1С:Предприятие 8»
Общие понятия
В «1С:Предприятии 8» любая конфигурация может стоять на поддержке одной или нескольких других конфигураций, называемых конфигурациями поставщика. В качестве конфигурации поставщика может выступать конфигурация, созданная командой Конфигурация — Поставка конфигурации — Создать файлы поставки и обновления конфигурации . В результате выполнения этой команды создается файл конфигурации ( cf) . Файл, подготовленный командой Конфигурация — Сохранить конфигурацию в файл , в качестве конфигурации поставщика использовать нельзя. Для того чтобы получить конфигурацию поставщика в виде файла информационной базы (1cd) или файла выгрузки информационной базы (dt), требуется подготовленный вышеописанным способом файл cf загрузить в требуемую информационную базу (возможно, в пустую), выполнив команду Конфигурация — Загрузить конфигурацию из файла . Затем, при необходимости, можно штатными средствами создать файл dt.
Существуют два способа встать на поддержку конфигурации поставщика. Первый — использовать конфигурацию, подготовленную вышеописанным способом (при необходимости внося в нее изменения). Фактически подготовленная конфигурация поставщика находится на поддержке той конфигурации, в которой она была создана. Аналогичный результат достигается через команды Конфигурация — Загрузить конфигурацию из файла и Администрирование — Загрузить информационную базу . Второй способ позволяет поставить на поддержку уже созданную конфигурацию пользователя. Для этого необходимо выполнить команду Конфигурация — Сравнить, объединить с конфигурацией из файла . Если в качестве выбранного файла указывается файл конфигурации поставщика, и конфигурация пользователя уже не находится на ее поддержке, предлагается после объединения встать на поддержку.
Существуют два режима поддержки. Первый — в конфигурацию поставщика не вносятся изменения, она используется как есть. Такой режим возможен только при первом способе постановки на поддержку, и именно в нем конфигурация поставщика находится после ее создания. Все объекты конфигурации в этом случае заблокированы для изменений (в том числе и для добавления новых объектов). Второй режим — конфигурация находится на поддержке с возможностью изменений. Для того чтобы перейти в этот режим, необходимо открыть диалог настройки поддержки командой Конфигурация — Поддержка — Настройка поддержки и нажать кнопку Включить возможность изменения .
Способы обновления конфигурации. Обновление конфигурации может выполняться как с помощью файлов конфигурации поставщика новой версии, так и с помощью специальных файлов обновления конфигурации ( cfu) . Обновление конфигурации с помощью файлов (cf) может выполняться с любой версии (в том числе и более новой, при необходимости отказаться от внесенных изменений). При создании файла обновления поставщик указывает, для каких версий конфигурации он предназначен. Таких версий может быть несколько, но обновление может быть выполнено только с них. Это связано с тем, что файлы обновления включают в себя не всю конфигурацию, а только те изменения, которые существуют между конечной версией и указанными при создании файла обновлениями. Важно отметить, что файлы cfu не поддерживают обновления не только для более ранних версий конфигурации, чем они предназначены, но и для более поздних.
Приведем пример. Если конечная версия «4», а обновление создается только для версии «2», то невозможно будет выполнить обновление не только для версии «1», но и для версии «3». Такое ограничение связано с возможностью «обратных» изменений. То есть представим себе, что при переходе к версии «3» поставщик увеличил длину строки в типе реквизита, а в версии «4» изменил ее обратно. При подготовке обновления «2» — «4» это свойство в файл не попадет (поскольку в этих версиях значения совпадают). Если позволить использовать такой файл для обновления версии «3», то у пользователя окажется неправильная, увеличенная длина строки. Файлы обновления конфигурации имеют минимальный размер не только за счет включения в них только необходимых объектов, но и за счет применяемого в них сжатия данных. Они оптимальны для доставки обновления пользователю по низкоскоростным каналам связи. Обратной стороной является описанная выше меньшая гибкость их применения. С точки зрения дальнейшего процесса обновления применение файлов cf и cfu ничем не отличается.

Рисунок 1. Общая схема взаимодействия поставщика и пользователя
Выполнение обновления
Если конфигурация пользователя находится на поддержке без возможности внесения изменений, обновление представляет собой тривиальный, полностью автоматизированный процесс. Пользователь выполняет команду Конфигурация — Поддержка — Обновить конфигурацию , и после получения подтверждения выполняется обновление. Рассмотрим второй, наиболее интересный случай. Пользователь включил возможность изменения. Обновление конфигурации производится с использованием стандартного механизма сравнения и объединения, но пользователю предоставляется существенный дополнительный сервис. В процессе сравнения участвуют не две а три конфигурации — конфигурация пользователя, старая конфигурация поставщика (она хранится в конфигурации пользователя) и новая конфигурация поставщика, до которой и производится обновление. При этом система автоматически производит анализ сделанных изменений и, в соответствии с таблицей 1, расставляет правила объединения. Главную сложность представляет собой вариант 2, когда и пользователь, и поставщик меняли одно и то же свойство. Как отмечалось, разумных предположений автоматически сделать невозможно, но можно выделить эти случаи для пользователя. Все подобные свойства в дереве объединения показываются жирным шрифтом. Кроме того, в настройке фильтра просмотра можно указать флажок Показывать только дважды измененные свойства , и в дереве объединения будут показываться только те свойства, которые требуют ручной установки правил объединения. После выполнения объединения хранимая внутри пользовательской конфигурации конфигурация поставщика будет обновлена до новой версии.
Модификация алгоритма обновления с помощью правил поддержки
Пользователь может модифицировать приведенный алгоритм обновления с помощью правил поддержки, которые можно установить для каждого объекта метаданных. Необходимость в этом может возникнуть, если пользователь собирается самостоятельно выполнять дальнейшую модификацию объекта на себя и ему неинтересны изменения, вносимые поставщиком. Частный случай — пользователю вообще не требуется данный объект, и он хочет его удалить. Существуют три правила поддержки объекта метаданных:
- «Объект поставщика не редактируется» — пользователь не может изменять объект поставщика. Основное предназначение этого правила будет описано ниже, но пользователь может установить его с целью страховки от случайных изменений. При обновлении такие объекты будут полностью заменяться на объекты поставщика новой версии.
- «Объект поставщика редактируется с сохранением поддержки» — основное правило. В этом случае алгоритм объединения в точности совпадает с описанным.
- «Объект поставщика снят с поддержки» — пользователь не хочет выполнять дальнейшие обновления данного объекта. Для того чтобы удалить объект поставщика, предварительно ему необходимо установить данное правило.
Приведем расширенный вариант таблицы 1, с учетом правил поддержки.
| Пользователь | Поставщик | Правила поддержки и обновления | |||||||
| 1 | Менял | Не менял |
| ||||||
| 2 | Менял | Менял |
| ||||||
| 3 | Не менял | Не менял |
| ||||||
| 4 | Не менял | Менял |
|
Таблица 2. Правила обновления по умолчанию с учетом правил поддержки
Ограничения действий пользователя со стороны поставщика с помощью правил поставки
Поставщик может ограничить возможные изменения пользователя с помощью правил поставки, которые можно устанавливать для каждого объекта метаданных. Данная возможность призвана ограничить возможные изменения конфигурации поставщика, нарушающие логику ее работы, после которых дальнейшая поддержка конфигурации теряет смысл. Существуют три правила поставки:
- «Изменения разрешены»;
- «Изменения не рекомендуются»;
- «Изменения запрещены».
Далее приводятся правила поддержки (по умолчанию и доступные для выбора пользователем), соответствующие различным правилам поставки.
Где на компьютере находятся шаблоны конфигураций 1С:Предприятие
В каком каталоге хранятся шаблоны конфигураций программных продуктов системы 1С:Предприятие

Вы можете приобрести программные продукты 1С:Предприятие или оформить подписку ИТС для ранее приобретенных продуктов 1С напрямую в нашей компании, даже если программы 1С изначально приобретали в другом месте.
Для использования в качестве шаблонов конфигурации все файлы поставки должны быть установлены на компьютере пользователя определенным образом ‑ все шаблоны должны находиться в подкаталогах определенной структуры и сопровождаться файлами-манифестами, описывающими установленные шаблоны.
По умолчанию каталог хранения шаблонов имеет имя tmplts., а расположение каталога шаблонов зависит от используемой операционной системы:
- ОС Windows: %APPDATA%\1C\1cv8\tmplts.
- ОС Linux:
| Наименование конфигурации | Разработчик/Каталог разработчика | Каталог шаблона конфигурации |
|---|---|---|
| Бухгалтерия предприятия (версия ПРОФ) | 1С/1С | Accounting |
| Бухгалтерия предприятия (базовая) | 1С/1С | AccountingBase |
| Бухгалтерия предприятия КОРП | 1С/1С | AccountingCorp |
| Бухгалтерия предприятия (базовая для 1) | 1С/1С | AccountingOneBase |
| Зарплата и управление персоналом (версия ПРОФ) | 1С/1С | HRM |
| Зарплата и управление персоналом (базовая) | 1С/1С | HRMBase |
| Зарплата и управление персоналом КОРП | 1С/1С | HRMCorp |
| Розница | 1С/1С | Retail |
| Розница (базовая) | 1С/1С | RetailBase |
| Управление нашей фирмы | 1С/1С | SmallBusiness |
| Управление нашей фирмы (базовая) | 1С/1С | SmallBusinessBase |
| Управление торговлей | 1С/1С | Trade |
| Управление торговлей (базовая) | 1С/1С | TradeBase |
| Комплексная автоматизация | 1С/1С | ARAutomation |
| Бухгалтерия некоммерческой организации | 1С/1С | AccountingNPO |
| Бухгалтерия некоммерческой организации КОРП | 1С/1С | AccountingNPOCorp |
| Бухгалтерия государственного учреждения | 1С/1С | StateAccounting |
| Бухгалтерия государственного учреждения (базовая) | 1С/1С | StateAccountingBase |
| Зарплата и кадры государственного учреждения | 1С/1С | StateHRM |
| Зарплата и кадры государственного учреждения КОРП | 1C/1C | StateHRMCorp |
| Зарплата и кадры государственного учреждения (базовая) | 1С/1С | StateHRMBase |
| Колледж | Онлайн/Online | College |
| Колледж ПРОФ | Онлайн/Online | CollegeProf |
| Управление учебным центром | Онлайн/Online | UUC |
Внутри подкаталога поставщиков производится разделение по каталогам, соответствующим версиям выпускаемых решений. Например, шаблон типовой конфигурации "Бухгалтерия предприятия, редакци 3.0" версии 3.0.99.21 будет создан в каталоге: tmplts\1C\Accounting\3.0.99.21
Рекомендуется придерживаться приведенного порядка организации каталогов во избежание пересечений между различными поставщиками.
Как изменить путь к каталогу с шаблонами конфигураций или добавить еще одно место расположения шаблонов
Для редактирования списка каталогов с шаблонами конфигураций в окне запуска 1С со списком информационных баз нажмите кнопку Настройка.

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

При запуске программы установки шаблона конфигурации в окне помощника установки будет предложено установить шаблон в тот каталог, который указан первым в списке Каталоги шаблонов конфигураций и обновлений в окне настройки запуска (первый в списке параметров ConfigurationTemplatesLocation конфигурационного файла 1cestart.cfg, расположенный на локальной машине, к которому есть доступ у пользователя, выполняющего установку).

Если на локальной машине не было обнаружено каталогов шаблонов, то будет создан каталог шаблонов с расположением по умолчанию. Созданный каталог будет использован в качестве каталога шаблонов по умолчанию. Также запись об этом каталоге будет указана первым параметром ConfigurationTemplatesLocation файла 1cestart.cfg.


Файл-манифест *.mft (по умолчанию 1Cv8.mft)
Файл с расширением *.mft является файлом-манифестом ‑ специальным файлом, описывающим шаблон конфигурации. Файл может иметь произвольное имя (по умолчанию 1cv8.mft).
Файл-манифест шаблона типовой конфигурации "Бухгалтерия предприятия, редакция 3.0"


Внутренний формат файла-манифеста близок к формату ini-файла. Для поддержки нескольких языков файл-манифест использует кодировку UTF-8. В файле-манифеста могут указываться следующие параметры:
- Vendor — Поставщик решения. Совпадает с указанным в конфигурации.
- Name — Наименование решения. Совпадает с указанным в конфигурации.
- Version — Версия решения. Совпадает с указанной в конфигурации.
- AppVersion — Версия технологической платформы 1С:Предприятия, с помощью которой создавался комплект поставки.
Следующие параметры относятся к частям решения и разделяются наименованиями секций. Наименования секций выбираются произвольно и заключаются в квадратные скобки.

Важно !
Обратите внимание, что для некоторых конфигураций ссылки для скачивания полных установочных дистрибутивов могут не отображаться на странице с релизами конфигураций (будут видны только ссылки для скачивания обновлений конфигурации). В этом случае полные дистрибутивы можно скачать по скрытым ссылкам.
Подробный порядок действий, как это сделать, есть в инструкции:
Как скачать полные дистрибутивы конфигураций 1С
Как обновить конфигурацию поставщика не трогая при этом основную базу или обновление конфигурации поставщика
Иногда случается так, что обновление 1с устанавливается не должным образом, а например вместо обновления программист выполняет «Сравнение, объединение конфигурации 1с». При выполнении этих действий сама конфигурация обновляется, а вот версия конфигурации поставщика не обновляется и остается старой.
Конфигурация поставщика может быть обновлена только в нетиповой базе, для того чтобы посмотреть текущую версию поставщика в конфигураторе выполним следующие действия, нажмем «Конфигурация» —> «Поддержка» —> «Настройка поддержки». Для того чтобы посмотреть название и версию конфигурации зайдем «Справка» —> «О программе».


В окне ниже мы видим где пишется версия конфигурации поставщика и версия самой конфигурации 1с.

Для того чтобы обновить конфигурацию поставщика выполним следующие действия, в конфигураторе выбираем вкладку «Конфигурация» —> «Поддержка» —> «Обновить конфигурацию»

Теперь в появившемся окне выбираем второй вариант предложенный системой, это «Выбор файла обновления», нажимаем «Далее».

В новом окне нужно нажать на три точки и выбрать файл с обновлением, версия которого в точности соответствует версии вашей конфигурации. Файл должен быть с расширением (*.cf), то есть быть полной конфигурацией, если у вас файл (*.cfu) то ничего не получится, так как это файл обновления конфигурации, а не файл самой конфигурации.

Теперь наблюдаем окно примерно следующего вида, нажимаем «Продолжить обновление».

На этой странице ничего не меняем, просто жмем ОК.

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

Теперь когда прошло объединение конфигураций мы увидим окно которое представлено ниже, нажимаем «ОК».
Мануал по обновлению нетиповых
При установке обновлений на базу с конфигурацией, снятой с поддержки и доработанной, выполняется фактически обновление двух конфигураций: обновление конфигурации поставщика (обновление типовой конфигурации, без изменений, до текущего релиза), и обновление основной конфигурации.
Для обновления конфигурации поставщика используется файл cf типовой конфигурации, не снятой с поддержки. Для обновления основной конфигурации используется предварительно подготовленный файл cf (берется типовая конфигурация, в нее вносятся сделанные изменения, и конфигурация выгружается в файл cf)
Собственно процесс обновления выполняется в 2 этапа: обновление конфигурации поставщика, и обновление основной конфигурации. Последовательность выполнения этапов не принципиальна.
Для чего нужны 2 конфигурации в 1 флаконе? Такое сочетание конфигураций базы удобно использовать для получения перечня изменений в типовой конфигурации. В основной конфигурации содержится конфигурация с изменениями, в конфигурации поставщика – типовая. При помощи встроенного в платформу механизма сравнения конфигураций (в данном случае основной и поставщика), можно получить наглядное представление о том что было изменено в конфигурации в сравнении с типовой. Единственное условие для комфортной работы при сравнении – это поддержание одинаковых версий релизов обеих конфигураций. Для этого нужны 2 файла cf – один для основной, другой – для конфигурации поставщика.
Представим себе, что оба файла cf у нас есть (по подготовке cf с изменениями — отдельно) Назовем их, например, «Типовая_2_0_49_8.cf» и «Обновление_2_0_49_8.cf» Соответственно, первый файл – это обновление для конфигурации поставщика, второй – для основной конфигурации.
Начнем с обновления конфигурации поставщика.
В режиме Конфигуратор, идем в меню Конфигурация – Поддержка – Обновить конфигурацию. В получившемся диалоге выбираем переключатель «Выбор файла обновления», и говорим «Далее»

Далее нам предлагается указать файл обновления:

Тут все знакомо. Указываем файл «Типовая_2_0_49_8.cf», и нажимаем Готово

Со всем, что будет появляться дальше – соглашаться)))
После утрясения всех вопросов, платформа начнет загрузку конфигурации для сравнения. Это занимает некоторое время…
По окончании загрузки получаем следующее окно:

Здесь нам показывают различия между тем что у нас уже есть, и тем, что мы пытаемся загрузить. В первой колонке – различия между новой конфигурацией и конфигурацией базы данных (основной), во второй – различия между текущей конфигурацией поставщика, и загружаемой конфигурацией.
Так как нам нужно обновлять только конфигурацию поставщика, а основную пока не трогать, снимаем все галки в левой колонке (если снять самую верхнюю, все остальные ниже снимутся самостоятельно)

Нажимаем «Выполнить», ждем некоторое время…
В процессе загрузки может появиться следующее окно:

Это относится к блокировке объектов базы. Если все переключатели будут установлены в режим «Объект не редактируется», внесение изменений в конфигурацию будет невозможно без предварительного снятия конфигурации с поддержки (объекты на поддержке, снятые с поддержки и редактируемые с сохранением поддержки – отдельная тема) В большинстве случаев настройка правил поддержки выполняется так, как указано на снимке
Результатом всех наших манипуляций будет сообщение

Идем в меню Файл – Сохранить (платформа сохранит сделанные изменения), и затем в меню Конфигурация – Обновить конфигурацию базы данных. Процесс займет некоторое время, и будет требовать принятия изменений в течение реорганизации.
На этом первый этап закончен.
Обновление основной конфигурации.
В режиме Конфигуратор идем в меню Конфигурация – Сравнить, объединить с конфигурацией из файла. Сразу же получаем окно для выбора файла, в котором указываем наш файл для обновления основной конфигурации «Обновление_2_0_49_8.cf» Платформа сразу же начинает сравнение конфигураций.
Так как наш файл «Обновление_2_0_49_8.cf» содержит уже обновленную конфигурацию, с учетом всех изменений, то все галки в левой колонке теперь оставляем на месте.

После нажатия кнопки «Выполнить», будет выполнено объединение конфигураций (аналогично первому этапу)
Идем в меню Файл – Сохранить, затем Конфигурация – Обновить конфигурацию базы данных
После выполнения всех действий по обновлению, открываем базу в режиме Предприятия, и подтверждаем легальность получения обновлений

На самом деле, если изменения в конфигурации минимальны, и заранее известны, можно обойтись только одним этапом – обновлением конфигурации поставщика. При этом в левой колонке нужно снять галки с тех объектов, которые были изменены по отношению к типовой. Однако эта методика применима только в том случае, когда не требуется внесения изменений в формы и/или сравнения больших блоков кода. Новая типовая конфигурация будет наложена на текущую, за исключением тех объектов, которые мы снимем с объединения.
Методика обновления – универсальна, подходит не только для конфигураций «БухгалтерияПредприятия», но и для Комплексной, и для ЗУП, и для прочих…