Замки на объектах и блокировки базы в конфигураторе 1С 8.3: откуда берутся и как их снять
Содержание
Чтобы убрать замок с объектов в конфигураторе 1С 8.3, откройте Конфигурация → Поддержка → Настройка поддержки, нажмите «Включить возможность изменения» и выберите правило «Объект поставщика редактируется с сохранением поддержки». Замок сменится значком редактирования, и объект можно будет менять. Если замок висит из-за хранилища конфигурации, объект нужно не снимать с поддержки, а захватить в хранилище.
Бывает и третий «замок» — когда в конфигуратор не пускает сама база: она занята пользователями, включена блокировка сеансов или остался зависший процесс. Ниже разобраны все три случая: как понять, какой у вас, и как снять блокировку безопасно, не сломав обновления типовой конфигурации.
Какой замок у вас: диагностика по симптомам
Сначала определите источник. От этого зависит, что делать: снимать поддержку, захватывать объект или освобождать базу.
| Что видите | Источник | Где решается |
|---|---|---|
| Серые замки у объектов в дереве, свойства недоступны для правки | Конфигурация на поддержке поставщика | Настройка поддержки |
| Замки у объектов, в меню есть пункт хранилища, внизу дерева — отметки захвата | Конфигурация подключена к хранилищу | Захват в хранилище |
| Конфигуратор не открывается: база занята или начало сеансов запрещено | Блокировка базы | Пользователи, консоль кластера, параметр /UC |
| Сохранить или обновить конфигурацию БД нельзя, хотя объекты редактируются | Нет монопольного доступа для изменения структуры | Завершение сеансов или динамическое обновление |
Как снять замок поддержки в конфигураторе
Типовая конфигурация (Бухгалтерия, ЗУП, УТ) по умолчанию стоит на поддержке. Поставщик — фирма-разработчик — запрещает менять свои объекты, чтобы обновления ставились автоматически. Отсюда и замки.
Шаг 1. Включите возможность изменения
- Откройте конфигуратор и дерево конфигурации (
Конфигурация → Открыть конфигурацию). - Перейдите в
Конфигурация → Поддержка → Настройка поддержки. - Нажмите «Включить возможность изменения».
- Программа спросит правило для объектов по умолчанию. Выберите «Объект поставщика редактируется с сохранением поддержки».
- Подтвердите. Платформа обработает дерево — на больших конфигурациях это занимает несколько минут.
Включить возможность изменения можно, а вернуть конфигурацию в исходное «закрытое» состояние — только загрузкой типовой поставки. Сделайте выгрузку .dt или хотя бы .cf до этого шага.
Шаг 2. Выберите правило для конкретного объекта
После включения у каждого объекта в окне настройки поддержки есть правило. Двойной щелчок по колонке правила открывает выбор:
| Правило | Значок в дереве | Что будет при обновлении |
|---|---|---|
| Объект поставщика не редактируется | Замок | Объект обновляется автоматически, править нельзя |
| Редактируется с сохранением поддержки | Замок с карандашом | Можно править; при обновлении изменения поставщика и ваши объединяются |
| Снят с поддержки | Без замка | Обновления поставщика к объекту не применяются, всё на вас |
Ставьте «с сохранением поддержки» только на те объекты, которые реально будете менять. Остальное пусть остаётся закрытым — так обновления пройдут быстрее и с меньшим числом конфликтов.
Шаг 3. Сохраните и обновите конфигурацию базы данных
Изменения применяются командой Конфигурация → Обновить конфигурацию базы данных (F7). Если меняли только модули и формы, платформа часто предложит динамическое обновление — без выгона пользователей. Если менялась структура данных (реквизиты, табличные части), понадобится монопольный режим.
Правка печатной формы, нового отчёта или пары строк в модуле обычно не требует снятия замка вообще. Создайте расширение (Конфигурация → Расширения конфигурации): оно не трогает основную конфигурацию, и поддержка остаётся полностью закрытой.
Полное снятие с поддержки — когда оно оправдано
В той же настройке поддержки есть кнопка «Снять с поддержки». После неё замков нет ни на одном объекте, но и автоматического обновления больше нет: каждый новый релиз придётся ставить через сравнение и объединение. Это оправдано для глубоко переписанных нетиповых решений. Для типовой бухгалтерии почти всегда хватает правила «с сохранением поддержки» плюс расширений.
Замки хранилища конфигурации: захват и освобождение объектов
Если базу дорабатывают несколько программистов, конфигурация подключена к хранилищу. Тогда замок означает другое: объект не захвачен вами, и платформа не даст его изменить, даже если поддержка открыта.
Как снять такой замок:
- Щёлкните объект правой кнопкой мыши.
- Выберите «Хранилище → Захватить в хранилище».
- В окне захвата отметьте объект (и при необходимости подчинённые) и нажмите «ОК».
- После правки — «Поместить в хранилище» с комментарием, захват снимется.
Значки в дереве различаются: свой захват отмечается зелёной галочкой, чужой — красным значком. Чужой захват вы не отмените своими правами.
Если коллега уволился или в отпуске, а объект захвачен им, войдите в хранилище под его учётной записью и выполните «Отменить захват». Пароль сбрасывает администратор хранилища в окне администрирования. Его незафиксированные изменения при этом пропадут — заранее договоритесь, нужны ли они.
Ещё один вариант — отключиться от хранилища (Конфигурация → Хранилище конфигурации → Отключиться от хранилища). Замки исчезнут, но конфигурация станет «отвязанной»: свои изменения потом придётся переносить сравнением.
База заблокирована: монопольный режим и запрет начала сеансов
Здесь «замок» уже не на объектах, а на самой информационной базе. Монопольный доступ нужен не всегда — только для обновления структуры, загрузки .dt, тестирования и исправления. Для правки модулей он не обязателен.
Найти, кто держит базу
- 🔎 В конфигураторе:
Администрирование → Активные пользователи— список сеансов с компьютером и приложением. - 🖥️ В клиент-серверном варианте: консоль администрирования серверов 1С → кластер → информационная база → «Сеансы». Там же видны фоновые задания.
- ⌨️ Из командной строки:
rac session list --cluster=<uuid>покажет все сеансы кластера.
Снять блокировку штатными средствами
Если в 1С включён запрет работы пользователей, при входе появится сообщение о блокировке. Снять её можно тремя способами.
Из самой программы. В Бухгалтерии 8.3 откройте раздел «Администрирование», группу обслуживания, ссылку «Блокировка работы пользователей». Снимите флажок блокировки и запишите.
Кодом разрешения. При установке блокировки задаётся код разрешения. Запустите конфигуратор с ключом /UC:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UC1234
Для файловой базы вместо /S используется /F"D:\Bases\buh". Номер платформы в пути подставьте свой.
Из консоли кластера. Откройте свойства информационной базы и снимите флажок «Блокировка начала сеансов включена». Там же отключается блокировка регламентных заданий, если её поставили на время обслуживания.
Освободить базу для монопольного режима
- Предупредите пользователей: при принудительном завершении оборвутся их сеансы, несохранённые документы пропадут.
- Установите блокировку сеансов на время работ — так новые пользователи не зайдут, пока вы обновляетесь.
- Завершите оставшиеся сеансы в консоли кластера («Удалить» по сеансу) или командой
rac session terminate --cluster=<uuid> --session=<uuid>. - Если сеанс не завершается — проверьте фоновые задания и регламентные задания базы.
- После работ снимите блокировку.
Конфигурации на БСП поддерживают запуск с параметрами /C"ЗавершитьРаботуПользователей" и /C"РазрешитьРаботуПользователей" вместе с кодом /UC — это удобно для ночных скриптов.
Файловая база: зависшие процессы и служебные файлы
В файловом варианте нет кластера и консоли. Базой «владеет» тот процесс, который открыл файл 1Cv8.1CD. Типичная история: пользователь закрыл окно, а процесс 1cv8.exe повис и держит файл.
Порядок действий:
- Посмотрите «Активных пользователей» в конфигураторе — если там пусто, а база занята, ищите процесс.
- На каждом компьютере, где работали с базой, откройте диспетчер задач и найдите
1cv8.exeили1cv8c.exe. - Если база лежит в сетевой папке, на сервере откройте
Управление компьютером → Общие папки → Открытые файлы. Там видно, с какого компьютера открыт1Cv8.1CD, и файл можно закрыть. - После закрытия процессов попробуйте войти снова.
Принудительное закрытие процесса или файла обрывает работу пользователя. Делайте это, когда в базе никого не осталось, или предупредив людей.
В каталоге базы, кроме 1Cv8.1CD, бывают временные файлы, например 1Cv8tmp.1CD. Если все процессы закрыты, а база всё равно не открывается, перенесите такие файлы в отдельную папку (не удаляйте сразу) и повторите вход.
Файл 1Cv8.1CD не трогайте ни при каких обстоятельствах — в нём все данные. Перед любыми манипуляциями с каталогом скопируйте его целиком.
Клиент-серверный вариант: зависшие блокировки на SQL Server и PostgreSQL
Иногда сеанс в 1С уже удалён, а соединение с СУБД продолжает держать блокировку таблиц. Пользователи видят ошибки ожидания на блокировке, а обновление конфигурации БД зависает.
Сначала всегда пробуйте штатное завершение сеанса в консоли кластера. Запросы к СУБД — крайняя мера.
SQL Server
Найти, кто кого блокирует:
SELECT r.session_id,
r.blocking_session_id,
r.wait_type,
r.wait_time,
DB_NAME(r.database_id) AS db_name
FROM sys.dm_exec_requests AS r
WHERE r.blocking_session_id <> 0;
Колонка blocking_session_id — тот, кто держит блокировку. Подробности по нему даёт EXEC sp_who2; (хост, программа, база). Завершить соединение:
KILL 57; -- номер из blocking_session_id
PostgreSQL
SELECT pid, usename, client_addr, state, query_start
FROM pg_stat_activity
WHERE datname = 'buh' AND state <> 'idle';
SELECT pg_terminate_backend(12345); -- pid зависшего соединения
KILL и pg_terminate_backend откатывают незавершённую транзакцию. Если это было проведение документа или закрытие месяца, его придётся повторить. Рабочий процесс 1С может пересоздать соединение — это нормально.
Не правьте служебные таблицы 1С в базе SQL напрямую (например, чтобы «сбросить флаг блокировки»). Платформа не ожидает таких изменений, и база может перестать открываться.
Как не возвращаться к замкам снова
Большую часть блокировок можно предупредить настройками и регламентом.
- 🧩 Доработки — в расширения. Поддержка основной конфигурации остаётся закрытой, обновления ставятся штатно, замки снимать не нужно.
- 📝 Правило «с сохранением поддержки» точечно. Открывайте только изменённые объекты, а не всю конфигурацию.
- 🔐 Хранилище с дисциплиной. Помещать изменения в конце дня, не держать захват неделями.
- 🌙 Окно обслуживания. Обновления и тестирование — ночью или в выходные, с блокировкой сеансов и кодом разрешения.
- 🤖 Скрипт по расписанию. Пакетный файл с
/C"ЗавершитьРаботуПользователей", затем обновление, затем/C"РазрешитьРаботуПользователей"— в планировщике Windows. - 🔄 Перезапуск зависших процессов. В свойствах рабочего сервера задайте ограничения памяти, чтобы проблемные процессы перезапускались автоматически.
Пример ночного скрипта для серверной базы:
set EXE="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"
set IB=/S"srv1c\buh" /N"Администратор" /P"пароль"
%EXE% ENTERPRISE %IB% /C"ЗавершитьРаботуПользователей" /UC1234
timeout /t 300
%EXE% DESIGNER %IB% /UC1234 /UpdateDBCfg /Out"D:\logs\update.log"
%EXE% ENTERPRISE %IB% /C"РазрешитьРаботуПользователей" /UC1234
Пауза в 300 секунд даёт пользователям время сохранить работу после предупреждения. Пароль в открытом виде в bat-файле — риск: храните скрипт в папке с доступом только для администратора.
Частые вопросы
Слетят ли мои доработки после обновления, если включить «с сохранением поддержки»?
Можно ли вернуть замок обратно на объект?
Почему замки появились после загрузки .cf?
.cf заново ставит конфигурацию на поддержку. Для доработанной базы используйте обновление через сравнение и объединение, а не загрузку.Влияет ли снятие с поддержки на лицензию или техподдержку 1С?
Конфигуратор пишет, что база занята, а пользователей нет. Что проверить?
1cv8.exe и открытые файлы в сетевой папке.