Работа с файловой базой данных 1С:Предприятие через общую сетевую папку (SMB/CIFS) — частый сценарий в небольших организациях. Однако по мере роста количества пользователей и объема транзакций пользователи начинают сталкиваться со спонтанными вылетами программы, сбоями фоновых заданий и ошибками доступа. В этой статье мы подробно проанализируем причины нестабильной работы файловой базы 1С 8.3 по сети, разберем записи технологического журнала и рассмотрим эффективные варианты решения этой проблемы.
Рассмотрим характерные ошибки, зафиксированные в технологическом журнале платформы 1С при работе пользователей с общей сетевой папкой:
1. Ошибки взаимоблокировок и блокировок таблиц:
В логах платформы массово появляются записи вида DatabaseException8 со следующим содержанием:
Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено 'ACTIVEUSERS'
Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено 'DATAZONEOBJECTLOCKS'
2. Потеря доступа к временным файлам базы:
Отсутствует файл базы данных 'C:\1C\1c8_3\Бухгалтерия/1Cv8tmp.1CD'
3. Повреждение или отсутствие локального кеша:
Файл не обнаружен 'v8stg64://c:/1/DynamicalWorkCache'
4. Ошибки выполнения веб-сервисов и регламентных заданий:
Ошибка при вызове конструктора (WSОпределения)... Ошибка работы с Интернет: Не могу установить соединение
Сеанс отсутствует или удален ID=..., File=src\SeanceContextImpl.cpp
5. Слет программных лицензий:
Ошибка привязки программной лицензии к компьютеру... После получения лицензии удалены: OS Ser_0, OS Inst Date_0
Проанализируем архитектурные особенности файлового режима 1С, которые приводят к описанным сбоям.
Недостатки сетевого протокола SMB при работе с файлом 1CD
В файловом режиме вся обработка данных происходит на клиентском компьютере пользователя. Когда несколько клиентов открывают файл базы данных по сети, операционная система использует механизм блокировки диапазонов байтов (byte-range locking) через сетевой протокол SMB. Таблицы ACTIVEUSERS (список активных сеансов) и DATAZONEOBJECTLOCKS (управляемые блокировки) перезаписываются постоянно. При малейшей задержке сети или задержке отклика файлового сервера возникает конфликт блокировок, что приводит к отказу выполнения транзакции или аварийному завершению сеанса.
Сбои с файлом 1Cv8tmp.1CD
Файл 1Cv8tmp.1CD создается в каталоге базы и хранит сеансовые данные. При краткосрочном обрыве сетевого соединения (даже на несколько миллисекунд) хэндл файла на сервере сбрасывается. Клиентское приложение 1С теряет связь с файлом и немедленно завершает работу с ошибкой доступа.
Особенности выполнения регламентных заданий в файловой базе
В файловом режиме регламентные задания не выполняются на отдельном сервере приложений. Они запускаются фоново в сеансе первого подключившегося пользователя. Если этот пользователь отключается от сети, закрывает программу или его сеанс «зависает», фоновые задания завершаются аварийно с ошибкой «Сеанс отсутствует или удален».
Причины привязки и слета программных лицензий
Ошибка программного лицензирования в файле лога указывает на изменение ключевых параметров системы. После крупных обновлений Windows (изменение серийного номера ОС OS Ser_0 и даты установки OS Inst Date_0) или перенастройки сетевых карт система защиты 1С считает, что конфигурация ПК изменилась, и аннулирует лицензию. Требуется активация резервного пин-кода.
Разберем по шагам варианты устранения неисправностей, от простых к наиболее надежным.
Это наиболее эффективный и бюджетный способ стабилизировать файловую базу 1С без покупки дорогостоящих лицензий на сервер приложений и СУБД.
http://myserver/mybase).Почему это работает: При работе через веб-сервер обращения к файлу 1Cv8.1CD выполняются локально процессом веб-сервера. Сетевые блокировки SMB и проблемы с файлом 1Cv8tmp.1CD полностью исключаются, так как передача данных между клиентом и сервером идет по протоколу HTTP/HTTPS.
Если публикация на веб-сервере по каким-либо причинам не подходит, разверните терминальный сервер (Remote Desktop Services):
В этом случае файлы базы считываются локально, что полностью избавляет от сетевых задержек и таймаутов SMB.
Если временные сбои уже произошли, на рабочих местах пользователей мог повредиться локальный кеш платформы.
%LocalAppData%\1C\1Cv8%AppData%\1C\1Cv8При возникновении ошибок лицензирования выполните следующие действия:
lic@1c.ru) с приложением файла лицензии и объяснением причин изменения аппаратной конфигурации или ОС.При активной работе более 5–7 пользователей и регулярных транзакциях в базе данных наиболее правильным шагом является переход на клиент-серверный вариант (сервер 1С:Предприятие + PostgreSQL или MS SQL Server).
Это полностью изолирует пользователей от прямой работы с файлами базы, обеспечивает высокий уровень надежности, транзакционную целостность и возможность корректного выполнения регламентных заданий на сервере в режиме 24/7.