Сохранение и применение доработок в Конфигураторе 1С 8.3
Содержание
Чтобы сохранить изменения в конфигураторе 1С, нужны два действия. Первое — Конфигурация → Сохранить конфигурацию (Ctrl+S): доработки записываются в основную конфигурацию. Второе — Конфигурация → Обновить конфигурацию базы данных (F7): только после него изменения видят пользователи в режиме «1С:Предприятие».
Типичная ситуация: программист добавил реквизит в документ, нажал «Сохранить», закрыл Конфигуратор. Утром бухгалтер звонит: реквизита нет. Причина почти всегда одна — конфигурацию сохранили, но не применили к базе. Порядок одинаков для любой конфигурации на платформе 8.3: Бухгалтерии, ЗУП, УТ или самописной.
Две конфигурации внутри одной базы: что именно сохраняется
В каждой информационной базе хранятся две конфигурации:
- 🛠 Основная конфигурация — та, которую вы правите в дереве Конфигуратора. Команда «Сохранить» пишет изменения сюда.
- 🗄 Конфигурация базы данных — та, по которой реально работают пользователи. Она меняется только командой «Обновить конфигурацию базы данных».
Пока вы не нажали F7, основная конфигурация и конфигурация БД расходятся. Это нормально: можно сохранить промежуточный результат вечером и применить его утром, когда все проверено.
Пошагово: от правки до работающей базы
- Откройте дерево:
Конфигурация → Открыть конфигурацию. - Если конфигурация типовая и стоит на поддержке, без разрешения на изменение объекты будут закрыты. Включается это в
Конфигурация → Поддержка → Настройка поддержки, кнопка «Включить возможность изменения». - Внесите правки: модуль, форму, реквизит, макет.
- Нажмите Ctrl+S или
Конфигурация → Сохранить конфигурацию. Изменения записаны в основную конфигурацию. - Нажмите F7 или
Конфигурация → Обновить конфигурацию базы данных. - Если меняется структура данных, откроется окно «Реорганизация информации» со списком изменений. Прочитайте его и нажмите «Принять».
- Пользователи, которые работали в базе, перезапускают программу и получают новую версию.
Нажать F7 можно и без отдельного Ctrl+S. Платформа сама предложит сохранить основную конфигурацию перед обновлением.
Как вернуться назад до применения
Если правки оказались лишними, а F7 вы еще не нажимали, выполните Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Основная конфигурация заменится той, что работает у пользователей. Все несохраненные и сохраненные, но не примененные доработки пропадут.
Посмотреть разницу перед откатом можно через Конфигурация → Сравнить конфигурации: выберите для сравнения основную конфигурацию и конфигурацию базы данных. Отчет покажет каждый измененный объект.
Обновление конфигурации базы данных: что происходит при F7
При обновлении платформа сверяет структуру двух конфигураций. Дальше возможны два сценария.
| Что изменили | Что сделает платформа | Нужен ли монопольный доступ |
|---|---|---|
| Только код модулей, формы, макеты | Обновит конфигурацию без перестройки таблиц | Обычно нет: возможно динамическое обновление |
| Реквизиты, табличные части, новые объекты, измерения регистров | Реструктуризирует таблицы базы, покажет «Реорганизацию информации» | Да, без других сеансов |
Монопольный режим и динамическое обновление
Когда структура меняется, Конфигуратору нужен монопольный доступ к базе. Если в ней кто-то работает, платформа сообщит, что установить монопольный режим не удалось, и предложит динамическое обновление.
При динамическом обновлении работающие сеансы продолжают жить на старой версии конфигурации. Новые сеансы откроются уже с изменениями. Пользователи видят сообщение, что конфигурация изменилась, и предложение перезапустить программу.
Динамическое обновление — инструмент для срочной правки кода, а не для регулярной работы. Старые и новые сеансы какое-то время работают по разным версиям, и при серьезных изменениях это приводит к ошибкам. Структурные изменения применяйте в окно обслуживания, когда в базе никого нет.
Как освободить базу перед обновлением
- Посмотрите, кто подключен:
Администрирование → Активные пользователив Конфигураторе. - Предупредите людей и назначьте время.
- В типовых конфигурациях на БСП есть обработка «Блокировка работы пользователей» в разделе
Администрирование(в группе обслуживания). Она запрещает новые входы и выводит предупреждение работающим. - Для серверной базы можно также установить блокировку начала сеансов в консоли администрирования кластера.
Принудительное завершение сеансов обрывает работу людей: несохраненные документы пропадут. Делайте это только после предупреждения и вне рабочего времени.
Перед обновлением структуры рабочей базы сделайте резервную копию: Администрирование → Выгрузить информационную базу в файл .dt. Сбой во время реструктуризации — редкость, но восстанавливаться без копии очень дорого.
Изменения через хранилище конфигурации
Когда над базой работают двое программистов и больше, правки сохраняют через хранилище. Все команды собраны в Конфигурация → Хранилище конфигурации.
Здесь порядок другой: объект нельзя изменить, пока вы его не захватили. Ctrl+S сохраняет изменения только в вашей локальной основной конфигурации, в хранилище они не попадают.
Цикл работы с объектом
Хранилище конфигурации → Обновить конфигурацию из хранилища— получите свежую версию от коллег.- Захватите нужные объекты: в контекстном меню объекта в дереве или через окно хранилища выберите «Захватить в хранилище».
- Внесите и проверьте правки, сохраните конфигурацию (Ctrl+S), обновите свою базу (F7) и протестируйте.
- Выберите «Поместить в хранилище». Напишите внятный комментарий: номер задачи и что изменено.
- Если коллеге понадобится тот же объект сразу, снимите флажок «Оставлять объекты захваченными».
Чем захват отличается от помещения
| Команда | Что делает |
|---|---|
| Захватить в хранилище | Блокирует объект за вами, другие только читают |
| Поместить в хранилище | Отправляет ваши изменения, создает новую версию |
| Отменить захват | Снимает блокировку, локальные правки объекта откатываются к версии хранилища |
| История хранилища | Список версий с авторами и комментариями, можно сравнить и откатить |
Рабочая база (та, где работают бухгалтеры) обычно не подключается к хранилищу. В нее изменения приносят файлом .cf или через сравнение и объединение. Так случайный «Поместить» не превратится в обновление боевой базы.
Сравнение и объединение: перенос доработок без потерь
Когда доработки сделаны в копии базы, их нужно перенести в рабочую. Загружать .cf целиком рискованно: если в рабочей базе были свои правки, их сотрет. Безопаснее объединение.
Как объединить конфигурации
- В рабочей базе сохраните текущую конфигурацию в файл — это точка отката:
Конфигурация → Сохранить конфигурацию в файл. - Выберите
Конфигурация → Сравнить, объединить с конфигурацией из файлаи укажите .cf с доработками. - В окне сравнения отметьте флажками только те объекты, которые нужно перенести.
- Для каждого спорного объекта выберите режим объединения. Можно взять объект из файла целиком или объединить его с приоритетом основной конфигурации либо файла. Для модулей доступно объединение по отдельным процедурам.
- Нажмите «Выполнить». Изменения попадут в основную конфигурацию.
- Сохраните (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, сделанного перед обновлением, и разберите журнал. Повторный запуск поверх полупримененной структуры иногда только усложняет восстановление.