Изменили конфигурацию — как довести правки до пользователей
Содержание
Чтобы применить изменения в конфигураторе 1С, сохраните конфигурацию (Ctrl+S), а затем выполните Конфигурация → Обновить конфигурацию базы данных или нажмите F7. Пока второй шаг не сделан, правки лежат только в основной конфигурации, и пользователи в режиме 1С:Предприятие их не видят.
Частая ситуация: реквизит добавили, код поправили, нажали «Сохранить» — а в рабочей базе ничего не изменилось. Ниже разобран весь путь от правки модуля до момента, когда изменения работают у всех, включая базу на поддержке, расширения, ошибки обновления и запуск из командной строки.
Две конфигурации внутри одной базы: почему «Сохранить» мало
В каждой информационной базе 1С 8.3 хранятся две конфигурации:
- 🛠 Основная конфигурация — та, что открыта в дереве конфигуратора. Её вы правите и сохраняете.
- 🗄 Конфигурация базы данных — та, с которой реально работают пользователи. По ней платформа строит таблицы и выполняет код.
Сохранение пишет изменения только в основную конфигурацию. Перенос в конфигурацию базы данных — отдельное действие «Обновить конфигурацию базы данных».
Отличие видно прямо в окне конфигуратора: если основная конфигурация изменена и не применена, в заголовке дерева или рядом с ним появляется отметка об изменении, а при попытке запустить Предприятие из конфигуратора выходит вопрос: Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?
| Режим | Что делает | Кто работает |
|---|---|---|
| Конфигуратор | Правка объектов, кода, форм; сохранение и применение изменений; выгрузка и загрузка базы | Разработчик, администратор |
| 1С:Предприятие | Работа с данными по конфигурации базы данных | Пользователи |
Чтобы посмотреть, чем основная конфигурация отличается от конфигурации БД до применения, откройте Конфигурация → Сравнить конфигурации и выберите для сравнения основную конфигурацию и конфигурацию базы данных. Так вы не примените случайную незаконченную правку коллеги.
Как отказаться от правок, которые ещё не применены
Бывает обратная задача: в основной конфигурации накопились лишние или неудачные изменения, а применять их нельзя. Пока не нажата F7, рабочая база их не видит, и откатиться просто.
- Откройте
Конфигурация → Конфигурация базы данных. - Выберите «Вернуться к конфигурации БД».
- Подтвердите действие: основная конфигурация станет копией той, по которой работают пользователи.
Все несохранённые в БД правки при этом пропадут без возможности восстановления. Если часть из них нужна, сначала сохраните основную конфигурацию в файл .cf, а потом переносите нужное через сравнение и объединение.
Там же, в Конфигурация → Конфигурация базы данных, можно открыть конфигурацию БД только для просмотра. Это помогает быстро понять, какой код сейчас реально выполняется у пользователей, не трогая основную конфигурацию.
Как применить изменения в конфигураторе 1С пошагово
Шаг 1. Сделайте резервную копию
Перед обновлением рабочей базы выгрузите её в файл .dt. Это Администрирование → Выгрузить информационную базу. Выгрузка требует, чтобы в базе не было пользователей. Для клиент-серверной базы вместо этого можно сделать бэкап средствами СУБД.
Дополнительно полезно сохранить текущую конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл (получится .cf). Если правка окажется неудачной, откат займёт пару минут.
Шаг 2. Проверьте конфигурацию
Запустите Конфигурация → Проверка конфигурации. Отметьте синтаксический контроль модулей и логическую целостность. Проверка найдёт:
- 🔴 обращения к удалённым реквизитам и процедурам;
- 🔴 синтаксические ошибки в модулях, которые вы не открывали;
- 🟡 ссылки на объекты, которые не включены в нужные подсистемы или роли.
Лучше увидеть это здесь, чем от пользователя через десять минут после обновления.
Шаг 3. Сохраните и обновите конфигурацию БД
- Нажмите
Ctrl+SилиКонфигурация → Сохранить конфигурацию. - Нажмите
F7илиКонфигурация → Обновить конфигурацию базы данных. - Если изменилась структура данных, появится окно «Реорганизация информации» со списком изменений. Просмотрите его и нажмите
Принять. - Дождитесь окончания. Строка состояния внизу покажет ход операции; для большой базы реструктуризация занимает от минут до часов.
Если нажать F5 («Начать отладку») с неприменёнными правками, конфигуратор сам предложит обновить конфигурацию БД. Это удобно на тестовой базе, но на рабочей лучше делать шаги явно.
Шаг 4. Перезапустите сеансы
Пользователи, которые были в базе, продолжают работать в старой версии до перезапуска. Платформа покажет им сообщение об изменении конфигурации и предложит перезапуск. Если после перезапуска у кого-то остался старый интерфейс, запустите клиент с параметром /ClearCache или очистите кеш в окне запуска.
Обновление при работающих пользователях: монопольный режим и динамическое обновление
Монопольный режим нужен не всегда. Он требуется, когда меняется структура хранения данных: добавлен реквизит, табличная часть, новый объект, изменены индексы. Платформа должна перестроить таблицы, и в этот момент в базе не должно быть других сеансов.
Если пользователи в базе, а правка затрагивает только модули, формы или макеты, конфигуратор предложит динамическое обновление. Изменения применятся, текущие сеансы доработают на старой версии, новые сеансы запустятся уже на новой.
Динамическое обновление удобно, но рискованно для логики: часть пользователей работает по старому коду, часть — по новому. Если правка меняет алгоритм проведения или обмена, лучше дождаться, пока все выйдут.
Как освободить базу для монопольного режима:
- Предупредите пользователей и назначьте время.
- В типовых конфигурациях на БСП используйте блокировку сеансов: в разделе
Администрированиеоткройте настройки поддержки и обслуживания и найдите блокировку работы пользователей. Задайте время начала и текст сообщения. - В клиент-серверном варианте сеансы видны в консоли администрирования серверов 1С; завершать их принудительно стоит только после предупреждения, иначе пользователи потеряют несохранённые документы.
Для больших клиент-серверных баз есть фоновое обновление: Конфигурация → Фоновое обновление конфигурации базы данных. Основная часть реструктуризации идёт, пока пользователи работают, а монопольный доступ нужен лишь на короткий завершающий этап.
Изменения в конфигурации на поддержке и в расширениях
Типовая конфигурация на поддержке
Свежая типовая база (Бухгалтерия, ЗУП, УТ) стоит на поддержке поставщика, и объекты в ней закрыты для правки. Чтобы менять их:
- Откройте
Конфигурация → Поддержка → Настройка поддержки. - Нажмите «Включить возможность изменения».
- Для нужных объектов выберите режим «Объект поставщика редактируется с сохранением поддержки».
Режим «Снят с поддержки» ставьте только осознанно: такой объект перестанет обновляться при выходе новых релизов, и правки поставщика в нём придётся переносить вручную.
После правок порядок тот же: сохранить и F7. А при следующем обновлении релиза через Конфигурация → Поддержка → Обновить конфигурацию откроется окно сравнения и объединения, где ваши изменения нужно согласовать с изменениями поставщика.
Правки через расширение
Для доработок типовых баз практики предпочитают расширения (доступны с платформы 8.3.6): основная конфигурация остаётся на полной поддержке, и обновления релизов ставятся без объединения.
Применение изменений расширения — отдельный шаг:
- Откройте
Конфигурация → Расширения конфигурации. - Выберите расширение и откройте его конфигурацию.
- Внесите правки, затем в окне расширения выполните обновление конфигурации
базы данных (
F7).
Если расширение загружено из файла .cfe, загрузка и применение тоже разные действия: после загрузки нужно обновить конфигурацию БД, иначе расширение не заработает. Расширение можно подключать и в режиме Предприятия, через Администрирование → Печатные формы, отчеты и обработки → Расширения, но конфигуратор нужен для правки самого кода.
Проверка и отладка после применения изменений
Правильный порядок — сначала тестовая копия, потом рабочая база. Разверните копию из .dt через Администрирование → Загрузить информационную базу, примените изменения там и проверьте сценарии.
Отладка в конфигураторе
- 🐞
F9ставит точку останова на строке модуля. - 🐞
F5запускает Предприятие в режиме отладки, выполнение остановится на точке. - 🐞 В остановке смотрите значения переменных через «Табло» или наведением курсора, шаг выполнения —
F10иF11.
Для клиент-серверной базы отладка серверного кода требует, чтобы сервер 1С был запущен с разрешённой отладкой (ключ -debug у агента сервера). Без этого точки в серверных процедурах не сработают, хотя клиентские будут.
Что проверить вручную
Последний пункт часто забывают. Новый реквизит без прав в ролях пользователь просто не увидит, а изменённый объект может перестать выгружаться в обмене.
Ошибки при обновлении конфигурации базы данных
Если реструктуризация прервалась посередине (отключили свет, упал сервер), не пытайтесь «дожать» её на рабочей базе вслепую. Восстановите базу из резервной копии, сделанной на шаге 1, и повторите обновление.
Автоматизация: командная строка и хранилище конфигурации
Обновление конфигурации БД из командной строки
Для регулярных выкладок удобно запускать конфигуратор пакетно. Пример для файловой базы:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DisableStartupDialogs /UpdateDBCfg /Out"D:\Logs\update.log"
Для клиент-серверной базы вместо /F указывают /S"server\base". Номер версии платформы в пути подставьте свой.
Полезные ключи:
| Ключ | Что делает |
|---|---|
/UpdateDBCfg | Обновляет конфигурацию базы данных |
/LoadCfg "файл.cf" | Загружает конфигурацию из файла в основную |
/DumpIB "файл.dt" | Выгружает информационную базу |
/DumpCfg "файл.cf" | Сохраняет конфигурацию в файл |
/Out "файл.log" | Пишет результат в журнал |
Типовой сценарий ночной выкладки: /DumpIB в архив → /LoadCfg с новой версией → /UpdateDBCfg → проверка журнала. Пароль в bat-файле лучше не хранить открытым текстом; используйте отдельного пользователя с минимальными правами и ограниченный доступ к самому файлу.
Хранилище конфигурации и контроль версий
Когда над базой работают несколько разработчиков, подключите хранилище: Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. Объекты захватываются перед правкой и помещаются обратно с комментарием, история версий сохраняется.
Учтите, что помещение в хранилище не меняет рабочую базу. Цепочка такая:
- Разработчик помещает изменения в хранилище.
- В рабочей базе выполняют
Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. - Затем
F7— и только теперь изменения у пользователей.
Командный режим умеет и это: ключ /ConfigurationRepositoryUpdateCfg вместе с параметрами подключения к хранилищу, а после него /UpdateDBCfg. Для работы через Git конфигурацию выгружают в XML-файлы (Конфигурация → Выгрузить конфигурацию в файлы) или ведут разработку в 1C:EDT.
Частые вопросы
Можно ли откатить изменения после F7?
Конфигурация → Загрузить конфигурацию из файла) и снова F7, либо восстановление всей базы из .dt.