Вы попали на нужную страницу – мы консультируем по вопросам 1С:Предприятие! Скорее всего, утром вы обнаружили, что любимая 1С 8.3 не запускается с сообщением: «Начало сеанса с информационной базой запрещено. Для выполнения резервного копирования…».
Если вы далеки от технической стороны работы с конфигурацией, обратитесь к нашим специалистам за устранением блокировок 1С. Но если вы решили справиться с проблемой самостоятельно, первое, что сейчас нужно сделать — срочно разрешить работу пользователям. После этого спокойно дочитайте статью до конца и узнайте, почему так произошло и что такое «Блокировка и снятие блокировки с информационной базы 1С 8.3».
Приглашаем на
бесплатный вебинар!
06 июня в 11:00 мск
1 час
Мой опыт подсказывает, что вы – пользователь (не системный администратор и не программист*), а ваша информационная база – файловая (если база SQL, вашей проблемой уже занимаются специалисты). Для начала надо понять, в какой папке (каталоге) она расположена и удалить в этой папке один файл — 1Сv8.cdn (файл можно не сохранять, он больше не понадобится).
*Если вы ИТ-специалист, можете смело переходить к чтению раздела «Блокировка и снятие блокировки с информационной базы 1С».
В окне со списком информационных баз найдите свою базу (цифра 1 на иллюстрации ниже) и нажмите на нее один (и только один!) раз мышкой. Затем нажмите кнопку «Изменить» (цифра 2).
В списке может быть только одна база, поэтому это окно вам может быть знакомо как «окно запуска 1С». В этом случае просто нажмите кнопку «Изменить».
Если вы видите, что информационная база расположена на данном компьютере или в локальной сети — мой опыт не подвел – база файловая, и мы все делаем правильно. Скопируйте этот путь (цифры 3 и 4).
Теперь зайдите в эту папку.
На всякий случай, вот несколько вариантов запуска Проводника:
- У вас Windows XP или Windows 7. Нажмите Пуск, Выполнить, вставьте ранее скопированное расположение информационной базы. Откроется Проводник.
- У вас Windows 7. Но пункта «Выполнить» нет. Вставляйте расположение сразу после нажатия Пуск. Откроется Проводник.
- У вас Windows 8 или Windows 10. Нажмите Пуск, в правом верхнем углу нажмите на Лупу, вставьте ранее скопированное расположение информационной базы, нажмите Enter. Откроется Проводник.
- Найдите на панели задач желтую дискету и нажмите на нее. Вставьте расположение информационной базы в адресную строку в верхней части окна Проводника. (Правой кнопкой мыши на адресную строку, Изменить адрес, правой кнопкой еще раз на адресную строку, Вставить).
- Универсальный способ для всех версий Windows и ее настроек. Нажмите на клавиатуре кнопку с флажком и, не отпуская ее, нажмите на клавиатуре латинскую R (или русскую К). Откроется окно «Выполнить», вставьте туда ранее скопированное расположение информационной базы и нажмите ОК.
Воспользовавшись одним из предложенных вариантов, вы попадете в окно проводника с расположением информационной базы.
В окне проводника найдите в списке файлов файл 1Сv8.cdn, нажмите на нем правой кнопкой мыши, выберите «Удалить», как показано на предыдущем рисунке.
Готово! Ваша «1С:Бухгалтерия» или «1С:Зарплата и управление персоналом» или «1С:Управление торговлей» снова запускаются.
Блокировка и снятие блокировки с информационной базы 1С. Разрушаем мифы.
В данном разделе вы найдете уникальную информацию по работе с блокировками, а также получите опровержение распространенных заблуждений на тему устранения блокировок.
Как установить блокировку?
Механизм блокировки информационной базы предназначен для завершения текущих открытых сеансов и предотвращения новых подключений. Расположение функционала блокировки в меню может различаться в зависимости от конфигурации. Например, в УТ, редакция 11 (11.3.3.163) это НСИ и администрирование, [Сервис] Блокировка работы пользователей. Альтернативный вариант: НСИ и администрирование, Поддержка и обслуживание, Блокировка работы пользователей. В УТ, редакция 10.3 (10.3.21.2) это Сервис, Пользователи, Блокировка установки соединений с информационной базой.
*Существуют специальные отраслевые конфигурации, в которых блокировка с точки зрения интерфейса и с точки зрения механизма будет выглядеть не так, как описано в данной статье. Поскольку мы рассматриваем стандартный механизм для большинства конфигураций 1С, специальные отраслевые конфигурации затрагивать не будем.
При выборе данного пункта откроется диалоговое окно «Блокировка работы пользователей», в котором необходимо ввести сообщение для пользователей, время начала и завершения блокировки, а также код для разблокировки.
Поскольку вводится начало и окончание действия блокировки, необходимо быть крайне внимательным в этом диалоге и ввести информацию в явном виде. Если бы в диалоге была бы возможность ввести начало блокировки «через 15 минут» длительностью «на 20 минут», или хотя бы справочно отображались эти величины на основании абсолютного времени начала и окончания блокировки, то было бы сложно установить блокировку длительностью в год, как это может случиться при ошибке ввода даты-времени.
Параметр «Время начала» рекомендуется установить как текущая дата/время + время, необходимое пользователям на подготовку к выходу с сохранением редактируемых документов. Например, сейчас 9 ч 50 мин, даем 10 минут пользователям для сохранения их результатов. Итого время начала блокировки должно быть 10 ч 00 мин.
Время конца – можно не вводить, при этом блокировка объекта будет установлена бессрочно (навечно).
Код для разблокировки – однократный «пароль» на запуск «с нуля», вопреки установленной блокировке, который может понадобиться в некоторых случаях (будет сказано далее). Вводить и запоминать обязательно. Этот параметр в случае SQL-варианта информационной базы виден в оснастке «Администрирование серверов 1С предприятия» и называется там «Код разрешения».
В случае SQL-варианта информационной базы дополнительно потребуется авторизация администратора информационной базы или администратора кластера.
Итак, после нажатия кнопки «Установить блокировку» и положительного ответа на подтверждение…
…вы вернетесь в предыдущее диалоговое окно, внешний вид которого изменился:
В правом нижнем углу будет выдано сообщение о том, что запланирована блокировка работы пользователей. Данное сообщение увидите только вы.
Запланирована? Быть может это как-то связано с регламентными заданиями?
Сработает ли запланированная блокировка работы пользователей, если установлена блокировка регламентных заданий? Да, сработает. Механизм блокировки не использует регламентные задания.
Что увидят пользователи и я сам?
До момента начала блокировки активные пользователи будут получать «вежливые» напоминания о необходимости завершения работы. В данном диалоге по таймауту срабатывает «Да», поэтому отсутствующие на рабочем месте пользователи успешно выйдут из сеанса 1С.
Инициатор блокировки получает другое сообщение:
После начала действия блокировки в информационную базу нельзя будет зайти обычным способом. О том, как все-таки зайти, будет рассказано ниже. Обратите внимание, что диалог не содержит автоматического указания на время завершения блокировки, поэтому задача проинформировать пользователей о времени возобновления работы ложится на Администратора. Эту информацию можно указать в сообщении пользователю.
Бомба взрывается точно в назначенное время. Сирена воет до взрыва.
Вопреки распространенному мнению, что завершение сеансов активных пользователей производится мягко, после предупреждения, которое можно игнорировать и продолжить работу, на самом деле завершение, а лучше сказать, «обрубание», активных сеансов происходит точно по расписанию, жестко и с потерей всех несохраненных результатов. Все предупреждения выдаются в интервале от времени нажатия кнопки «Установить блокировку» до времени начала блокировки, после наступления которого, завершение активного сеанса произойдет без какого-либо уведомления, а 1С перейдет в цикл попыток запуска конфигурации заново, с интервалом в 1 минуту.
Не составляют исключения режимы ввода справочных значений, при которых введено значение, отсутствующее в справочнике – выйти из режима ввода нельзя (например, закрыть 1С крестиком), но это не помешает завершить работу. Более значительный интерес представляет режим модального диалога, поэтому о нем будет сказано подробнее.
*Завершение сеансов пользователей в старых конфигурациях происходит чуть позже назначенного времени, т.к. пользователи сначала получают оповещение «Работа системы завершается».
А точно взорвется?
Для начала отметим, что в старых конфигурациях может не сработать блокировка для инициатора блокировки. А теперь перейдем к рассмотрению вопроса для платформы 8.3.
Пользователь файловой ИБ, решивший, например, удалить документ, а затем пойти на обед, оставив на экране диалог «Пометить документ на удаление?», будет держать открытым соединение с информационной базой. Конечно, его сеанс завершится после обеда, после того, как он ответит «Да» или «Нет», но до этого момента вы будете видеть, что есть активные пользователи. При этом инициатор блокировки увидит сообщение:
В журнале регистрации появится сообщение о runtime-ошибке, которое следует интерпретировать не как runtime-ошибку, а как «не все пользователи завершили свои сеансы»:
И это не единственная причина, по которой блокировка может не сработать (cм. далее разделы «По чьим часам?» и «А как же мои пользователи во Владивостоке?»).
Модальный диалог в SQL-варианте информационной базы на управляемых формах
Сервер приложений 1С имеет возможность удалить сеанс несмотря на режим модального диалога. Интерфейс 1С и модальный диалог останутся у пользователя на экране, создавая видимость незавершенного сеанса, но на самом деле сеанс будет удален, а соединение с ИБ будет своевременно разорвано. При попытке продолжить работу пользователь увидит сообщение об ошибке «Сеанс отсутствует или удален» или «Сеанс работы завершен Администратором» в зависимости от нюансов.
Модальный диалог в SQL-варианте информационной базы на обычных формах
Сеансы пользователей завершаются.
После установки блокировки из диалога лучше не выходить, т.к. при повторном входе в этот диалог до начала блокировки всплывает не соответствующее действительности сообщение о том, что блокировка уже установлена (правда только наполовину), активных сеансов ноль (неправда). При этом продолжается процесс завершения работы пользователей (противоречит нулю активных сеансов + не совсем так, т.к. пользователи «сами себя завершают»). Хотя код блокировки работы пользователей не идеален, в конце концов, это не помешает установить блокировку и завершить активные сеансы, однако дезориентирует Администратора информационной базы.
Сработает ли блокировка, если установить блокировку и закрыть диалог?
Да
Сработает ли блокировка, если установить блокировку и сразу выйти из 1С (т.е. завершить сеанс 1С до начала действия блокировки)?
Да. Механизм реагирования на установленную блокировку не предусматривает взаимодействия между инициатором блокировки и остальными пользователями. Сеансы пользователей самостоятельно проверяют, можно ли им работать.
По чьим часам сработает блокировка, если время на компьютерах немного отличается?
Проблема рассинхронизации часов
При файловой ИБ каждый компьютер сам проверяет, имеется ли в ИБ установленный временной диапазон блокировки, и сравнивает его со своими локальными часами. От точности своих часов зависит, сможет ли данный компьютер осуществить завершение сеанса точно в нужное время. Если база блокируется с 10:00, для одного компьютера этот момент наступит раньше, а для другого – позже.
В доменной среде и при безупречной работе системных администраторов время на всех компьютерах синхронизируется с контроллером домена. Но по разным причинам время может быть сбито: не настроена синхронизация времени с контроллером домена, настроена синхронизация времени с внешним сервером точного времени, который более недоступен, сбои в работе сетевых или доменных служб, отсутствие прав на изменение системного времени и т.д.
Кажется, что речь может идти о секундах, в крайнем случае, минутах. Но на самом деле, на компьютере может быть, например, не установлено обновление операционной системы, поддерживающее переход на сезонное (зимнее/летнее) время, и ошибка уже может составлять не секунды, а часы. Легко провести такой эксперимент: запланируйте блокировку на 10 утра длительностью полчаса, а на одном из компьютеров переведите время на час вперед – блокировка на него не подействует.
Поэтому перед установкой блокировки внимательно сверьте время в правом нижнем углу компьютера со своими наручными часами, а также заблаговременно обратитесь к своему системному администратору с вопросом, работает ли синхронизация времени в вашей ИТ-инфраструктуре.
А как же мои пользователи во Владивостоке?
Проблема абсолютного времени при пользователях из разных часовых поясов
Временной диапазон блокировки сохраняется в информационной базе. Посмотрите на содержимое блокировочного файла 1Сv8.cdn (который создается в файловом варианте ИБ), в нем записано время начала блокировки 17.07.2017 13:59 в формате ГГГГММДДЧЧММСС без какого-либо указания на часовой пояс:
Без указания на часовой пояс было бы понятно, о каком абсолютном времени идет речь, если время всегда относилось бы к какому-то конкретному часовому поясу, например UTC+0. Но в базе сохраняется локальное время по часам компьютера, который являлся инициатором блокировки. Из какого часового пояса был этот компьютер – неизвестно, а значит неизвестно абсолютное время блокировки.
Если в Москве, в централизованной ИБ, вы устанавливаете блокировку в 13:59, и этот момент времени для московских пользователей находится в будущем, то у пользователей этой же ИБ во Владивостоке 13:59 было 7 часов назад. И в зависимости от технического решения, в соответствии с которым осуществляется работа с ИБ пользователей Владивостока, блокировка этих пользователей либо сработает, либо нет.
Какие могут быть технические решения, в которых блокировка будет работать неправильно для пользователей Владивостока? Те, при которых клиентская часть 1С получит время по Владивостоку, а не по Москве. Например, офисы связаны в локальную сеть по VPN, а клиентская часть 1С запускается с локального компьютера, имея время UTC+10. Но если они работают с базой через RDP-соединение или в режиме RemoteApp на московском сервере, запуская на этом сервере клиентскую часть 1С – все будет хорошо, т.к. она будет иметь время UTC+3.
Имеется ли проблемы рассинхронизации часов и часового пояса в случае SQL-варианта информационной базы?
Нет. В данном варианте есть «часы сервера», которые принимаются за эталон.
Выкинет ли меня из Конфигуратора, если я был в нем, а блокировка начала действовать?
Нет.
Можно ли будет зайти в Конфигуратор после начала действия блокировки?
Нельзя! Проверка возможности работы с конфигуратором выполняется только при запуске и не выполняется в процессе работы. Поэтому, если блокировка устанавливается для последующей работы в конфигураторе, гораздо легче предварительно его запустить, чем потом обходить запрет на запуск.
Как снять блокировку?
В том же диалоге, в котором блокировка устанавливалась. Напоминаем, что после установки блокировки в нем вместо кнопки «Установить блокировку» кнопка «Снять блокировку».
В случае SQL-варианта ИБ снятие блокировки возможно также в оснастке «Администрирование серверов предприятия 1С». (см. далее)
Для чего нужен код разблокировки?
Для входа в ИБ в тот момент, когда действует блокировка. Ситуации, в которых это необходимо:
- После установки блокировки был завершен сеанс работы с ИБ (вручную или в результате действия блокировки на самого инициатора), и требуется начать новый сеанс;
- Время окончания блокировки по ошибке было не заполнено вообще;
- Время окончания блокировки было заполнено ошибочно (например, был нечаянно введен следующий месяц или год);
- Информационная база в SQL-варианте, и для отмены неверно установленной блокировки невозможно удалить файл 1Сv8.cdn в каталоге информационной базы.
В таком случае воспользуйтесь подсказкой, которая дается при запуске. Т.е. в окне со списком информационных баз нажмите «Изменить» и введите в дополнительные параметры запуска строку:
ENTERPRISE /F»Z:ОбменУТ 11″ /CРазрешитьРаботуПользователей /UC12345
… с учетом каталога расположения и кода разблокировки.
Данную строку лучше скопировать в буфер обмена и подправить в диалоге «Редактирование информационной базы». Если вы перепутали тип кавычек или русскую «С» и латинскую, то увидите сообщение об ошибке:
В случае правильного ввода и последующего запуска 1С в режиме предприятия, 1С автоматически снимет блокировку и завершит свою работу. После этого можно будет удалить дополнительные параметры и запускать 1С как обычно.
Что делать, если я не устанавливал блокировку, а SQL-база кем-то заблокирована? При этом я не знаю код разблокировки.
Блокировка информационной базы может устанавливаться самой конфигурацией на время создания архивной копии. Если процесс ее создания не был завершен нормально, SQL-база может остаться в состоянии блокировки. В этом случае необходим доступ к консоли (более правильно – оснастке) «Администрирование серверов 1С:Предприятия».
Где ее искать?
Оснастка «Администрирование серверов 1С:Предприятия» часто установлена на том же сервере, где развернут SQL server, а также где развернут сам «Сервер 1С» (или «Сервер приложений 1С»). Хотя это и не обязательно: SQL может быть установлен на одном компьютере, «Сервер приложений 1С» – на другом, а оснастку можно развернуть и на своей рабочей станции. С большой вероятностью успеха можно достигнуть, сделав следующее:
- Подключитесь по RDP к серверу, который указан в строке Srvr=… используя свой доменный логин и пароль. При невозможности подключения попросите системного администратора добавить вас в группу пользователей удаленного рабочего стола. (В случае отказа в таких правах – разверните и настройте на рабочей станции оснастку «Администрирование серверов предприятия 1С»);
- На сервере найдите оснастку «Администрирование серверов 1С:Предприятия»;
- Запустите оснастку, разверните дерево до узла с вашей информационной базой;
- В свойствах информационной базы снимите чекбокс «Блокировка начала сеансов включена» или исправьте время начала и конца блокировки или посмотрите «код разрешения» для входа в ИБ (он же «код для разблокировки» в диалоге установки блокировки).
Что делать, если все пользователи информационной базы SQL вышли, а запустить Конфигуратор по-прежнему нельзя, т.к. имеются активные пользователи?
В узле «Соединения» информационной базы, в правой части экрана можно удалить имеющиеся соединения.
Это далеко не все вопросы, связанные с темой блокировки информационной базы.
Если у вас остались вопросы:
- Можно ли работать по московскому времени, если вы арендуете сервер в Европе и не хотите зависеть от его часового пояса?
- Как найти Сервер приложений 1С, если неизвестно, где он установлен?
- Как развернуть оснастку «Администрирование серверов 1С:Предприятия» и как ее настроить?
- Если в одной локальной сети несколько серверов приложений, как быть?
- Как быть в случае кластерной системы? и т.д.
… наши сертифицированные консультанты по технологическим вопросам 1С с удовольствием на них ответят и предоставят консультации по вопросам 1С:Предприятие.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
ООО Горизонт
Дата регистрации: 06.06.2017
Сообщений: 7
Платформа 1С предприятия 8.3.10.2561, конфигурация 3.0.52.39 Режим веб-сервер, кол-во оперативы сервера 16 Гб.
При повторном открытии и корректировки проведенного документа появляется сообщение:»Ошибка блокировки объекта.Объект уже заблокирован»
Как бороться?
Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20835
ООО Горизонт, попросить пользователя закрыть документ
ООО Горизонт
Дата регистрации: 06.06.2017
Сообщений: 7
Другие пользователи с этим документом не работали, ругается именно на пользователя создавшего документ (он же и пытается его корректировать). Документ закрывали, и все равно та же ошибка.
Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20835
ООО Горизонт, перезапустите WEB сервер, объект должен освободиться.
ООО Горизонт
Дата регистрации: 06.06.2017
Сообщений: 7
Prikum, спасибо, но это немного не то, вылетят все пользователи из базы, а это никому не нужно, кроме того такая ситуация возникает уже не в первый раз…
Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20835
ООО Горизонт, Так у Вас зависла сессия на вэб-сервере, может быть пользователь отключился не выйдя из программы, может быть что то еще, теперь только перезагружать.
Показывать по
10
20
40
сообщений
Опять блокировки объектов |
Я |
123GO
02.04.18 — 11:50
Магазины работают на тонких клиентах, Розница 2.2 опубликована через IIS, платформа уже поменялась с 8.3.10.2561 на 8.3.10.2667. Но все равно, каждый раз при редактировании ЛЮБОГО документа: Ошибка блокировки объекта. Объект уже заблокирован:
пользователь: .., приложение: Тонкий клиент. ВАЖНО: варианты на выбор ЗАВЕРШИТЬ РАБОТУ или ПЕРЕЗАПУСТИТЬ.
То есть база закрывается и пользователю нужно снова открывать 1с.
Отладка по ошибке ничего не показывает, и программа дает закрыть окно и работать дальше (и толстый и тонкий клиенты). Пока пользователей немного, это не критично. Но чуется мне, скоро начнутся у меня проблемы. Кто-нибудь сталкивался?
123GO
1 — 03.04.18 — 10:11
никто не вкурсе, в чем дело?(
tesseract
2 — 03.04.18 — 10:52
В журнале посмотреть и смотреть, что заблокировано. Розницу публиковать в веб — ну не стоит этого делать. Обменами надо, обменами.
assasu
3 — 03.04.18 — 10:59
assasu
4 — 03.04.18 — 11:00
моя тема… все решилось как перешли на 8.3.10.2699
123GO
5 — 04.04.18 — 06:45
(2) от обменов ушли год назад из-за постоянных коллизий
123GO
6 — 04.04.18 — 06:47
(4) Спасибо, почитал тему. Думаю, должно получиться. Буду пробовать)
assasu
7 — 04.04.18 — 06:47
(5) делаете что-то не правильно . у нас распределенка из 7 магазинов, обмен каждые 30 минут . коллизии есть.. раз в квартал на 5 минут ..
hhhh
8 — 04.04.18 — 09:32
(5) ну это и есть коллизии. никуда вы не ушли, получается.
Сияющий в темноте
9 — 04.04.18 — 09:56
Если пользователи с разных мест открывают одни и те же документы,а потом еще и записывают их,то будет такая фигня. Просто,в риб режиме они смело запишут и получат несколько версий одного документа,а в общей базе получат блокировку.
даже если удается найти платформу,где есть возможность перечитать документ,не закрывая 1с,проблему работы с данными это не решит,нужно стаиаться делать так,чтобы пользователь работал только со своими документами,а прочие общие открывались в режиме только чтения
assasu
10 — 04.04.18 — 09:59
вы не обратили внимание на это :
[ ВАЖНО: варианты на выбор ЗАВЕРШИТЬ РАБОТУ или ПЕРЕЗАПУСТИТЬ. ]
123GO
11 — 12.04.18 — 05:00
Переход на 8.3.10.2699 не решил проблему.
123GO
12 — 12.04.18 — 08:39
Причем если устанавливаю эту платформу на обычную рабочку и разворачиваю копию базы, все ок! С единственной разницей, что на веб публикуется платформа x64, а на рабочке x32.
123GO
13 — 12.04.18 — 08:54
А есть вообще разница какой дистрибутив публиковать?
123GO
14 — 12.04.18 — 10:34
В общем, если кому интересно. 8.3.10.2667 может и не была проблемной платформой. Проблема заключалась вот в чем — нужно было публиковать дистрибутив x32 (включите поддержку 32-разрядных приложений в IIS) и у меня не заработало пока не поменял режим управляемого конвейера пула со встроенного на классический. Плюс ушла проблема и на конфигурации Управление небольшой фирмой — я месяц назад плюнул на блокировки в тонком клиенте (программа ругалась на блокировку практически всех объектов СВОИМ же сеансом) и перевел пользователей в терминальный режим.
123GO
15 — 13.04.18 — 04:34
P.S.: Все вышесказаное отработало на ура для файловых баз. На клиент-серверных способ не помог. Тут уже дело не в публикации баз в веб, сама платформа ведет себя некорректно. Даже когда пытаешь открыть второй конфигуратор, для файловых баз сообщение одно:
«Ошибка блокировки информационной базы для конфигурирования. Возможно, информационная база открыта Конфигуратором..
[Выполнить запуск <секунды>] [Отмена]»
Когда пытаешься открыть скульную:
«С этой информационной базой уже работает конфигуратор:
компьютер: Server, сеанс: 2, начат..
[ОК] «
123GO
16 — 13.04.18 — 04:36
(10) Прям в точности как у assasu. Только мне переход на 8.3.10.2699 не помог(. Есть еще идеи по этому поводу? Может какая настройка в сервере 1с или sql?
igorPetrov
17 — 13.04.18 — 04:39
(16) Обмены, обмены…
123GO
18 — 13.04.18 — 08:14
(17) Даже если это будет работать через РИБ, блокировки у подразделений все равно останутся
В последнее время наблюдается тенденция перехода в облачные технологии. 1С не исключение – работа с любого места, где есть интернет, кросс платформенность, администрирование из одного места и конфигурации развиваются с учетом работы в облаке. Возможно использование LINUX серверов, не нужны дополнительные затраты на лицензии MS. Плюсов еще много можно перечислить. С другой стороны при таком режиме работы возникают новые «баги» и «фичи». Об одном из них хотелось бы рассказать. | ||
Итак, небольшое предприятие на пять рабочих мест: бухгалтер, кладовщик и четыре менеджера, которые постоянно в разъездах и формируют заказы на месте у клиента (работа с планшета в браузере). Арендован сервер, установлена UBUNTU, база файловая и опубликована на WEB APACHE. Сразу возникла непонятная проблема: после записи какого-либо объекта в системе при попытке повторно его изменить выдает ошибку «Объект заблокирован», причем заблокирован этим же пользователем. Такое поведение наблюдается как в WEB приложении, так и при подключении тонкого клиента через WEB. При работе напрямую с базой таких проблем нет. Разблокирование объекта происходит только при перезапуске сервиса APACHE либо по таймауту процесса APACHE. Логично предположить, что виновник APACHE. | ||
При попытке включить технологический журнал никаких ошибок для WEB не регистрировалось. Предположили, что это особенность платформы или особенности работы WEB 1C под LINUX. Для определения места «сбоя» сервер был скопирован, установлен сервер 1С предприятия. (В LINUX сервере 1С есть недокументированная возможность работы сервера без ключа защиты по разной информации до 10 – 12 пользователей. РАБОТА СЕРВЕРА В ТАКОМ РЕЖИМЕ ДОПУСТИМА ТОЛЬКО ДЛЯ ТЕСТИРОВАНИЯ). База была переведена в серверный режим, включен технологический журнал. При активной работе в базе трех пользователей (напомню, лицензий у нас пять) появилась новая проблема – ошибки получения лицензий. При разборе технологического журнала выяснилось, что APACHE для обработки запросов стартуют 5-10 процессов, и каждый отдельно загружает модуль 1С и открывает базу – происходит блокировка и захват лишних лицензий (повторное открытие объекта происходит через другой процесс APACHE и 1С принимает его за другого клиента, хотя запрос пришел от того же клиента). Проблема решилась установкой ограничений количества запускаемых процессов APACHE: |
||
и/или если у вас по другому собран сервис: |
После изменения параметров не замечено визуально каких-либо замедлений в работе. Восстановлено предыдущее состояние сервера, изменены настройки APACHE. В дальнейшем подобных проблем не возникало.Если возникли вопросы по облачным технологиям в 1С — обращайтесь! | ||
Александр Логачев, руководитель отдела разработки ООО “Кодерлайн” |
Ошибка блокировки объекта. Объект уже заблокирован
- 1
Баян Баторович
Elite Member
239
37
22 июнь 2017 09:39 #1
#1
от Баян Баторович
Здравствуйте!
Многие клиенты жалуются на периодически возникающую ошибку «Ошибка блокировки объекта. Объект уже заблокирован». При том, что все документы закрыты. Ошибка решается только перезапуском программы.
Тема закрыта.
Андрей Ланьшин
Administrator
3356
961
22 июнь 2017 09:45 #2
#2
от Андрей Ланьшин
Баян
Здравствуйте!
Многие клиенты жалуются на периодически возникающую ошибку «Ошибка блокировки объекта. Объект уже заблокирован». При том, что все документы закрыты. Ошибка решается только перезапуском программы.
Нужна более подробная информация: в каком режиме работает конфигурация; какое количество пользователей работает одновременно и с какими объектами; при работе с какими объектами происходит работа пользователей в момент блокировки; какие объекты блокируется.
Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.
Баян Баторович
Elite Member
239
37
22 июнь 2017 10:39 #3
#3
от Баян Баторович
По последней жалобе ситуация такая: программа установлена на сервере, но для каждого учреждения отдельная база, работает с конкретной базой один бухгалтер. Бухгалтер создает выплату, нажимает «провести и закрыть» , потом через некоторое время снова заходит в этот документ, меняет сумму, пытается провести и тут выходит сообщение о блокировке.
Тема закрыта.
Андрей Ланьшин
Administrator
3356
961
22 июнь 2017 10:59 #4
#4
от Андрей Ланьшин
Баян
По последней жалобе ситуация такая: программа установлена на сервере, но для каждого учреждения отдельная база, работает с конкретной базой один бухгалтер. Бухгалтер создает выплату, нажимает «провести и закрыть» , потом через некоторое время снова заходит в этот документ, меняет сумму, пытается провести и тут выходит сообщение о блокировке.
Тогда включите технологический журнал на сервере и пришлите его нам (за период в 3-5 минут на момент возникновения)
Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.
- 1
Модераторы: Shundrin, Наталья Иванова ГК КАМИН, Romen
Содержание
1. Ошибка 1С: “Конфликт блокировок при выполнении транзакции”. В чем причина?
2. Ошибки в 1С из-за блокировок
2.1 Пример необходимой блокировки в 1С
2.2 Пример избыточной блокировки в 1С
2.3 Как избавиться от избыточных блокировок в 1С
Ошибка 1С: “Конфликт блокировок при выполнении транзакции”. В чем причина?
Этот вопрос возник у нас на проекте по внедрению ЗУП2.5 с численностью 20000 и средним количеством одновременных пользовательских сессий 200.
На этапе опытной эксплуатации при расчете зарплаты пользователи начали интенсивно работать с документами «Начисление зарплаты сотрудникам организаций». Объем документов был порядка 2500 строк. У пользователей начали появляться сообщения «Конфликт блокировок при выполнении транзакции», и расчет приходилось запускать заново.
Стали разбираться. Оказалось, мы столкнулись с эффектом «Избыточной блокировки». Обычно этот эффект появляется при параллельном проведении документов, во время него самым первым документом блокируется большой объем записей регистров на все время проведения документа. Эта блокировка задерживает проведение остальных документов, мешает параллельной работе пользователей и замедляет рабочий процесс. Вообще блокировка данных при проведении документов вещь полезная, она сохраняет целостность данных и гарантирует правильность выполнения расчетных алгоритмов. Но бывает так, что либо объем заблокированных данных чрезмерен, либо время блокировки слишком велико. В результате мы имеем многопользовательскую систему, которая по сути является однопользовательской: вместо параллельного проведения документов — последовательное.
Ошибки в 1С из-за блокировок
Пример необходимой блокировки в 1С
Представим такую ситуацию – есть два документа «Начисление зарплаты сотрудникам организаций», в которых указан одинаковый налоговый период, а на закладке НДФЛ указаны одинаковые сотрудники. Рассмотрим случай, когда блокировка вообще отсутствует. Если последовательно запускать расчет этих документов, то в первом сумма НДФЛ посчитается правильно, а во втором будет равна нулю, т.к. рассчитанный и фактически начисленный НДФЛ на момент проведения второго документа будут совпадать.
Но если запустить эти документы параллельно, то они одновременно начислят НДФЛ, не подозревая о существовании друг друга, и в результате налог удвоится. Если блокировка настроена верно, то первый документ, запущенный на долю секунды раньше второго, успеет первым прочитать и заблокировать данные о фактически исчисленном налоге в регистре «НДФЛ расчеты с бюджетом» по сотруднику Пушкину А.С. Из этого запроса будет видно, что фактический налог за январь пока не начислялся и значит надо выполнить движение по регистру. Блокировка будет отпущена только после завершения записи в регистр. Второй документ, дойдя до запроса чтения фактически начисленного налога будет поставлен системой на ожидание до тех пор, пока первый документ не закончит транзакцию проведения, после чего он прочитает в запросе, что налог уже начислен и движение по регистру выполнять не надо. Это необходимая блокировка.
Конечно, этот пример притянут за уши для простоты объяснения. На самом деле логика ЗУП 2.5 такова, что для задвоения НДФЛ пользователям не нужно прикладывать особых усилий. НДФЛ рассчитывается до проведения документа, а при проведении содержимое табличной части просто заносится в регистры без всякой проверки. Пользователям между расчетом и проведением предоставляется возможность посмотреть будущий результат и при необходимости поправить руками. Конечно это большой плюс в пользу гибкости ЗУПа, но предъявляет высокие требования к профессиональному уровню расчетчиков. Поэтому вопрос предотвращения задвоения НДФЛ решается организационным путем или с помощью дополнительных проверочных отчетов. Конечно, в ЗУП2.5 есть регистры, которые рассчитываются и записываются одновременно при проведении документа, например «НДФЛ к зачету», но этот пример пришлось бы дольше объяснять ;).
Пример избыточной блокировки в 1С
А теперь представим другую ситуацию. При проведении документа выполняется запрос, который должен отобрать документы, в которых присутствует сотрудник из этого документа. Но запрос написан так, что сервер SQL вынужден находить нужные документы методом перебора. Для технических специалистов это означает, что вместо CLUSTERED INDEX SCAN выполняется TABLE SCAN, т.е. вместо сканирования таблицы индексов происходит сканирование самой таблицы. Причем в процессе перебора блокируются все записи, к которым прикоснулся запрос, даже те, в которых не присутствуют искомые сотрудники. И эта блокировка будет действовать до конца завершения проведения документа, что будет препятствовать параллельному проведению документов с другими сотрудниками. Это избыточная блокировка.
Как избавиться от избыточных блокировок в 1С
Лечение избыточных блокировок может идти двумя путями. Первый — это оптимизация запросов, выполняемых внутри транзакций и добавление необходимых табличных индексов в конфигураторе. Второй — это перевод выполнения SQL-запросов на более низкий уровень изоляции, когда при выполнении запросов записи в таблицах блокируются только на момент выполнения самого запроса, либо не блокируются вовсе. А необходимые блокировки устанавливаются средствами объекта «БлокировкаДанных» и выполняются на стороне сервера 1С.
Теперь немного теории про уровни изоляции на SQL сервере:
1. В автоматическом режиме в транзакциях используется уровень изоляции SERIALIZABLE. Этот уровень накладывает блокировки типа X (запрещает чтение и запись) до конца транзакции на все данные, которых коснулись запросы или произошла запись данных.
2. В управляемом режиме в транзакциях используется уровень изоляции ReadCommitted. Этот уровень на записанные данные также устанавливает блокировки типа X до конца транзакции. Но при выполнении запросов на данные накладывает блокировки типа S (запрещает запись и проверяет нет ли в этот момент параллельных записей), при завершении запроса блокировки снимаются не дожидаясь завершения транзакции.
3. Если база данных переведена в режим ReadCommitted SNAPSHOT, то в управляемом режиме при чтении данных не накладывается блокировка типа S, есть только блокировка типа X при записи.
Тоже самое чуть более подробно в таблице:
Обычно лечение начинают с понижения уровня изоляции, т.к. это не особо трудозатратно и дает быстрый результат. Достаточно перевести конфигурацию из «Автоматического» режима управления блокировкой данных в «Управляемый», и транзакции начнут выполняться на уровне изоляции типа ReadCommitted, вместо SERIALIZABLE или Repeatable Read.
Чтобы переключить базу данных в режим READ COMMITTED SNAPSHOT (RCSI) необходимо в «SQL Server Management Studio» в свойствах базы данных установить параметр «Is Read Committed Snapshot On» в значение «True»:
В некоторых источниках предлагают установить параметр «Allow Snapshot Isolation» в значение «True», но в этом нет необходимости, т.к. это приведет к включению другого режима изоляции SNAPSHOT, который не поддерживается платформой 1С (На момент написания статьи релиз платформы 8.3.9).
Режим управления блокировкой данных задается для неявных транзакций, которые выполняются при записи или при проведении документов, т.е. внутри предопределенных процедур типа ПриЗаписи() или ОбработкаПроведения(). Но большинство «тяжелых» вычислений в типовой конфигурации ЗУП2.5 происходит при выполнении команды «Рассчитать». При этом в модуле объекта запускается процедура РассчитатьВсе(), внутри которой неоднократно повторяется конструкция НачатьТранзакцию() …ЗафиксироватьТранзакцию(). Это явно указанные транзакции, внутри которых происходит запись и очистка регистров и выполняются запросы. Нам необходимо убедиться, что при переключении конфигурации в управляемый режим в процедуре «РассчитатьВсе()» транзакции также начинают выполняться на уровне ReadCommitted.
Для этого проведем небольшой эксперимент:
• Запустим SQL Server Profiler.
• Запустим «NEW TRACE».
• Выполним подключение к серверу SQL.
• В окне «Trace Properties» на закладке «General» выберем «Use the template» = «Blank», а на закладке «Events Selections» раскроем группу «Stored Procedures» и выберем «RPC:Complited». По кнопке «Column Filters» укажем имя базы и длительность выполнения запросов более 1.
• Кнопку RUN пока нажимать не будем, т.к. нам надо сначала запустить базу данных в режиме отладки и остановить выполнение расчета документа «Начисление зарплаты сотрудникам организаций» перед выполнением самого массивного запроса. Например, это будет команда
«Результат = Запрос.ВыполнитьПакет();» в функции «ПолучитьДанныеНДФЛПоРегистратору» в общем модуле «ПроведениеРасчетов». Здесь происходит выполнение основного запроса для расчета НДФЛ. Поставим на ней точку останова отладчика и запустим расчет в документе.
· После того как отладчик остановится, нажмем кнопку RUN в Профайлере.
· Теперь сделаем один шаг в отладчике кнопкой F11. Когда запрос будет выполнен и отладчик перейдет на следующий шаг, остановим чтение Профайлера кнопкой «Pause Selected Trace».
· Теперь найдем самый длительный запрос по колонке Duration и внимательно изучим текст запроса. Если при обращении к реальной (а не временной) таблице после слова WITH стоит SERIALIZABLE, то мы имеем дело с автоматическим режимом блокировки. Если ничего не стоит – то с управляемым.
Если в хинте запроса (Hint – это параметр после слова WITH, позволяющий влиять на план выполнения запроса) не указан уровень изоляции, то выполняется уровень изоляции, установленный по умолчанию для текущей SQL-сессии. Определить уровень изоляции, действующий по умолчанию для текущих сессий можно в «SQL Server Management Studio» с помощью команды
SEL ECT CASE transaction_isolation_level
WHEN 0 THEN ‘Unspecified’
WHEN 1 THEN ‘ReadUncommitted’
WHEN 2 THEN ‘ReadCommitted’
WHEN 3 THEN ‘Repeatable’
WHEN 4 THEN ‘SERIALIZABLE’
WHEN 5 THEN ‘SNAPSHOT’ END AS TRANSACTION_ISOLATION_LEVEL
FR OM sys.dm_exec_sessions
В управляемом режиме для всех сессий будет указан режим ReadCommitted.
Таким образом мы получили экспериментальное подтверждение того, что после перевода в управляемый режим всей конфигурации, в этом режиме начинают работать не только процедуры записи и проведения, но и процедуры расчета документов ЗУП. А это значит, что количество сообщений о конфликте блокировок будет существенно снижено, а параллельность работы с базой данных увеличится.
После того, как включили управляемый режим блокировки мы должны убедиться, что избавившись от избыточных блокировок, мы не ушли в другую крайность и не потеряли необходимые блокировки, которые защищают систему от нарушения целостности данных при активной параллельной работе пользователей.
Настройка управляемых блокировок – это тема для отдельной статьи. Вкратце скажу, что программно управляемые блокировки устанавливаются с помощью объекта «БлокировкаДанных». Сами управляемые блокировки работают уже не на уровне SQL сервера, как в случае с автоматическими блокировками, а на уровне сервера 1С. Для определения необходимых и достаточных управляемых блокировок надо понимать логику программы одновременно на уровне бизнес-процессов и на уровне архитектуры таблиц СУБД.
Но на мой взгляд, для таких конфигураций, как ЗУП2.5 вообще нет смысла использовать какие-либо блокировки, лучше использовать проверочные отчеты для выявления нарушения целостности данных — на практике это самый быстрый способ расчета зарплаты. Особенно на крупных предприятиях, где точно есть сотрудники с внутренним совмещением в обособленных подразделениях, а за каждым ОП закреплен отдельный расчетчик, что и является причиной задвоения НДФЛ. Какой бы не был вышколенный персонал, сама идеология конфигурации допускает возможность задвоения НДФЛ. Поэтому лучше не мешать пользователям работать параллельно во время массированных месячных расчетов, а по завершении точечно и быстро исправить небольшой процент ошибок, чем заставлять их сидеть и нервничать в очереди из-за страха допустить хотя бы одну ошибку. В этом проекте мы использовали самописный отчет «Проверка НДФЛ», который отображал сотрудников с некорректным НДФЛ.
Так же на этом проекте мы столкнулись с эффектом «Эскалация блокировок», когда SQL сервер сам принимает решение, что надо укрупнить область наложения блокировок вплоть до блокировки целиком всей таблицы. В результате работа пользователей останавливается, и все ждут завершения проведения одного документа – виновника эскалации, либо когда по таймауту снимутся взаимные блокировки, либо произойдет перезагрузка сервера. В каких случаях возникает эскалация и как с этим бороться тоже тема для отдельной статьи.
Валерий Федоров
Руководитель проектов ООО “Кодерлайн”
Оглавление
- Суть проблемы
- Общение с технической поддержкой 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С.
Теперь я прошу вас по возможности зайти на страницу с ошибкой и поставить отметку «Для меня исправление ошибки важно»:
Тем самым мы повысим вероятность исправления этой ошибки в одном из ближайших релизов платформы.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Права доступа
Ошибка, связанная с недостаточными правами пользователя, может возникнуть после того, как в системе заведен новый пользователь. У каждого пользователя 1С на программном уровне есть определенные права доступа. Такой набор прав называется ролью, а определяется он в конфигураторе. Если используется клиент-серверная версия программы, установка прав осуществляется на уровне сервера SQL.
При использовании варианта «файл-сервер» права доступа сотрудников настраиваются непосредственно в базе данных. Однако в данном случае сервер базы данных отсутствует в принципе, поэтому ответственность за соблюдение прав доступа лежит на самой программе.
Но стабильная работа 1С не обеспечивается только настройкой прав на уровне программы. Связано это с тем, что доступ к базе данных, как и к любому другому типу файлов, регламентируется путем настройки прав на уровне операционной системы. Ошибка открытия файла блокировок может возникать, если таких прав недостаточно. В данном случае речь идет о файле 1Cv8.1CL, находящемся внутри базы 1Cv8.1CD.
Соответственно, для того, чтобы пользователь смог полноценно работать с файлом, он должен получить ряд разрешений. Для этого необходимо открыть окно свойств папки или файла и перейти на вкладку «Безопасность». Чтобы сделать этот процесс проще и не тратить время на изменение свойств файлов и папок для каждого сотрудника отдельно, администратор может создать новую группу пользователей, которой будут предоставлены соответствующие права, а также открыт доступ к системным папкам AppData и Temp (которые тоже зачастую вызывают определенные проблемы). В дальнейшем достаточно просто добавлять в эту группу необходимые рабочие места.
Антивирусное ПО
Пользователи некоторых редакций операционных систем семейства Windows заметили, что их брандмауэры могут блокировать удаленный доступ к базе данных 1С. Аналогичная ситуация возникает с антивирусом «Kaspersky». Во избежание подобных проблем файл 1Cv8.1CD необходимо внести в список исключений брандмауэра Windows и антивирусной программы.
Остались вопросы? Мы с радостью поможем Вам в их решении.