Как устранить ошибку разделенного доступа и установить монопольный режим при обновлении УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

При обновлении тяжелых конфигураций, таких как 1С:Управление торговлей 11.5, ERP или Комплексная автоматизация, пользователи часто сталкиваются с критической ошибкой при вызове метода УстановитьМонопольныйРежим. Ситуация осложняется, если база является файловой, а обновление прерывается сообщением о том, что база заблокирована фоновым заданием. Проанализируем причины этой проблемы и разберем пошагово методы ее решения.

Почему возникает ошибка разделенного доступа?

Разберем ситуацию: при выполнении дополнительных процедур обработки данных после обновления конфигурации (в режиме «1С:Предприятие») система пытается управлять блокировками. Ошибка Ошибка разделенного доступа к базе данных в файловом варианте чаще всего означает, что платформа не может корректно завершить фоновое задание, которое «держит» таблицу базы. Проанализируем основные факторы, провоцирующие это поведение:

  1. Особенности платформы: Версии ветки 8.3.21 (особенно ранние сборки типа 8.3.21.1302) имеют известные проблемы с управлением сеансами в файловом режиме.
  2. Конкуренция потоков: В новых версиях УТ процедуры обновления могут запускаться в несколько потоков. Для файловой базы это часто становится фатальным, так как она не рассчитана на высокую параллельность при монопольных операциях.
  3. Зависшие сеансы: Фантомные процессы 1cv8.exe могут оставаться в памяти даже после закрытия программы, удерживая блокировку.

Способ 1. Ограничение количества потоков обновления

Рассмотрим самый действенный метод для файловых баз — принудительное ограничение параллельных процессов обновления. По умолчанию система может пытаться запустить 2 и более потоков для ускорения обработки данных, что вызывает конфликт доступа. Выполним следующие действия:

Зайдем в раздел НСИ и администрирование, далее перейдем в пункт Обслуживание. В открывшемся окне найдем подраздел Обновление программы и нажмем на гиперссылку Результаты обновления и дополнительные процедуры. В этом интерфейсе нас интересует возможность настройки параметров:

Установка одного потока гарантирует, что система будет последовательно обрабатывать данные, не вызывая конфликтов блокировок между фоновыми заданиями.

Способ 2. Использование параметров запуска для деблокировки

Если база «зависает» на этапе входа и не дает даже зайти в настройки, нам нужно временно запретить выполнение любых регламентных заданий. Выясним, как это сделать через дополнительные параметры запуска:

  1. В окне запуска 1С выделим нашу информационную базу и нажмем кнопку Изменить.
  2. Пролистаем до последней страницы настроек, где находится поле Дополнительные параметры запуска.
  3. Впишем туда следующий ключ:

/AllowExecuteScheduledJobs -Off

Запустим базу. Теперь фоновые задания не будут стартовать автоматически, что позволит нам беспрепятственно выполнить монопольные операции или завершить критические обработчики обновления. Не забудьте удалить этот ключ после успешного завершения всех процедур.

Способ 3. Устранение проблем в справочнике «Назначения»

Иногда ошибка вызвана не техническим сбоем платформы, а некорректными данными, которые обработчик обновления не может «переварить». В версиях 11.5.9.116 и смежных была замечена проблема со справочником Назначения. Рассмотрим ситуацию, когда справочник Направления деятельности содержит пустые или битые ссылки при включенной опции «Учет затрат».

Для исправления ситуации рекомендуется проверить наличие патча EF_00_00482878. Если патч недоступен или не помогает, можно попробовать выполнить небольшую проверку данных программно. Посмотрим на пример кода, который помогает выявить проблемные записи (выполнять в консоли кода):


Выборка = Справочники.НаправленияДеятельности.Выбрать();
Пока Выборка.Следующий() Цикл
    Если НЕ ЗначениеЗаполнено(Выборка.Ссылка) Тогда
        Сообщить("Найдена пустая ссылка в Направлениях деятельности!");
    КонецЕсли;
КонецЦикла;

Если в процессе обновления система стопорится на обработчике Справочники.Назначения.ОбработатьДанныеДляПереходаНаНовуюВерсию, убедитесь, что в базе установлены все актуальные исправления (патчи) через конфигуратор или раздел «Обслуживание».

Способ 4. Очистка кэша и принудительное завершение процессов

Проанализируем техническую сторону работы файловой БД. Файлы блокировок *.1cl и *.cfl могут оставаться в папке с базой данных, если сеанс был завершен аварийно (через Диспетчер задач). Проделаем следующие шаги для «чистого» запуска:

  1. Полностью закройте все окна 1С.
  2. Откройте Диспетчер задач (Ctrl+Shift+Esc) и убедитесь, что на вкладке «Подробности» нет процессов 1cv8.exe или 1cv8c.exe. Если они есть — снимите задачи.
  3. Перейдите в папку с базой данных и удалите все временные файлы, кроме основного файла 1Cv8.1CD.
  4. Очистите кэш конфигурации (удалите папки из %AppData%\1C\1cv8\).

Важный момент: Если вы используете платформу 8.3.21.1302, настоятельно рекомендуем обновить ее до версии 8.3.21.1607 или выше (например, переход на 8.3.22). В этих релизах исправлено множество ошибок, связанных именно с «зависанием» монопольного режима в файловых версиях при работе фоновых заданий.

Резюме

Для успешного обновления УТ 11.5 на файловой базе при возникновении ошибок блокировки мы рекомендуем придерживаться следующего алгоритма: очистка процессов -> запуск с ключом запрета заданий -> установка количества потоков обновления равным 1 -> применение актуальных патчей. Это обеспечит стабильность процесса и сохранность ваших данных.

← На главную