1с ошибка исключительной блокировки информационной базы
Пытаюсь сохранить файловую базу через конфигуратор -- получаю ошибку:
Ошибка исключительной блокировки информационной базы
Ошибка разделения доступа к базе данных 'путь'
1. из-за чего это ?
2. лечить -- удалить файл ?
1Cv8.1CD.cfl
1Cv8.1CL.cfl
1Cv8.cgr.cfl
1Cv8tmp.1CD.cfl
1Cv8tmp.1CL.cfl
значит заблочен системом ?
(12) несколько раз сказали, анлокером скинь, так нет же, надо использовать другой вариант и поймать гемор. Анлокер 146% рабочий вариант.
(13) т.е. предлагаешь скачать не пойми откуда и поставить на комп буха ?
и радоваться, если словню блокиратор ?
(12) а на кой тебе было сохранять базу через конфигуратор, если она и так файловая? Сделать можно было архиватором. Эффект был бы абсолютно равнозначный выгрузке в dt, если только не ставилась задача немедленной загрузки в sql
И насколько я заметил, даже если созданы файлики блокировочные, то сам по себе файл базы ничего не блокирует. Т.е. его можно скопировать.
(20) Т.е. был нужен просто бакап?
А в курсе, что 1С не рекомендует делать бакапы баз на основе выгрузки в дт?
(23) разумеется в курсе
но я так же в курсе, что когда что-то штатно не отрабатывает лучше сто раз перепроверить
(22) Причем, эта фича, с проверкой монопольного доступа к ИБ, срабатывает и при серверном режиме тоже.
Заканчивается все такие истории у особо агрессивных 1С-ников тем, что принудительно ставят задание на ночную перезагрузку сервера, чтоб затем запускать без проблем скриптовой запуск конфигуратора в режиме выгрузки дт.
(27) Так и запускаемый конфигуратор, хоть в файловом режиме, хоть в серверном, тоже вывешивает режим блокировки базы. Так глазками не определишь по наличию в каталоге файликов и активного сеанса конфигуратора, кто именно создавал эти активные файлы. И они в самом деле почему-то часто остаются даже после завершения всех сеансов. Антивирус у меня не Каспер, но есть такие AVG, ESET - видимо это мусор оставляет сама 1С
В многопользовательских системах важную роль играет правильная организация структуры и настройка блокировок. Если ее нет, пользователям придется часто сталкиваться с ошибками, вызванными конкуренцией за определенные ресурсы системы. Но существует проблема конфликта блокировок, знакомая многим пользователям. Почему возникает конфликт блокировок 1С и как его устранить?
Конфликт блокировок в 1С 8.3 и его значение
Рис.1 Конфликт блокировок
Причины возникновения ошибок блокировки в 1С
Показательные нагрузочные тестирования демонстрируют, что сервер 1С выдерживает параллельную работу более чем пяти тысяч пользователей. Но идеальные условия подобных экспериментов недостижимы в повседневных условиях крупных и средних компаний. Чтобы добиться аналогичного быстродействия и безошибочности, конфигурация должна быть идеально разработана и заточена под конкретные бизнес-процессы предприятия.
Если не брать идеальные варианты, то конфликты блокировок 1С встречаются по следующим причинам:
Одновременная работа пользователей с большим объемом данных. Эта первопричина продиктована внутренними механизмами 1С. Они предполагают запрет изменения данных, вовлеченных в транзакцию, запущенную от имени другого пользователя;
Ошибки и недочеты в конфигурации. В структуре типовых решений от компании «1С» учтены рекомендации по максимизации производительности. Но сторонние разработчики не всегда придерживаются высоких стандартов, и в их коде часто можно встретить следующие недочеты:
- Неоптимальные запросы;
- Запрос остатков в начале действий;
- Непонимание предназначения объектов конфигурации и их неправильное применение;
- Избыточность заложенных в системе или дополнительно разработанных блокировок.
Решением проблемы конфликта блокировок в 1С 8.3 может стать перевод конфигурации на управляемый (ручной) режим управления блокировками. Реализованный в версии 8.1, механизм в руках грамотных специалистов решает проблему конфликта блокировок при транзакции в 1С.
Рис.2 Перевод на ручной режим управления блокировками
Но стоит иметь в виду, что это действие снизит уровень защиты данных от изменения в процессе чтения их другими пользователями. Поэтому, если вы не готовы самостоятельно контролировать все блокировки в системе, не торопитесь изменять настройки конфигурации.
Быстрое решение конфликта блокировок 1С
В работе администратора или разработчика может произойти ситуация, когда нет времени на проверку ошибки и поиск первопричин проблемы. Например, необходимо сдать отчет или подать данные к определенному времени, а ошибки блокировок 1С препятствуют этому.
Для быстрого решения проблемы существуют два пути:
- Найти и завершить сеанс, заблокировавший необходимые данные. В небольших компаниях, где количество пользователей 1С не превышает пары десятков человек, это оптимальный вариант решения;
- Если вы контролируете систему, в которой работают сотни сотрудников, поиск нужного сеанса без специализированного программного обеспечения может затянуться надолго. В этом случае намного эффективнее будет перезагрузить сервер.
Эти решения радикальные и направлены только на быстрое решение проблемы и освобождение данных для срочной сдачи отчетов. Искоренить ее можно только разобравшись в причине, из-за которой возник конфликт блокировок при выполнении транзакции 1С. После таких действий необходимо найти уязвимые места в системе, оптимизировать конфигурацию или работу сотрудников. Использовать подобные меры на постоянной основе при регулярных конфликтах блокировок на транзакциях не рекомендуется.
Случается, что при работе с программой 1С возникает подобная ошибка - ошибка блокировки данных:
Рис.1 Распространенная ошибка
- Пользователи не вышли из системы 1С
Для начала необходимо посмотреть все активные сеансы пользователей. Активных пользователей можно посмотреть в конфигураторе 1С так: нажать кнопку Администрирование, затем выбрать Активные пользователи. И попросить их выйти из системы. Также информацию о блокирующих сеансах обычно можно получить из самого окна с ошибкой.
- У пользователя запущена база 1С, но не введен пароль
В таком случае у пользователя остается висеть подобное окно:
Рис.2 У пользователя запущена база 1С, но не введен пароль
Сеанс такого пользователя найти сложнее, так как он не отображается в окошке Активные пользователи. Более того, информация об ошибке не содержит какой-либо полезной информации:
Рис.3 Информация об ошибки
Такого рода ошибка характерна для файловых информационных баз. Необходимо найти подобные процессы с помощью диспетчера задач, и, используя его же, принудительно их завершить.
Способы завершения зависших сеансов в файловом варианте
- С помощью Диспетчера задач. При завершении сеансов информация у пользователей, работающих в системе, может не сохраниться, и важные данные могут быть потеряны. Завершить сеансы данным способом можно так: вызвать диспетчер задач (Ctrl+Alt+Delete), затем нажать снять задачу, затем завершить процесс. Процессы 1С называются 1Сv8.exe или 1Сv8c.exe.
Рис.4 Диспетчер задач
- Перезагрузить сервер, на котором установлена файловая система 1С
Способы завершения зависших сеансов в клиент-серверном варианте
- Выделить нужные зависшие сеансы и удалить их через пункт контекстного меню;
Рис.5 Меню Сеансы
*Если в меню Сеансы нет сеансов, их стоит поискать в меню Соединения. И попробовать аналогично удалить.
- Если не удалось удалить сеансы, используя консоль, то необходимо перезапустить службу Агент сервера 1С:Предприятия 8.3.
- Если все предыдущие способы не решили проблему и зависшие сеансы так и остались на своих местах, то в качестве крайней меры необходимо перезагрузить сервер.
Зависшие фоновые задания в клиент-серверном варианте
В клиент-серверном варианте частым источником возникновения ошибки исключительной блокировки информационной базы являются повисшие фоновые задания.
Неприятной особенностью этого явления также является и то, что зачастую их очень тяжело удалить. Обычно эти задания можно увидеть в консоли администрирования на вкладке Соединения, но при попытке их удаления они появляются вновь.
Чтобы их удалить можно попробовать следующие способы:
- Удалить их несколько раз подряд и проверить, не появляются ли они вновь.
- В свойствах базы установить флаг Блокировка регламентных заданий включена, и после этого еще раз попробовать удалить зависшее задание.
Рис.6 Блокировка регламентных заданий включена
Таким образом, при возникновении такой проблемы, как ошибка исключительной блокировки информационной базы, главным шагом становится выяснение причины возникновения проблемы, поскольку выбор способа ее устранения, в частности, среди описанных в данной статье, зависят от этого. То есть не стоит торопиться перегружать сервер сразу же, для начала надо попробовать решить проблему более «гуманным» образом.
1С является незаменимым помощником в большинстве организаций — от небольшого офиса до крупной корпорации. Данная программа охватывает множество структур бизнеса и значительно упрощает работу сотрудникам. Но для того чтобы эффективно пользоваться этим инструментом, нужно иметь опыт и умение решать проблемы и ошибки.
Появление ошибок в 1С является нормальным рабочим процессом. Но это не из-за того, что программа как-то плохо сделана. Большинство ошибок возникает от того, что пользователь что-то недоглядел или пропустил. Поэтому важно уметь быстро и оперативно диагностировать и решать такие проблемы. Особенно если работа не терпит отлагательств.
От чего возникает «Ошибка исключительной блокировки информационной базы»
Во время работы с базой есть активные сеансы пользователей
Когда происходит выгрузка или обновление базы 1С, все пользователи должны выйти из своего аккаунта. Если же они не вышли, то появится такая ошибка. В некоторых случаях может быть указанно, из-за каких именно пользователей появилась ошибка.
Чтобы решить проблему в таком случае, нужно просто попросить выйти этих пользователей из 1С, сохранив изменения. А затем, после завершения процедуры с базой данных им можно будет снова войти.
У пользователя запущенна база, но пароль не введён
Сложность этой проблемы в том, что в ошибке исключительной блокировки информационной базы не будет указанно имя того пользователя, по вине которого это произошло. А самого этого пользователя не будет видно в списке активных.
Чтобы решить данную проблему, можно самостоятельно поискать этих пользователей, и попросить их ввести пароль, чтобы войти, а затем выйти, закрыв базу.
Но если найти пользователя не удаётся, то можно попытаться отыскать его процесс в диспетчере задач и завершить его. Для запуска диспетчера задач, нажмите правой кнопкой мышки на панель задач, а затем «Диспетчер задач» (или можно просто нажать сочетание клавиш Ctrl + Alt + Del).
Найдите процессы с названиями 1Cv8.exe и/или 1Cv8c.exe, и выделите мышкой.
Затем внизу диспетчера нажмите «Снять задачу».
Будьте осторожны, при таком завершении работы пользователя, данные внесённые им во время работы в программу 1С, которые он не успел сохранить, окажутся безвозвратно потеряны.
Ошибка исключительной блокировки информационной базы такого характера возникает в файловых базах данных.
Зависшие сеансы в 1С
Если вы убедились в том, что все пользователи вышли из своих учётных записей, а также нет пользователей, которые запустили базу, но не ввели пароль, то проблема может быть в зависших сеансах. Определить, какой конкретно пользователь завис, будет также затруднительно, так как в активных пользователях он может не отображаться.
Поэтому решить данную проблему можно также с помощью диспетчера задач — найти процесс пользователя и принудительно его завершить, как было описано выше. Опасаться за не сохранения внесённых данных здесь уже не нужно, так как они всё равно не сохранятся, раз сеанс завис.
Зависшие фоновые процессы
Список фоновых заданий можно увидеть в разделе «Процессы» в консоли администрирования 1С. И если попытаться удалить их, то пользователь может быть неприятно удивлён тем, что они появляются снова и опять мешают выгрузке базы. Здесь можно порекомендовать лишь попробовать закрыть такие задачи несколько раз. А если это не помогает, то в свойствах задачи включить опцию «Блокировка регламентных заданий включена», а затем снова попытаться закрыть.
Это скорее всего какое-то фоновое задание выполняется на сервере.. Здесь только два варианта, либо отключить фоновое задание, есть обработка которая показывает какие задания выполняются на сервере и с помощью её отключить задания, либо перегрузить сервер где находится база.
Возможно запущен консоль кластера. или фоновое задание - в любом случае можно посмотреть в консоле кластера активные подключения - и при необходимости убить их.
(18) thegoldenboy, в администрировании серверов 1С заходим в сеансы - прибиваем фоновое задание. в свойствах базы можно указать запрет создания регламентных заданий
Не настрйоку журнала регистрации случаем выполняеш? Если да, то отключите все фоновые задания сервера через консоль кластера.
Если у Вас используется кластер серверов 1С - просто удаляйте базу с консоли сервера, при этом не забываем выбрать оставить БД (физическую на SQL) без изменения и далее создаем базу в консоли (вернее ссылку на нее) и все - блокировки, которые показывал сервер 1С исчезнут.
А вот и не отключаются, я же говорю не про сеансы а про блокировки. Может подскажете как повисшие блокировки без сессии отключить в консоле кластера 1С?
В консоли есть блокировки, сессий нет, интерфейса для отключения таких блокировок в консоли я не нашел как и многие другие - иначе бы не было таких тем. Переподключение в консоли сервера 1С помогает - проверено. Перезапуск службы сервера не помог.
НО буквально вчера на 40.9 релизе Бухгалтерии при проведении Счет фактуры, был выявлен следующий момент.
При одном работающем пользователе (файловой базе) фраза ТекущийОбъект.Заблокировать() вызывало исключительную ситуацию. хотя ТекущийОбъект.Заблакировано() говорит что все нормально. объект свободен.
Пока не победили(
ЦУП здесь не нужен. на диске ИТС есть обработка, которая показывает в режиме предприятия все ваши назначенные задания. Откройте её и посмотрите что там делается. Затем в свойствах базы в консоли сервера 1С попробуйте отключить фоновые задания (галочка внизу в свойствах).
А у меня такая вещь случилась с 1с в файловом режиме. Фоновых заданий и подключений видно не было. Проблема решилась, только не понятно как. В общем ситуация такова, что я сразу кикнул всех юзеров обработкой, но ничего делать не мог. Никакого монопольного режима.
Одним из действий в решении, было что грохнул 1с в процессах у других пользователей(на страх и риск, потому как сервак съемный).
(20) Arxxximed, Скорее просто глюк системы, связанный с зависшими процессами. Наиболее остро данная проблема возникает на sql базах и по личным наблюдениям особенно усугубляется, когда на сервере мало оперативной памяти. Было такое на одном из серверов, выгрузка БД проходила только после снятия конфигурации с поддержки. При переустновки sql сервера в настройках нашел возможность включить блокировку фоновых заданий, в итоге проблема ушла.
Наиболее остро данная проблема возникает на sql базах и по личным наблюдениям особенно усугубляется, когда на сервере мало оперативной памяти.
Неверные у вас наблюдения. Проблема есть и на файловой, и на серверной базе, без разницы.
И зависают процессы (даже не сессии) любые - фоновые задания, пользователей.
При переустновки sql сервера в настройках нашел возможность включить блокировку фоновых заданий, в итоге проблема ушла.
У вас не проблема ушла, а задания перестали запускаться. А проблема как была, так и осталась. Запустите задание - и получите проблему.
Читайте также: