Сохранение и применение доработок в Конфигураторе 1С 8.3

· 9 мин

Содержание

Чтобы сохранить изменения в конфигураторе 1С, нужны два действия. Первое — Конфигурация → Сохранить конфигурацию (Ctrl+S): доработки записываются в основную конфигурацию. Второе — Конфигурация → Обновить конфигурацию базы данных (F7): только после него изменения видят пользователи в режиме «1С:Предприятие».

Типичная ситуация: программист добавил реквизит в документ, нажал «Сохранить», закрыл Конфигуратор. Утром бухгалтер звонит: реквизита нет. Причина почти всегда одна — конфигурацию сохранили, но не применили к базе. Порядок одинаков для любой конфигурации на платформе 8.3: Бухгалтерии, ЗУП, УТ или самописной.

Две конфигурации внутри одной базы: что именно сохраняется

В каждой информационной базе хранятся две конфигурации:

  • 🛠 Основная конфигурация — та, которую вы правите в дереве Конфигуратора. Команда «Сохранить» пишет изменения сюда.
  • 🗄 Конфигурация базы данных — та, по которой реально работают пользователи. Она меняется только командой «Обновить конфигурацию базы данных».

Пока вы не нажали F7, основная конфигурация и конфигурация БД расходятся. Это нормально: можно сохранить промежуточный результат вечером и применить его утром, когда все проверено.

Пошагово: от правки до работающей базы

  1. Откройте дерево: Конфигурация → Открыть конфигурацию.
  2. Если конфигурация типовая и стоит на поддержке, без разрешения на изменение объекты будут закрыты. Включается это в Конфигурация → Поддержка → Настройка поддержки, кнопка «Включить возможность изменения».
  3. Внесите правки: модуль, форму, реквизит, макет.
  4. Нажмите Ctrl+S или Конфигурация → Сохранить конфигурацию. Изменения записаны в основную конфигурацию.
  5. Нажмите F7 или Конфигурация → Обновить конфигурацию базы данных.
  6. Если меняется структура данных, откроется окно «Реорганизация информации» со списком изменений. Прочитайте его и нажмите «Принять».
  7. Пользователи, которые работали в базе, перезапускают программу и получают новую версию.

Нажать F7 можно и без отдельного Ctrl+S. Платформа сама предложит сохранить основную конфигурацию перед обновлением.

Как вернуться назад до применения

Если правки оказались лишними, а F7 вы еще не нажимали, выполните Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Основная конфигурация заменится той, что работает у пользователей. Все несохраненные и сохраненные, но не примененные доработки пропадут.

Посмотреть разницу перед откатом можно через Конфигурация → Сравнить конфигурации: выберите для сравнения основную конфигурацию и конфигурацию базы данных. Отчет покажет каждый измененный объект.

Обновление конфигурации базы данных: что происходит при F7

При обновлении платформа сверяет структуру двух конфигураций. Дальше возможны два сценария.

Что изменилиЧто сделает платформаНужен ли монопольный доступ
Только код модулей, формы, макетыОбновит конфигурацию без перестройки таблицОбычно нет: возможно динамическое обновление
Реквизиты, табличные части, новые объекты, измерения регистровРеструктуризирует таблицы базы, покажет «Реорганизацию информации»Да, без других сеансов

Монопольный режим и динамическое обновление

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

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

Динамическое обновление — инструмент для срочной правки кода, а не для регулярной работы. Старые и новые сеансы какое-то время работают по разным версиям, и при серьезных изменениях это приводит к ошибкам. Структурные изменения применяйте в окно обслуживания, когда в базе никого нет.

Как освободить базу перед обновлением

  1. Посмотрите, кто подключен: Администрирование → Активные пользователи в Конфигураторе.
  2. Предупредите людей и назначьте время.
  3. В типовых конфигурациях на БСП есть обработка «Блокировка работы пользователей» в разделе Администрирование (в группе обслуживания). Она запрещает новые входы и выводит предупреждение работающим.
  4. Для серверной базы можно также установить блокировку начала сеансов в консоли администрирования кластера.

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

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

Изменения через хранилище конфигурации

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

Здесь порядок другой: объект нельзя изменить, пока вы его не захватили. Ctrl+S сохраняет изменения только в вашей локальной основной конфигурации, в хранилище они не попадают.

Цикл работы с объектом

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

Чем захват отличается от помещения

КомандаЧто делает
Захватить в хранилищеБлокирует объект за вами, другие только читают
Поместить в хранилищеОтправляет ваши изменения, создает новую версию
Отменить захватСнимает блокировку, локальные правки объекта откатываются к версии хранилища
История хранилищаСписок версий с авторами и комментариями, можно сравнить и откатить

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

Сравнение и объединение: перенос доработок без потерь

Когда доработки сделаны в копии базы, их нужно перенести в рабочую. Загружать .cf целиком рискованно: если в рабочей базе были свои правки, их сотрет. Безопаснее объединение.

Как объединить конфигурации

  1. В рабочей базе сохраните текущую конфигурацию в файл — это точка отката: Конфигурация → Сохранить конфигурацию в файл.
  2. Выберите Конфигурация → Сравнить, объединить с конфигурацией из файла и укажите .cf с доработками.
  3. В окне сравнения отметьте флажками только те объекты, которые нужно перенести.
  4. Для каждого спорного объекта выберите режим объединения. Можно взять объект из файла целиком или объединить его с приоритетом основной конфигурации либо файла. Для модулей доступно объединение по отдельным процедурам.
  5. Нажмите «Выполнить». Изменения попадут в основную конфигурацию.
  6. Сохраните (Ctrl+S) и примените (F7).

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

Отдельный случай: расширения

Расширение (появились в 8.3.6) живет отдельно от основной конфигурации. Его открывают через Конфигурация → Расширения конфигурации, у него свое дерево и свои команды сохранения и обновления. Сохранили основную конфигурацию — расширение не сохранилось, и наоборот. Применять изменения расширения тоже нужно отдельно, из его окна.

Сохранение конфигурации в файл: .cf, .dt и XML

Сохранить конфигурацию можно в трех форматах. У каждого своя задача.

ФорматКомандаЧто внутриКогда использовать
.cfКонфигурация → Сохранить конфигурацию в файлТолько конфигурация, без данныхПеренос доработок, точка отката
.dtАдминистрирование → Выгрузить информационную базуКонфигурация и все данныеПолная резервная копия, перенос базы
XML-файлыКонфигурация → Выгрузить конфигурацию в файлыКаждый объект — отдельные файлы в каталогеGit, сравнение во внешних утилитах, EDT

Загрузка обратно

  • 📥 .cf загружают командой Конфигурация → Загрузить конфигурацию из файла. Основная конфигурация заменяется полностью, затем нужен F7.
  • 📥 .dt — Администрирование → Загрузить информационную базу. Данные базы заменяются целиком, требуется монопольный доступ.
  • 📥 XML — Конфигурация → Загрузить конфигурацию из файлов. Можно загрузить весь каталог или выбранные файлы.

Загрузка .dt стирает все текущие данные базы. Никогда не путайте ее с загрузкой .cf: вместо замены конфигурации вы откатите учет на дату выгрузки.

Сохраненный .cf без данных весит мало и делается за минуту. Привычка сохранять его перед каждой серьезной доработкой дает простой путь назад, без восстановления всей базы.

Сохранение и обновление без ручной работы: пакетный режим

Конфигуратор умеет выполнять команды из командной строки, без открытия окна. Это основа ночных выгрузок, скриптов обновления и выгрузки исходников в Git.

Основные ключи 1cv8

Запуск в режиме Конфигуратора — DESIGNER, путь к файловой базе — /F, к серверной — /S, пользователь и пароль — /N и /P, журнал — /Out.

@echo off
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set BASE=/F"D:\Bases\Buh"
set AUTH=/N"Admin" /P""

rem 1. Сохранить конфигурацию в .cf
%V8% DESIGNER %BASE% %AUTH% /DumpCfg "D:\Backup\buh.cf" /Out "D:\Backup\log.txt"

rem 2. Выгрузить базу целиком в .dt
%V8% DESIGNER %BASE% %AUTH% /DumpIB "D:\Backup\buh.dt" /Out "D:\Backup\log.txt"

rem 3. Выгрузить конфигурацию в XML-файлы
%V8% DESIGNER %BASE% %AUTH% /DumpConfigToFiles "D:\Src\buh" /Out "D:\Backup\log.txt"

Для обратных операций служат /LoadCfg (загрузить .cf), /LoadConfigFromFiles (загрузить из XML) и /UpdateDBCfg (обновить конфигурацию базы данных). Их можно ставить в одну строку: сначала загрузка, затем /UpdateDBCfg.

%V8% DESIGNER %BASE% %AUTH% /LoadCfg "D:\Release\buh.cf" /UpdateDBCfg /Out "D:\Release\log.txt"

Пакетный запуск ничего не спрашивает. Если что-то пошло не так, ответ ищите только в файле /Out. Проверяйте его после каждой ночной задачи.

Другие инструменты

  • 🧰 ibcmd — утилита из поставки новых версий платформы, работает с базой без запуска Конфигуратора. Список команд выводит справка утилиты.
  • 🧰 1С:EDT — среда разработки, в которой проект хранится в файлах и естественно ложится в Git.
  • 🧰 Инструменты сообщества на OneScript, например gitsync: переносят историю хранилища в Git-репозиторий по расписанию.

Пароль в bat-файле лежит открытым текстом. Заведите для скриптов отдельного пользователя с нужными правами и ограничьте доступ к папке со скриптом.

Если изменения не сохраняются или не видны пользователям

Диагностика: выберите симптом

Если F7 падает с ошибкой в середине реструктуризации, не пытайтесь «дожать» обновление повторами. Восстановите базу из .dt, сделанного перед обновлением, и разберите журнал. Повторный запуск поверх полупримененной структуры иногда только усложняет восстановление.

Частые вопросы

Можно ли сохранить изменения в конфигураторе, пока пользователи работают в базе?
Сохранить основную конфигурацию можно в любой момент — это не мешает пользователям. Применение через F7 при изменении структуры требует, чтобы в базе никого не было.
Что будет, если закрыть Конфигуратор без сохранения?
Платформа спросит, сохранить ли изменения. Если отказаться, несохраненные правки пропадут. Сохраненные, но не примененные изменения останутся в основной конфигурации до следующего запуска.
Чем Ctrl+S отличается от F7?
Ctrl+S пишет правки в основную конфигурацию, F7 применяет их к базе данных. Пользователи видят изменения только после F7.
Как снять копию только моих доработок, без всей конфигурации?
Удобнее всего вынести доработки в расширение: оно сохраняется отдельным файлом .cfe. Для правок в основной конфигурации сохраните .cf и переносите его через сравнение и объединение.
Нужна ли резервная копия, если я поменял только текст модуля?
Сохраненного .cf до правки обычно достаточно. Полный .dt делайте перед изменениями структуры, загрузкой чужого .cf и обновлением типовой конфигурации.