Внешняя компонента для безопасного копирования файловой базы без отключения пользователей

17.04.19

База данных - Архивирование (backup)

Внешняя компонента для блокировки и последующего безопасного копирования файловой базы 1С, написанная по технологии NativeAPI.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка для обычного приложения
.epf 905,44Kb ver:1.1
1 2 500 руб. Купить
Обработка для управляемого приложения
.epf 900,80Kb ver:1.1
10 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

    Если вкратце, то компонента позволяет блокировать запись в файловую базу, после чего можно делать безопасное копирование файла 1cv8.1CD не выгоняя пользователей из базы. Блокировать запись данных можно как для текущей базы, в которой загружена компонента, так и для сторонней базы. Принцип работы основан на блокировке файла 1cv8.1CL. Компонента написана по мотивам публикации infostart.ru/public/319947/ (автору публикации большое спасибо), там же более подробно описано почему нельзя просто так копировать файл 1cv8.1CD (копия часто может оказаться поврежденной). Захотелось сделать что то подобное, но более гибкое, что бы пользователи и разработчики прикладных решений, сами могли выбирать куда копировать файл и какое имя ему давать.

    Принцип работы схож с приложением представленным в выше описанной публикации. Компонента блокирует файл 1cv8.1CL, ожидая пока будет снята предыдущая блокировка на запись. После выполнения блокировки можно копировать файл 1cv8.1CD для своих нужд. Если в процессе копирования, платформа, или другая программа, захочет что-то записать в базу (начать транзакцию), то ей придется дождаться завершения снятия блокировки внешней компонентой. Т.к. компонента блокирует базу только на запись, то др. процессы смогут свободно читать из файла базы любую информацию, т.е. пользователи смогут формировать отчеты, открывать формы документов и т.д., не замечая ни какой блокировки. Если же решат провести документ или что то записать, то 1С:Предприятие зависнет ожидая своей очереди на запись. После копирования необходимо обязательно снять блокировку, после чего все процессы которые стояли в очереди на запись, смогут записать свои данные. Возможность блокировки файла 1cv8.1CL, как я понял, является не документированной, поэтому пользоваться данной внешней компонентой и представленными в публикации обработками, только на свой страх и риск. Автор не несет ответственности, за повреждение вашей базы, тем более, что она может быть поврежденной еще до использования данной разработки.

Внешняя компонента содержит всего 2 метода:
ЗаблокироватьИнформационнуюБазу/LockInfoBase и РазблокироватьИнформационнуюБазу/UnlockInfoBase. В качестве единственного параметра нужно передать полное имя каталога файловой базы. Также есть свойство Версия/Version, для контроля используемой версии. В публикации представлены обработки для обычного и управляемого приложения, демонстрирующие подключение и работу внешней компоненты. Данные обработки является готовым, упрощенным, решением для пользователей файловых баз, которые могут просто скопировать файл 1cv8.1CD или же получить готовую выгрузку базы в виде .dt файла. Разработчик же, в свою очередь, на базе данной компоненты может сделать, к примеру, подсистему или регламентное задание по резервному копированию. Компонента и данные обработки тестировалась и успешно использовалась, на платформе 8.3.10.2650, но должны так же работать на любых версиях платформы работающих под управлением Windows x86/x64 и поддерживающих технологию внешних компонент NativAPI. Поддержка платформы Linux отсутствует. Все сделанные, представленными обработками, копии файлов 1cv8.1CD, были успешно выгружены в .dt, что в какой-то степени подтверждает, что копии файловых баз не были повреждены при копировании. Компонента написана на Delphi. Исходники не предоставляются.

Вступайте в нашу телеграмм-группу Инфостарт

1CD 1CL файловая база бэкап архив NativAPI блокировка транзакция заблокировать разблокировать выгрузка