Как переносить изменения из копии в рабочую базу 1С 8

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

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

Разберем основные правила безопасности, а также несколько практических способов переноса изменений из копии в рабочую информационную базу.

Правила безопасности перед переносом изменений

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

  1. Создание резервной копии. Обязательно сделаем бэкап рабочей базы. Для файловой базы создаем выгрузку через меню Администрирование — Выгрузить информационную базу (файл с расширением .dt) или делаем физическую копию файла 1Cv8.1CD. Для клиент-серверной базы создаем резервную копию средствами СУБД (SQL dump).
  2. Отказ от полной загрузки файла конфигурации. Никогда не используем команду Конфигурация — Загрузить конфигурацию из файла на рабочей базе, если в ней велась работа или параллельно выполнялись другие доработки. Данная операция полностью затирает конфигурацию базы данных и может безвозвратно удалить таблицы и поля, если их не было в файле загрузки.
  3. Монопольный режим. Избегаем так называемого динамического обновления («демонического обновления») базы данных при работающих пользователях. Изменения структуры данных и метаданных следует применять монопольно, предварительно завершив все пользовательские сеансы и фоновые задания, чтобы исключить повреждение кэша метаданных.

Способ 1: Сравнение и объединение конфигураций через файл cf

Этот способ является базовым инструментом платформы 1С 8 для выборочного переноса объектов и модулей между базами. Разберем по шагам весь процесс от выгрузки до применения изменений.

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

Способ 2: Копирование объектов через буфер обмена

Рассмотрим экспресс-метод, который отлично подходит для переноса отдельных изолированных объектов метаданных — например, новой обработки, отчета или общего макета.

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

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

Способ 3: Создание внешней печатной формы или обработки

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

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


Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Идентификатор");
    Команды.Колонки.Добавить("Использование");
    Команды.Колонки.Добавить("Представление");
    
    СтрокаКоманды = Команды.Добавить();
    СтрокаКоманды.Идентификатор = "МояПечатнаяФорма";
    СтрокаКоманды.Использование = "ВызовСерверногоМетода";
    СтрокаКоманды.Представление = "Новая печатная форма";
    
    ПараметрыРегистрации.Вставить("Команды", Команды);
    Возврат ПараметрыРегистрации;
КонецФункции

После подготовки обработки перенос выполняется без входа в конфигуратор: запускаем рабочую базу в режиме 1С:Предприятие, переходим в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки и загружаем файл с диска.

Способ 4: Использование расширений конфигурации (.cfe)

Для современных версий платформы 1С 8.3 рекомендованным механизмом доработки типовых решений является механизм расширений. Он позволяет менять логику процедур, добавлять формы, отчеты и реквизиты без изменения основной конфигурации поставщика.

  1. В копии базы создаем расширение через меню Конфигурация — Расширения конфигурации.
  2. Реализуем все доработки внутри расширения.
  3. Сохраняем расширение в файл с расширением .cfe (кнопка Сохранить конфигурацию в файл в окне списка расширений).
  4. В рабочей базе открываем список расширений (в конфигураторе или прямо в режиме 1С:Предприятие) и загружаем файл .cfe.

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

← На главную