Блокировка пользователей 1С. Файловый вариант. Архивация базы данных 1С

Предлагаю вам программу (консольное приложение), которая создает файл 1Cv8.cdn в каталоге базы данных 1С.

Многим администраторам рано или поздно приходится сталкиваться с тем, что пользователи не закрывают базу 1С и в результате невозможно сделать резервную копию базы. В файловом использовании 1С принудительное «вышибание» пользователей может привести к потере не сохраненных данных и к разрушению самой базы.
Предлагаю вам программу (консольное приложение), которая создает файл 1Cv8.cdn в каталоге базы данных 1С.
Созданный файл служит для блокировки пользователей.
В файле указывается время начала и окончания блокировки, в это время будет совершаться выгрузка базы.
Время начала блокировки соответствует текущему времени + 15 минут.
Время окончания блокировки: + 3 часа.
Итак:
1. Создаем в планировщике заданий (назначение заданий) задание, в котором указываем исполнение данной программы. В задачу необходимо передать параметры: путь к каталогу базы данных 1С и ключ блокировки/разблокировки, то есть пароль, который потом передается в исполняемый файл выгрузки базы 1С (*.bat). 

Версия 1.1: В программу добавлен третий параметр — количество минут блокировки.

2. Создаем в планировщике заданий (назначение заданий) второе задание, в котором указываем исполнение bat-файла. Это файл выгрузки базы данных из Конфигуратора.
Пример файла выгрузки:
«C:Program Files (x86)1cv828.2.19.90in1cv8.exe» CONFIG /f «e:1CУТ» /DisableStartupMessages /DumpIB «e:1CУТ_%date%.dt» /NUser /PPassword /OUT «e:1Cackup1C.log» /UC XXX -NoTruncate

где /UC XXX — в параметре /UC передается пароль (в данном случае XXX), который был передан в первом задании для создания файла блокировки.

Всё очень просто! Главное условие — чтобы был закрыт конфигуратор, так как конфигуратор не блокируется, планировщик заданий (задание №2) попытается запустить второй экземпляр конфигуратора, что не возможно.

P.S. Приложение написано на Visual Studio C#, поэтому для его работы требуется установленный Net Framework 2.0 или выше. В принципе — это уже не проблема, потому что все современные системы уже имеют установленные Net Framework и даже выше версии 2.0.

9 Comments

  1. dj_serega

    А есть возможность указывать время начала блокировки и её окончание?

    Reply
  2. Kitri

    (1) dj_serega, нет. Задумка была в том, чтобы назначить задание за 15 минут до нужного времени блокировки. А вот непосредственно время блокировки (3 часа) стоит по умолчанию, но пожалуй да, надо добавить третий параметр — количество минут блокировки. Спасибо, сделаю.

    Reply
  3. Kitri

    Добавлена версия 1.1. В данной версии необходимо передавать три параметра:

    — путь к каталогу базы данных 1С;

    — ключ блокировки/разблокировки, то есть пароль, который потом передается в исполняемый файл выгрузки базы 1С (*.bat);

    — количество минут блокировки.

    Reply
  4. Жолтокнижниг

    А не проще скрипт с параметрами?

    Reply
  5. Kitri

    (4) Жолтокнижниг, я с радостью приму пример, если вас не затруднит ))) Ну а пока у меня и так всё отлично работает! Чего и всем желаю!

    Reply
  6. ray-xp

    Здравствуйте! Пример bat по пункту 1 можно? Не совсем понятно, как параметры передавать в Create_1Cv8_cdn.exe

    Reply
  7. ray-xp

    Пробовал так:

    Create_1Cv8_cdn.exe D:Projects1Cv82Stomatolog 111 20

    где:

    «D:Projects1Cv82Stomatolog» -путь

    «111» -пароль

    «20» — минуты блокировки

    Не создается

    Reply
  8. Kitri

    (7) Попробуйте так:

    Create_1Cv8_cdn.exe D:Projects1Cv82Stomatolog 111 20

    если не получится, то перепроверьте правильность пути

    Reply
  9. ray-xp

    Спасибо! Так получилось. Просто не совсем понятно по описанию, как указывать параметры. Однозначно, пример не помешал бы.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *