Случается, что при работе с программой 1С возникает подобная ошибка — ошибка блокировки данных:
Чаще всего данное предупреждение конфигуратора возникает при выгрузке информационной базы или при обновлении конфигурации 1С. Для того чтобы исправить сложившуюся ситуацию и запустить работу конфигурации, в первую очередь необходимо выяснить причины ошибки исключительной блокировки информационной базы. Это может быть одна из следующих причин:
- Пользователи не вышли из системы 1С
Для начала необходимо посмотреть все активные сеансы пользователей. Активных пользователей можно посмотреть в конфигураторе 1С так: нажать кнопку Администрирование, затем выбрать Активные пользователи. И попросить их выйти из системы. Также информацию о блокирующих сеансах обычно можно получить из самого окна с ошибкой.
- У пользователя запущена база 1С, но не введен пароль
В таком случае у пользователя остается висеть подобное окно:
Сеанс такого пользователя найти сложнее, так как он не отображается в окошке Активные пользователи. Более того, информация об ошибке не содержит какой-либо полезной информации:
Такого рода ошибка характерна для файловых информационных баз. Необходимо найти подобные процессы с помощью диспетчера задач, и, используя его же, принудительно их завершить.
- Зависшие сеансы
Все пользователи вышли, а сообщение об ошибке остается прежним, значит, скорее всего, есть зависшие сеансы. Для таких зависших сеансов требуется принудительное завершение. Это рекомендуется делать аккуратно, прибегая к этому методу только тогда, когда не получаются все остальные.
Способы завершения зависших сеансов в файловом варианте
- С помощью Диспетчера задач. При завершении сеансов информация у пользователей, работающих в системе, может не сохраниться, и важные данные могут быть потеряны. Завершить сеансы данным способом можно так: вызвать диспетчер задач (Ctrl+Alt+Delete), затем нажать снять задачу, затем завершить процесс. Процессы 1С называются 1Сv8.exe или 1Сv8c.exe.
- Перезагрузить сервер, на котором установлена файловая система 1С
Способы завершения зависших сеансов в клиент-серверном варианте
В первую очередь, необходимо попробовать удалить сеансы через консоль администрирования серверов, найдя в ней нужную базу и зайдя в меню Сеансы*.
- Выделить нужные зависшие сеансы и удалить их через пункт контекстного меню;
*Если в меню Сеансы нет сеансов, их стоит поискать в меню Соединения. И попробовать аналогично удалить.
- Если не удалось удалить сеансы, используя консоль, то необходимо перезапустить службу Агент сервера 1С:Предприятия 8.3.
- Если все предыдущие способы не решили проблему и зависшие сеансы так и остались на своих местах, то в качестве крайней меры необходимо перезагрузить сервер.
Зависшие фоновые задания в клиент-серверном варианте
В клиент-серверном варианте частым источником возникновения ошибки исключительной блокировки информационной базы являются повисшие фоновые задания.
Неприятной особенностью этого явления также является и то, что зачастую их очень тяжело удалить. Обычно эти задания можно увидеть в консоли администрирования на вкладке Соединения, но при попытке их удаления они появляются вновь.
Чтобы их удалить можно попробовать следующие способы:
- Удалить их несколько раз подряд и проверить, не появляются ли они вновь.
- В свойствах базы установить флаг Блокировка регламентных заданий включена, и после этого еще раз попробовать удалить зависшее задание.
Таким образом, при возникновении такой проблемы, как ошибка исключительной блокировки информационной базы, главным шагом становится выяснение причины возникновения проблемы, поскольку выбор способа ее устранения, в частности, среди описанных в данной статье, зависят от этого. То есть не стоит торопиться перегружать сервер сразу же, для начала надо попробовать решить проблему более «гуманным» образом.
В этой статье мы рассмотрим одну из распространённых ошибок в 1С, которая характеризуется появлением сообщения «Ошибка исключительной блокировки информационной базы». Вы узнаете, как можно быстро это исправить и продолжить пользоваться программой.
1С является незаменимым помощником в большинстве организаций — от небольшого офиса до крупной корпорации. Данная программа охватывает множество структур бизнеса и значительно упрощает работу сотрудникам. Но для того чтобы эффективно пользоваться этим инструментом, нужно иметь опыт и умение решать проблемы и ошибки.
Появление ошибок в 1С является нормальным рабочим процессом. Но это не из-за того, что программа как-то плохо сделана. Большинство ошибок возникает от того, что пользователь что-то недоглядел или пропустил. Поэтому важно уметь быстро и оперативно диагностировать и решать такие проблемы. Особенно если работа не терпит отлагательств.
Содержание
- От чего возникает «Ошибка исключительной блокировки информационной базы»
- Во время работы с базой есть активные сеансы пользователей
- У пользователя запущенна база, но пароль не введён
- Зависшие сеансы в 1С
- Зависшие фоновые процессы
От чего возникает «Ошибка исключительной блокировки информационной базы»
Данное сообщение может появиться во время обновления или выгрузки базы данных 1С. Сообщение говорит о том, что база данных программы заблокирована для дальнейшего использования. Значит, для того, чтобы эту проблему устранить, необходимо выяснить, на каком уровне заблокирована база и как её разблокировать. Возможные причины мы и рассмотрим ниже.
Во время работы с базой есть активные сеансы пользователей
Когда происходит выгрузка или обновление базы 1С, все пользователи должны выйти из своего аккаунта. Если же они не вышли, то появится такая ошибка. В некоторых случаях может быть указанно, из-за каких именно пользователей появилась ошибка.
Список пользователей, которые сейчас не вышли из 1С, можно увидеть в разделе «Администрирование», в подразделе «Активные пользователи». Либо в самом сообщении об ошибке.
Чтобы решить проблему в таком случае, нужно просто попросить выйти этих пользователей из 1С, сохранив изменения. А затем, после завершения процедуры с базой данных им можно будет снова войти.
Подробнее: На сервере 1С: Предприятия произошла неисправимая ошибка. Приложение будет закрыто.
У пользователя запущенна база, но пароль не введён
Сложность этой проблемы в том, что в ошибке исключительной блокировки информационной базы не будет указанно имя того пользователя, по вине которого это произошло. А самого этого пользователя не будет видно в списке активных.
Чтобы решить данную проблему, можно самостоятельно поискать этих пользователей, и попросить их ввести пароль, чтобы войти, а затем выйти, закрыв базу.
Но если найти пользователя не удаётся, то можно попытаться отыскать его процесс в диспетчере задач и завершить его. Для запуска диспетчера задач, нажмите правой кнопкой мышки на панель задач, а затем «Диспетчер задач» (или можно просто нажать сочетание клавиш Ctrl + Alt + Del).
Найдите процессы с названиями 1Cv8.exe и/или 1Cv8c.exe, и выделите мышкой.
Затем внизу диспетчера нажмите «Снять задачу».
Будьте осторожны, при таком завершении работы пользователя, данные внесённые им во время работы в программу 1С, которые он не успел сохранить, окажутся безвозвратно потеряны.
Ошибка исключительной блокировки информационной базы такого характера возникает в файловых базах данных.
Зависшие сеансы в 1С
Если вы убедились в том, что все пользователи вышли из своих учётных записей, а также нет пользователей, которые запустили базу, но не ввели пароль, то проблема может быть в зависших сеансах. Определить, какой конкретно пользователь завис, будет также затруднительно, так как в активных пользователях он может не отображаться.
Поэтому решить данную проблему можно также с помощью диспетчера задач — найти процесс пользователя и принудительно его завершить, как было описано выше. Опасаться за не сохранения внесённых данных здесь уже не нужно, так как они всё равно не сохранятся, раз сеанс завис.
Вам может быть это интересно: Соединение с сервером баз данных разорвано администратором в 1С.
Зависшие фоновые процессы
Зависать могут не только сеансы пользователей, но и процессы, работающие в фоне. Особенностью данной причины является то, что название зависшего процесса также не отображается в сообщении об ошибке, поэтому определить его бывает затруднительно.
Список фоновых заданий можно увидеть в разделе «Процессы» в консоли администрирования 1С. И если попытаться удалить их, то пользователь может быть неприятно удивлён тем, что они появляются снова и опять мешают выгрузке базы. Здесь можно порекомендовать лишь попробовать закрыть такие задачи несколько раз. А если это не помогает, то в свойствах задачи включить опцию «Блокировка регламентных заданий включена», а затем снова попытаться закрыть.
Для того, чтобы успешно решить проблему ошибки исключительной блокировки информационной базы в 1С, следует попытаться установить её причину. Иногда её видно в самом сообщении об ошибке, когда, например, оно отображает имя активных пользователей, мешающих выгрузке или обновлению базы. А в других случаях приходится искать проблему самостоятельно. Если вам не удаётся устранить эту ошибку своими силами, то следует обратиться в службу поддержки сервиса, который занимается обслуживанием 1С на вашем предприятии.
Содержание:
1. Ошибка исключительной блокировки информационной базы
При попытке обновления ИБ в 1С или при попытке выгрузки информационной базы 1С из конфигуратора, может возникать довольно частая ошибка «Ошибка исключительной блокировки информационной базы».
Данная ошибка может возникать по многим причинам, но смысл ее один – какой-то процесс, использующий данную информационную базу 1С Предприятие в этот момент, не дает монопольного доступа к базе 1С для совершения нужных действий, так как есть вероятность изменения данных в базе в этот момент.
Обновление базы 1С, к примеру, можно сделать и динамически. В таком случае для пользователя, что работает в базе в момент обновления, конфигурация останется прежней, а вот для пользователей, что вошли после обновления либо если вышеуказанный пользователь выйдет и заново зайдет в базу, конфигурация будет уже обновленной. Но динамическое обновление 1С снижает производительность работы базы, так как нужно держать в памяти отдельно каждое такое обновление. Но если изменилась структура данных информационной базы 1С, например, добавили новый реквизит объекта, то динамическое обновление 1С будет недоступно.
2. Причины блокировки базы 1С
Самая простая причина блокировки базы 1С – в данный момент в базе работают пользователи. В таком случае нужно попросить их выйти из базы на время. Просмотреть список активных пользователей в базе в данный момент можно, зайдя во вкладку «Администрирование» конфигуратора, пункт «Активный пользователи». Для принудительного завершения сеанса пользователя можно использовать консоль администрирования 1С. Выбрав нужную базу, можно выделить всех активных пользователей и завершить принудительно их сеансы. Второй причиной блокировки базы 1С могут являться фоновые задания, который появляются и исчезают в определенные моменты.
В таком случае нужно либо выбрать момент, когда не будет активных фоновых заданий, либо через консоль администрирования 1С зайти в свойства информационной базы 1С Предприятие и поставить галочку на пункте «Блокировка регламентных заданий включена». Таким же способом через консоль можно бороться с «зависшими» сеансами пользователей и регламентных заданий.
Третьей причиной может стать открытое окно ввода имени и пароля пользователя информационной базы 1С. В этом случае пользователя не будет видно в списке активных пользователей.
Специалист компании «Кодерлайн»
Александр Суворов
Перейти к контенту
Бывает, работая в продукте 1С пользователи сталкиваются с ошибкой блокировки информационной базы.
В основном подобная проблема возникает в результате выгрузки базы данных или обновлении программы. При решении любой жизненной проблемы в первую очередь необходимо определить причины, что бы не «лечить» симптомы «болезни».
Причиной обозначенной ошибки могут быть:
Ошибка исключительной блокировки информационной базы 1С 8.3
Причины ошибки
- Юзер не вышел из системы 1С
- Проверим сеансы пользователей, находящихся в сети, активных юзеров смотрим в конфигураторе 1С. При выявлении пользователей — необходимо заставить или попросить выйти из сеанса. В вылетевшем окне с ошибкой также написана информация об активных пользователях.
- Запущен 1С но не совершен вход в систему.
- В данном случае обнаружить кто включил программу но не зашел будет сложнее. Такой пользователь не считается активным и вошедшим в 1С. Также в отчете об ошибке не отображается включенная программа.
- Проблема решается путем прекращения процессов в диспетчере (вызывается при помощи alt+ctrl+del). Ошибка возникает только в случае формирования базы данных при помощи файлов.
- У одного из пользователей завис сеанс
- Случается, когда программа на всех компьютерах закрыта, работа с 1С прекращена, однако на одном из ПК произошло зависание. Дальнейшие действия совершать только после совершения ранее описанных способов решения задачи.
- Опасносить метода в том, что последние данные не будут сохранены. Важная информация может быть удалена. Что бы справиться с задачей, нужно открыть диспетчер задач и закрыть процессы с именем 1cv8.exe, 1cv8c.exe
- Перезагрузка центральной системы, где установлено 1С программное обеспечение
- Прекратить зависший сеанс можно при помощи административной панели, как указано на рисунке:
- Во вкладке «сеансы» последних может не оказаться, тогда стоит поискать в меню «соединения»
- При неудачной попытке завершить действующие сеансы, следует перезапустить службу «Агент сервера 1С»
- В случае отсутствия результатов, после всех произведенных действий — перезагрузите сервер.
- Зависание заданий
- Программа 1С известна также возникновением проблем в связи с зависшими заданиями базы данных
- Главный минус указанной ошибки состоит в том, что задания довольно сложно убрать. Что бы посмотреть имеющиеся задания нужно зайти в панель администрирования и открыть панель «Соединения». При попытке удаления заданий, обычно они появляются вновь. Для удаления следует проделать следующее:
- Удаляем каждое из заданий, затем проверяем появятся ли они снова.
- Ставим флажок, как указано на картинке ниже, удаляем снова:
Рекомендации по исправлению ошибки
При возникновении ошибки на компьютере, болезни в организме или другой проблемы, первое что нужно сделать — определить причину сбоя в системе. Зачастую, проблемы решаются довольно простым и легким способом не прибегая к «оперированию». То же самое можно сказать и про ошибку 1с исключительной блокировки информационной базы — сперва стоит определить возникшую проблему, что позволит решить задачу без лишних потерь.
Оглавление
- Суть проблемы
- Общение с технической поддержкой 1с
- Решение
- Назначаем всем пользователям непустые пароли
- Заставляем пользователей вводить пароль
- Заставляем обновлятор контролировать сохранение установленной блокировки сеансов
- Как помочь с исправлением ошибки
Суть проблемы
Ошибка исправлена в тестовой 8.3.21.1140.
При обновлении или тестировании клиент-серверной базы через обновлятор может возникать ошибка исключительной блокировки на этапах обновления конфигурации базы данных…
Обновляется конфигурация базы данных. ОбщаяКартинка.Информация: Имя не уникально! Обновление конфигурации базы данных Обработка структуры базы данных... Ошибка исключительной блокировки информационной базы. База данных заблокирована: пользователь: ?, сеанс : 4, начат: 13.10.2021 в 0:40:29, приложение: ?
… выполнения обработчиков обновления:
Выполняются обработчики обновления. Ошибка: ошибка разделенного доступа к базе данных, база данных заблокирована:, компьютер: ?, пользователь: ?, сеанс: 61511, начат: ?, приложение: ?
… или тестирования, включающее пересчёт итогов.
Кроме ошибки исключительной блокировки тестирование, включающее пересчёт итогов, может просто зависнуть , если в базу в этот момент зайдёт пользователь.
Почему это происходит, ведь обновлятор устанавливает блокировку сеансов и выгоняет всех пользователей перед началом операции? Каким образом новые пользователи попадают в базу по ходу выполнения операции?
Оказывается при определенных условиях ( а именно пересчёт итогов ) конфигуратор сам (несанкционированно) сбрасывает установленную блокировку сеансов (а заодно код разрешения) в клиент-серверной базе.
Я провёл расследование и выяснил, что это баг в платформе (уже веду переписку с технической поддержкой 1с). Проблема никак не связана с обновлятором и воспроизводится только при помощи конфигуратора.
Для того, чтобы конфигуратор несанкционированно сбросил установленную блокировку сеансов (и код разрешения) необходимо выполнение следующих условий:
- База является клиент-серверной.
- Платформа 1с любая версии 8.3.18, 8.3.19 или 8.3.20.
- В базе накоплены определённые изменения в конфигурации (например, выполнено обновление конфигурации Бухгалтерия Предприятие с версии 3.0.95.24 на 3.0.99.19) без последующего обновления конфигурации базы данных. Отдельно подчеркну, что проблема воспроизводится не на всех обновлениях конфигурации ( а только на тех, когда возникает пересчёт итогов ), именно поэтому я привёл пример конкретного обновления на котором проблема воспроизводится.
Если при выполнении этих 3 условий…
- Установить в базе блокировку сеансов и код разрешения.
- А затем выполнить операцию «Обновление конфигурации базы данных» (хоть вручную через конфигуратор, хоть через обновлятор), либо запустить тестирование и исправление конфигурации с пересчётом итогов (тогда пункт 3 из предыдущего абзаца не важен).
… мы обнаружим, что установленная блокировка сеансов и код разрешения были несанкционированно сброшены конфигуратором (это подтверждается технологическим журналом) по ходу выполнения операции «Обновление конфигурации базы данных» ( а вернее возникшего в процессе выполнения пересчёта итогов ) или тестирования, включающее пересчёт итогов.
И если в этот момент (когда блокировка сеансов сброшена, но операция ещё не закончена) в базу заходят пользователи (вручную или автоматически, так как их предварительно выбросило из базы при блокировке и у них нет пароля), то мы получаем ошибку исключительной блокировки или зависание, если речь идёт о тестировании.
Общение с технической поддержкой 1с
26.10.2021 Вся собранная информация (включающая детальное описание и быстрый способ воспроизведения ошибки) отправлена в техническую поддержку 1с на адрес v8@1c.ru, обращение зарегистрировано под номером HL-405298.
18.11.2021 Получил такой ответ от технической поддержки 1с:
«Ошибка платформы https://bugboard.v8.1c.ru/error/000114376
Исправлена в будущих версиях 8.3.21+»
А значит, установленная блокировка сеансов будет сбрасываться не только при обновлении базы данных, но и при отдельно запущенной операции тестирование и исправление, включающей пересчёт итогов.
Ошибка исправлена в тестовой 8.3.21.1140.
Решение
Как решить проблему не дожидаясь исправления платформы? Для этого я подготовил ряд рекомендаций, а также разработал дополнительную опцию в обновляторе. Итак, поехали.
Назначаем всем пользователям непустые пароли
Потому что, если у пользователя пустой пароль, то становится возможен следующий сценарий:
- Пользователь с пустым паролем оставил базу открытой и ушёл домой.
- Ночью вы сами (вручную или через обновлятор) установили в базе блокировку сеансов (для её обслуживания) и дождались, когда всех пользователей (это функционал типовых) выбросит из базы.
- Да, пользователя выбросило, но на его рабочем месте появилось окно ожидания с попытками (каждую минуту) повторного подключения к базе.
- Попытки повторного входа будут неудачными, ведь в базе установлена блокировка сеансов.
- И тут конфигуратор по ходу выполнения операции «Обновление конфигурации базы данных» несанкционированно сбрасывает (то есть снимает) блокировку сеансов и тот самый диалог ожидания автоматически пускает пользователя обратно в базу! И операция обновления базы данных завершается ошибкой из-за исключительной блокировки.
- Так вот если бы у пользователя был непустой пароль — его бы в базу обратно автоматически не пустило.
Заставляем пользователей вводить пароль
Эту рекомендацию не всегда возможно выполнить целиком. Её смысл в том, что даже если у пользователя непустой пароль, но при этом…
- он прописал его (пароль) в параметрах базы в стартере вот так
- либо зашёл в базу через альтернативный стартер (в настройках которого уже прописаны логин и пароль для входа в базу), например, вот так
… пользователя также пустит обратно в базу автоматически (см. предыдущий сценарий, пункт 5).
Пользователя пускает обратно в базу автоматически потому, что при первоначальном (описанном выше) входе в базу логин и пароль сохраняются в параметрах запуска платформы.
Вопрос какими средствами в этом случае заставить пользователей не прописывать нигде пароль для автоматического входа в базу остаётся открытым.
Заставляем обновлятор контролировать сохранение установленной блокировки сеансов
Заходим в свойства клиент-серверной базы, закладка «Обновление», раздел «Сам процесс»:
Здесь включаем опцию «При обновлении конфигурации базы данных (на проблемных релизах платформы 1с) контролировать сохранение блокировки сеансов».
Внимание! Начиная с тестовой версии от 23 декабря обновлятор согласно этой же настройке осуществляет контроль за сохранением блокировки сеансов при операциях тестирования и исправления, включающей пересчёт итогов.
Кроме того, в скриптах у команды из меню «Обновлятор-Методы-Выполнение пакетного скрипта» появился дополнительный параметр keep_sessions_lock, установка которого в true позволит осуществить контроль за сохранением блокировки сеансов (при условии, что она включена в свойствах базы) при выполнении любой команды.
Например:
@run_cmd( script: "%run_1c_d% /UpdateDBCfg -Dynamic-", keep_sessions_lock: "true" ) @run_cmd( script: "%run_1c_d% /IBCheckAndRepair -RecalcTotals -TestOnly", keep_sessions_lock: "true" )
По умолчанию данная опция включена и имеет значение «Однократно после» ( рекомендую сразу сменить это значение на «непрерывно в процессе» ).
«Однократно после» означает, что обновлятор считывает состояние блокировки сеансов (а также код разрешения) перед обновлением конфигурации базы данных.
А затем (после окончания обновления конфигурации базы данных) восстанавливает блокировку сеансов (и код разрешения), если они были сброшены конфигуратором.
Эта опция предотвращает дальнейшие проблемы, если блокировка сеансов была сброшена конфигуратором в процессе обновления конфигурации базы данных, но нам повезло и в базу (в процессе обновления конфигурации базы данных) никто из пользователей не попал.
Если это не помогает — установите эту же опцию со значением «Непрерывно в процессе«:
В этом случае обновлятор параллельно с выполнением операции «Обновление конфигурации базы данных» будет контролировать (примерно раз в секунду) состояние блокировки сеансов и как только он обнаружит, что конфигуратор несанкционированно сбросил блокировку сеансов, он тут же восстановит её. В этом случае пользователь сможет попасть в базу, если осуществит такую попытку только в ту же самую секунду, когда конфигуратор несанкционированно сбросил блокировку сеансов.
Вот как это будет выглядеть в отчёте:
Как помочь с исправлением ошибки
Ошибка исправлена в тестовой 8.3.21.1140.
Друзья, я уже отписался выше, что ошибка зарегистрирована в 1С.
Теперь я прошу вас по возможности зайти на страницу с ошибкой и поставить отметку «Для меня исправление ошибки важно»:
Тем самым мы повысим вероятность исправления этой ошибки в одном из ближайших релизов платформы.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.