При организации многопользовательской работы с файловой базой данных 1С (файл с расширением .1CD) нередко возникает соблазн разместить файл в общей папке на файловом сервере или сетевом хранилище (NAS), подключив пользователей через тонкий или толстый клиент по локальной сети или через VPN. Проанализируем, как в такой схеме контролируется транзакционная целостность, почему тонкий клиент не защищает базу от физического разрушения и как правильно организовать архитектуру доступа.
Распространенное заблуждение заключается в том, что использование управляемых форм и тонкого клиента переносит исполнение серверного кода на сторону сетевого хранилища. Разберем, как это функционирует на самом деле:
.1CD. Никаких вычислительных процессов платформы 1С там не запущено.Таким образом, с точки зрения взаимодействия с файловой системой нет никакой разницы между толстым и тонким клиентом: оба варианта выполняют прямое чтение и запись блоков файла .1CD через разделяемую сетевую папку.
В файловой базе 1С уровень изоляции транзакций строится на механизме сериализации посредством файловых блокировок диапазонов байтов (byte-range locks), которые транслируются операционной системе и сетевому протоколу. Выясним причины, приводящие к сбоям и повреждению структуры страниц базы:
.1CD.DirectoryCacheLifetime, FileInfoCacheLifetime и FileNotFoundCacheLifetime в ветке реестра LanmanWorkstation\Parameters при ненулевых значениях могут возвращать клиенту неактуальный размер файла, вызывая ошибку «Ошибка формата потока».Large Send Offload (LSO) и энергосберегающие режимы сетевых адаптеров могут приводить к переупорядочиванию служебных управляющих пакетов блокировки, что нарушает целостность параллельных транзакций..1CL или тела базы «на лету» блокирует дескрипторы и вызывает ошибку разделения доступа (Sharing Violation).Рассмотрим, как исключить риски повреждения данных при различных сценариях развертывания системы.
Вариант 1: Публикация файловой базы на веб-сервере (IIS / Apache)
Это оптимальный и бюджетный способ защиты базы от сетевых сбоев. База физически размещается на том же локальном диске, где установлен веб-сервер с расширением платформы 1С:
Вариант 2: Использование клиент-серверного варианта (СУБД)
Для гарантированной защиты данных и высокой производительности применяется связка «Кластер серверов 1С:Предприятия + СУБД (PostgreSQL, MS SQL Server и др.)». В этом случае используются полноценные механизмы контроля транзакций, версионирование строк, автоматический откат незавершенных операций и защита от аппаратных сбоев.
Вариант 3: Терминальный сервер (RDP)
Если нет возможности опубликовать базу на веб-сервере, сеансы пользователей запускаются на сервере терминалов, где база лежит на локальном диске. В этом случае обрыв связи RDP-клиента не влияет на запущенный процесс 1С.
Если эксплуатация файловой базы продолжается, разберем обязательные правила для поддержания ее работоспособности:
.1CD во время активной работы пользователей с помощью проводника или сторонних утилит (бэкап получится поврежденным). Резервную копию следует формировать либо выгрузкой информационной базы в файл .dt в пакетном режиме, либо при полном отключении всех сеансов.chdbfl.exe: При возникновении сбоев используем штатную утилиту физической проверки целостности, расположенную в каталоге bin установленной платформы. Она проверяет целостность страниц, заголовков и таблиц файла на физическом уровне.При работе через веб-клиент (в браузере) подключение оборудования (например, сканеров штрихкодов) требует соблюдения технических условий: