Файловая база 1С:Предприятия – проблемы и решения
Последнее время начали поступать вопросы по поводу файловой базы 1С:Предприятие, но в комментариях трудно дать развернутый ответ, поэтому мы решили написать эту заметку.
Как мы знаем, в основе современной архитектуры 1С лежит так называемая «трехзвенка»: клиент – сервер – СУБД.
Каждый из этих компонентов занят своим делом: клиент – обработкой данных, вносимых пользователем, сервер – запросами к БД и обработкой информации, запрошенной из нее клиентом или, наоборот, записываемой, СУБД хранит всю эту информацию.
Файловая база данных представляет собой файл специального формата собственной базы данных 1С:Предприятие. Он называется 1Cv8.1CD и представляет основную ценность, несмотря на то что папка с базой содержит иные файлы и каталоги только он содержит полезные данные и для копирования базы достаточно перенести только этот файл.
Для резервного копирования мы также должны скопировать именно этот файл, а не дамп базы в формате DT. Еще раз обратим ваше внимание, что сам вендор в официальной документации предупреждает, что DT не предназначен для резервного копирования.
Но вернемся к нашей файловой базе, как мы уже сказали – это файл БД собственного формата, который играет роль СУБД в трехзвенной схеме. Остальные два звена обеспечивает платформа на рабочей станции пользователя. Там запускается серверный и клиентский экземпляр, которые и выполняют соответствующий код.
Если все эти три звена расположены на одном компьютере, то работает такая база достаточно неплохо, по крайней мере до тех пор, пока не разрастется по размерам.
В былые времена пределом размера файловой БД было примерно около 4 ГБ, сейчас, с приходом недорогих и быстрых NVMe этот предел сильно вырос и в файловом варианте неплохо ворочаются базы и по 10 – 20 ГБ.
Но вся эта благодать быстро исчезает при необходимости работать с базой более чем одному человеку.
Обычный сценарий – это сетевой доступ к информационной базе, когда файл базы выкладывается на общий ресурс и к нему подключаются по сети клиенты.
При этом практически вся информация гоняется по сети, причем в достаточно значительных объемах. Это ведет к долгой загрузке базы и замедлении операций, требующих доступ к данным, которых нет в локальном кеше.
Но беда не в этом, а во взаимных блокировках, которые пользователи накладывают на базу данных при работе.
Именно это, а не сетевые задержки становится главной проблемой многопользовательской работы с файловой базой данных 1С:Предприятие.
Поэтому бесполезно пытаться делать какие-то настройки на уровне сети или сетевого хранилища, так как проблема находится в другом месте.
Критическим количеством одновременных пользователей для файловой базы является в зависимости от характера работы 3-5 человек (иногда больше).
Что делать? Вариантов тут не много. Самый простой – веб-сервер, в этом случае серверная часть будет работать на ПК с веб-сервером, а клиентская на тонком клиенте. При использовании веб-клиента весь код будет исполняться на веб-сервере.
Следует помнить, что веб-клиент с файловой базой однопоточен, но это по факту меньшее зло, при небольшом количестве пользователей однопоточность не становится узким горлышком, но при этом снимается проблема блокировок.
Поэтому переход на веб-сервер с файловой базой в большинстве случаев ускоряет работу и рекомендуется к применению даже в небольших сетях.
Второй вариант – переход на клиент-серверную технологию. Да, это довольно дорого, но если вам достаточно 5 сеансов, то можно приобрести Сервер-МИНИ за очень небольшие деньги (19 300 руб. на настоящий момент).
Также есть небольшая хитрость, если у вас несколько баз с небольшим количеством пользователей, то можно купить и развернуть несколько экземпляров Сервера-МИНИ, что будет дешевле покупки полноценного сервера 1С:Предприятие за 115 200 руб.
Post #4477
2.82K