Разработка и Конфигурация · 12 мин
Как создать свою поставку конфигурации в 1С
Как создать поставку конфигурации 1С: настройка поддержки, файл поставки .cf, комплект поставки, обновление у клиентов и типичные ошибки разработчика.
Поставка конфигурации — это механизм платформы 1С:Предприятие, который позволяет разработчику упаковать конфигурацию в файл поставки и распространять её клиентам с возможностью последующего обновления через типовой механизм поддержки. Без оформленной поставки пользователи смогут загрузить конфигурацию только вручную через «Загрузить конфигурацию из файла», а автоматическое сравнение и объединение при обновлении будет недоступно.
Механизм поставки тесно связан с поддержкой конфигурации: именно настройки поддержки определяют, какие объекты клиент сможет изменять, а какие останутся закрытыми для редактирования. Правильно оформленная поставка включает файл конфигурации, демонстрационную информационную базу, описание поставки и, при необходимости, файлы обновлений для предыдущих версий.
Ниже разобран полный цикл: подготовка конфигурации, настройка поддержки, создание комплекта поставки, обновление у клиента и типичные ошибки. Инструкция ориентирована на конфигуратор 1С:Предприятия 8.3, но принципы одинаковы для большинства версий платформы 8.x.
Что такое поставка конфигурации и когда она нужна
Поставка конфигурации — это комплект файлов, который разработчик передаёт клиентам для установки и последующего обновления прикладного решения. Минимальный комплект состоит из файла поставки конфигурации с расширением .cf, а полный может включать демонстрационную базу, описание поставки (файл описания), шаблоны и файлы обновления с предыдущих версий.
Поставка необходима, если вы разрабатываете тиражируемое решение: отраслевую конфигурацию, дополнение к типовой или собственный продукт для нескольких внедренцев. Для разовой доработки в одной компании достаточно обычной загрузки .cf, но как только клиентов становится несколько и выходят новые версии, без механизма поставки обновления превращаются в ручную работу в каждой базе.
Ключевое преимущество поставки — обновление через поддержку. Клиент запускает «Обновить конфигурацию», платформа находит файл обновления, выполняет сравнение и объединение с учётом правил поддержки, и пользовательские доработки (если они сделаны в рамках разрешённых изменений) не теряются.
Подготовка конфигурации к поставке
Перед созданием поставки конфигурация должна быть приведена в рабочее состояние: выполните полную проверку конфигурации через «Конфигурация → Проверка конфигурации» с включёнными режимами проверки логической целостности и поиска некорректных ссылок. Поставка конфигурации с ошибками приведёт к тому, что эти ошибки попадут ко всем клиентам одновременно.
Проверьте свойства конфигурации: имя, версию, поставщика, краткую информацию. Поле «Версия» особенно важно — именно по нему платформа определяет порядок обновлений. Используйте согласованную схему нумерации, например четырёхразрядную (1.0.1.1), и не меняйте её логику между релизами, иначе механизм поиска обновлений может работать некорректно.
Также заранее решите, какие объекты клиентам разрешено менять. Изменение правил поддержки после того, как решение уже установлено у клиентов, — болезненная операция: объекты, снятые с редактирования, при обновлении будут полностью заменены на версию поставщика, и клиентские доработки этих объектов пропадут.
Настройка поддержки конфигурации
Откройте «Конфигурация → Поддержка → Настройка поддержки». Если конфигурация ещё не на поддержке, нажмите кнопку «Включить возможность изменения» — для поставщика это действие переводит конфигурацию в режим, где вы становитесь поставщиком собственного решения.
В окне настройки поддержки установите флажок, разрешающий создание файлов поставки (в зависимости от версии платформы пункт может называться «Конфигурация поставляется» или доступен через кнопку «Создать поставку»). Здесь же задаётся имя поставщика и версия поставки.
Правила изменения объектов
Для каждого объекта метаданных можно задать одно из правил: «Изменения не рекомендуются», «Изменения разрешены», «Редактируется с сохранением поддержки» или полный запрет изменений. Практический подход: объекты ядра (ключевые документы, регистры, модули проведения) оставляйте неизменяемыми, а объекты, которые клиенты традиционно адаптируют под себя (печатные формы, дополнительные отчёты), открывайте для редактирования с сохранением поддержки.
Правило «Редактируется с сохранением поддержки» означает, что при обновлении платформа выполнит трёхстороннее сравнение: старая версия поставщика, новая версия поставщика и изменённая клиентская версия. Изменения клиента сохранятся, если они не конфликтуют с изменениями поставщика. Полный запрет изменений гарантирует чистое обновление, но ограничивает внедренцев.
Создание файла поставки и комплекта
Когда поддержка настроена, переходите к формированию поставки: «Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления конфигурации». Откроется диалог, в котором указывается каталог для сохранения файлов и состав комплекта.
В диалоге можно включить формирование файлов обновления: платформа предложит список предыдущих версий поставки, с которых возможен переход на текущую. Файлы обновления уменьшают размер дистрибутива и содержат только различия между версиями. Для первого релиза создаётся только полный файл поставки.
Дополнительно через пункт «Комплект поставки» формируется полный дистрибутив: файл поставки, демонстрационная база (предварительно выгруженная в .dt), описание поставки и произвольные дополнительные файлы — инструкции, лицензионное соглашение, внешние компоненты. Комплект упаковывается в единый файл, который и передаётся клиентам.
- 1Проверьте конфигурацию на ошибки и заполните свойства: имя, версию, поставщика
- 2Откройте «Конфигурация → Поддержка → Настройка поддержки» и включите возможность поставки
- 3Задайте правила изменения для объектов метаданных
- 4Выполните «Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления»
- 5Укажите каталог, отметьте нужные версии для обновления и сформируйте файл .cf
- 6При необходимости соберите комплект поставки с демо-базой и описанием
- 7Протестируйте установку и обновление на чистой базе и на копии клиентской базы
Установка и обновление у клиента
Клиент устанавливает решение, создавая новую информационную базу из файла поставки: в конфигураторе «Конфигурация → Загрузить конфигурацию из файла» с последующим переводом конфигурации на поддержку, либо через создание базы из шаблона, если поставка оформлена как шаблон установки. После загрузки конфигурация встаёт на поддержку с заданными вами правилами.
Последующие обновления выполняются через «Конфигурация → Поддержка → Обновить конфигурацию». Платформа находит файл обновления, показывает окно сравнения объектов, и после подтверждения выполняет объединение. Объекты, изменённые клиентом в рамках разрешённых правил, помечаются в окне сравнения, и пользователь решает, какую версию оставить.
После обновления конфигурации базы данных обязательно выполняется «Обновление конфигурации базы данных» — именно на этом этапе применяются изменения структуры: новые реквизиты, таблицы, индексы. На больших базах эта операция может занять продолжительное время и требует монопольного доступа.
Как проверить результат
В окне «О конфигурации» указан поставщик и версия, конфигурация на поддержке
Конфигурация снята с поддержки — обновления штатным способом невозможны
После обновления номер версии соответствует новой поставке, база открывается без ошибок
Ошибки при обновлении конфигурации базы данных или несовпадение версий
Разрешённые к изменению объекты сохранили клиентские правки после обновления
Доработки затёрты версией поставщика — правила поддержки настроены неверно
Типичные ошибки и их последствия
Самая частая ошибка — создание поставки без предварительной проверки обновления на копии реальной клиентской базы. На чистой демо-базе всё работает, а у клиента с доработками и большим объёмом данных обновление завершается ошибкой или затиранием изменений. Тестовый прогон обновления должен стать обязательным этапом каждого релиза.
Вторая группа ошибок связана с версиями: нарушение порядка нумерации, пропуск версий в списке обновлений, попытка обновить клиента через несколько версий сразу без промежуточного файла обновления. Если файл обновления для нужной цепочки версий не создан, клиенту придётся загружать полный файл поставки с риском потери настроек.
Третья типичная проблема — изменение структуры данных без учёта реструктуризации: удаление реквизитов, изменение типов полей, переименование объектов. При обновлении конфигурации базы данных такие изменения могут привести к потере данных в удалённых реквизитах. Перед выпуском релиза проверяйте, какие изменения структуры выполнит платформа, и предупреждайте клиентов в описании поставки.
Альтернативы классической поставке
Механизм поставки — не единственный способ распространения доработок. Расширения конфигурации позволяют добавлять и изменять объекты поверх основной конфигурации, не затрагивая её поддержку. Для доработок типовых решений расширения во многих случаях удобнее: они не конфликтуют с обновлениями типовой конфигурации от её поставщика и проще в сопровождении.
Для внутренних нужд одной организации достаточно выгрузки .cf и ручной загрузки, а для командной разработки собственного продукта поставку удобно совмещать с хранилищем конфигурации и системой контроля версий: хранилище управляет изменениями в процессе разработки, а поставка оформляет готовый релиз для клиентов.
Сравнение вариантов
Подходит для тиражируемых собственных решений с штатным механизмом обновления; требует дисциплины версионирования и тестирования
Подходит для доработок типовых конфигураций без снятия с поддержки; ограничено возможностями механизма расширений
Подходит для разовой передачи конфигурации; не даёт автоматического обновления и контроля поддержки
Выбор зависит от модели распространения: если решение полностью ваше и клиентов много — оформляйте поставку; если вы дорабатываете типовую конфигурацию под конкретного заказчика — начните с расширения и переходите к поставке только при реальной необходимости.
Что важно запомнить
Поставка создаётся через настройку поддержки и пункт «Создать файлы поставки и обновления». Ключевые условия успеха: корректная нумерация версий, продуманные правила изменения объектов, обязательное тестирование обновления на копии клиентской базы и резервная копия перед каждым обновлением.
Частые вопросы
Чем файл поставки отличается от обычной выгрузки конфигурации в .cf?
Технически оба файла содержат конфигурацию, но файл поставки связан с настройками поддержки: он формируется только при включённой возможности поставки и используется механизмом обновления конфигураций на поддержке. Обычная выгрузка просто переносит конфигурацию целиком без правил поддержки.
Можно ли создать поставку, если конфигурация уже снята с поддержки?
Да, если вы являетесь автором конфигурации. Включите возможность изменения в настройке поддержки, станьте поставщиком, задайте правила и создайте файлы поставки. Если конфигурация на поддержке у другого поставщика, сначала оцените, нужна ли вам собственная поставка или достаточно расширения.
Как клиенту обновиться, если он пропустил несколько версий?
Если при создании поставки вы включили файлы обновления для всех промежуточных версий, платформа выполнит обновление последовательно. Если нужного файла обновления нет, клиенту потребуется загрузить полный файл поставки новой версии через «Обновить конфигурацию» с выбором файла, что может затронуть его доработки.
Что произойдёт с данными при обновлении конфигурации из поставки?
Данные в безопасности, если структура изменяется только добавлением объектов и реквизитов. Удаление реквизитов, сужение типов и изменение длины полей приводят к потере соответствующих данных при реструктуризации. Перед обновлением рабочей базы всегда делайте выгрузку .dt.
Нужно ли включать демонстрационную базу в комплект поставки?
Не обязательно, но полезно: демо-база с заполненными примерами данных помогает клиенту быстрее освоить решение и используется для обучения. Демо-база готовится заранее, выгружается в .dt и подключается при формировании комплекта поставки.
Можно ли автоматизировать сборку поставки?
Да, конфигуратор поддерживает пакетный режим запуска из командной строки, включая создание файлов поставки. Это позволяет встроить сборку релиза в автоматизированный процесс: выгрузка из хранилища, проверка, формирование поставки и комплекта выполняются одним сценарием.