Как перенести готовый документ из одной конфигурации 1С в другую через конфигуратор

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

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

Метод 1. Использование буфера обмена в Конфигураторе

Если обе базы данных (источник и приемник) доступны на одном рабочем столе, самым быстрым способом является прямое копирование объекта. Давайте рассмотрим этот процесс пошагово:

  1. Откроем Конфигуратор базы-источника.
  2. В дереве метаданных (окно "Конфигурация") найдем нужный нам Документ.
  3. Нажмем на него правой кнопкой мыши и выберем пункт "Копировать" или воспользуемся кнопкой на панели инструментов "Копировать в буфер".
  4. Не закрывая первый Конфигуратор, запустим Конфигуратор базы-приемника.
  5. В дереве метаданных выделим ветку "Документы".
  6. Нажмем правую кнопку мыши и выберем "Вставить" или кнопку "Вставить из буфера".

Важный нюанс: при таком способе 1С переносит структуру документа (реквизиты, табличные части, формы) и его модули. Однако типы данных реквизитов могут сброситься, если в новой базе отсутствуют объекты, на которые они ссылались. Например, если в источнике реквизит имел тип СправочникСсылка.Склады, а в приемнике такого справочника нет, тип может стать неопределенным.

Метод 2. Перенос объекта при территориальной удаленности баз

Разберем ситуацию, когда базы данных находятся в разных офисах или на разных серверах без общей сети, и открыть их одновременно невозможно. В этом случае мы воспользуемся файлом метаданных. В среде 1С v7.7 это файл 1Cv7.MD, а в 1С v8.x — файл конфигурации *.cf.

Проанализируем алгоритм действий в этом случае:

  1. В базе-источнике сделаем копию файла конфигурации. Для 1С 7.7 достаточно скопировать MD-файл из каталога базы.
  2. Перешлем этот файл в место нахождения базы-приемника (по почте или через облако).
  3. Внимание: не стоит сразу пытаться объединять основную рабочую конфигурацию с присланным файлом. Безопаснее создать на компьютере пустую папку, прописать её в списке баз 1С и запустить Конфигуратор.
  4. Заменим пустой файл конфигурации в этой новой базе на присланный MD-файл. Теперь у нас есть локальный "клон" конфигурации-источника.
  5. Теперь мы можем открыть одновременно наш "клон" и целевую рабочую базу, после чего выполнить копирование через буфер обмена, как описано в первом методе.

Метод 3. Механизм сравнения и объединения (для 1С 8.x)

Если вы работаете в современной среде 1С 8.3, можно воспользоваться штатным инструментом "Сравнение и объединение". Рассмотрим, как это сделать максимально безопасно:

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

Этот метод хорош тем, что система сама покажет зависимости. Если документ ссылается на специфическую роль или общий модуль, вы увидите это в дереве сравнения и сможете перенести зависимые объекты вместе с основным документом.

Адаптация программного кода модуля

После того как документ физически появился в новой базе, работа только начинается. Выясним, почему документ может не работать сразу. Основная причина — внешние зависимости кода.

Проанализируем, на что именно стоит обратить внимание в модуле документа (Модуль объекта и Модуль формы):

Для выявления проблем обязательно запустим Синтаксический контроль. Нажмите Ctrl + F7 в окне модуля. Система выведет список всех неопознанных объектов и методов. Вам придется либо перенести недостающие объекты, либо переписать код, заменив старые вызовы на аналоги, существующие в новой базе.

Работа с "битыми" типами данных

Рассмотрим ситуацию: вы перенесли документ, в котором есть реквизит Контрагент. В исходной базе это была ссылка на справочник Контрагенты. Если в новой базе справочник называется иначе (например, Клиенты), 1С потеряет связь.

Чтобы исправить это, выполните следующие действия:

  1. Зайдите в свойства каждого реквизита перенесенного документа.
  2. Проверьте поле "Тип". Если там указано "Неопределено" или "Любая ссылка", выберите правильный тип из списка объектов текущей конфигурации.
  3. Аналогично проверьте связи в табличных частях.

Права доступа и интерфейсы

Последний этап, о котором часто забывают: чтобы пользователи смогли увидеть и создать новый документ, необходимо настроить права. Перенос самого объекта метаданных не переносит настройки прав из исходной базы автоматически.

Рассмотрим порядок действий:

  1. Найдите в дереве метаданных ветку "Роли".
  2. Для соответствующих ролей (например, "Бухгалтер" или "Полные права") установите галочки на права Чтение, Добавление, Изменение и Проведение для нового документа.
  3. Если используется интерфейс 7.7, не забудьте добавить пункт меню для вызова нового документа в Редакторе интерфейсов. В 1С 8.3 убедитесь, что документ включен хотя бы в одну Подсистему, иначе он не отобразится в интерфейсе "Такси".

Таким образом, мы выяснили, что перенос документа — это комплексный процесс, включающий не только копирование "оболочки", но и тщательную проверку связей, адаптацию кода и настройку прав доступа. Совместное использование этих методов позволит вам эффективно расширять функционал ваших решений.

← На главную