вторник, 21 июля 2015 г.

Массовое восстановление информационных баз 1С из бэкапов и прочие радости командной строки запуска «1С:Предприятия»


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

  • DESIGNER - Запуск в режиме Конфигуратора;
  • ENTERPRISE - Запуск в режиме Предприятия;
  • CREATEINFOBASE - Создание информационной базы.   

Остановимся подробнее на режиме CREATEINFOBASE. Данный параметр имеет следующий вид: CREATEINFOBASE <строка соединения> [/AddInList [Имя ИБ]] [/UseTemplate [имя файла шаблона]].

  • СтрокаСоединения - обязательный параметр, образуется из пар ИмяПараметра=Значение, разделённых символами точки с запятой (;). Если Значение содержит пробелы, оно должно быть заключено в двойные кавычки. Возможные параметры строки соединения: 

Для файлового варианта определен параметр:
        File - Каталог информационной базы.
Для клиент-серверного варианта определены параметры:
        Srvr - Имя сервера 1С:Предприятия. Для обеспечения бесперебойной работы клиентских приложений возможно указание нескольких адресов кластера через запятую, например: Srvr=”Server1,Server2” или Srvr=”Server1:1741,Server2:1741”;
        Ref - Имя информационной базы на сервере 1С:Предприятия;
        DBMS - Тип используемого сервера баз данных:
                MSSQLServer — Microsoft SQL Server (по умолчанию);
                PostgreSQL — PostgreSQL;
                IBMDB2 — IBM DB2;
                OracleDatabase — Oracle Database.
        DBSrvr - Имя SQL-сервера;
        DB - Имя SQL-базы данных;
        DBUID - Имя пользователя SQL-сервера;
        DBPwd - Пароль пользователя SQL-сервера. Если пароль для пользователя сервера баз данных не задан, то данный параметр можно не указывать;
        SQLYOffs - Смещение дат, используемое для хранения дат в SQL-сервере (Допустимые значения - 0 или 2000. По умолчанию - 0). Данный параметр определяет число лет, которое будет прибавляться к датам при их сохранении в базе данных Microsoft SQL Server и вычитаться при их извлечении. Наличие данного параметра определяется особенностями хранения дат в Microsoft SQL Server. Тип DATETIME, используемый в Microsoft SQL Server, позволяет хранить даты в диапазоне с 1 января 1753 года по 31 декабря 9999 года. И если при работе с информационной базой может возникнуть необходимость хранения дат, предшествующих нижней границе данного диапазона, то в качестве значения параметра следует выбрать 2000. Если же такие даты встречаться не будут, то в качестве смещения дат можно выбрать 0. После создания информационной базы значение данного параметра не может быть изменено. (ВНИМАНИЕ! Если в прикладном решении используются регистры накопления или регистры бухгалтерии, то в поле Смещение дат необходимо установить значение 2000);
        CrSQLDB - Создать базу данных в случае ее отсутствия ("y" - создавать базу данных в случае отсутствия, "n" - не создавать);
        SchJobDn - Запретить созданной информационной базе  выполнение регламентных созданий (Y/N). Значение по умолчанию — N;
        SUsr - Имя администратора кластера, в котором должен быть создан начальный образ. Параметр необходимо задавать, если в кластере определены администраторы и для них аутентификация операционной системы не установлена или не подходит;
        SPwd - Пароль администратора кластера.

  • /AddInList [ИмяИБ] - имя, под которым база добавляется в список. Если этот параметр не указан, база добавлена в список не будет. Если не указано ИмяИБ, будет задано имя по умолчанию (как при интерактивном создании базы).
  • /UseTemplate — создание информационной базы осуществляется по  шаблону, указанному в [имя файла шаблона]. В качестве шаблонов могут быть файлы конфигурации (.cf) или файлы выгрузки информационной базы (.dt). Если шаблон не указан, параметр игнорируется. 
  • /Out <Имя файла> [-NoTruncate] - установка файла для вывода служебных сообщений. Если задан параметр -NoTruncate (через пробел), файл не очищается (не используется в тонком клиенте). Во время исполнения пакетных команд файл сообщений можно открыть для просмотра. Запись сообщений в файл не буферизуется (сообщения записываются сразу).

Пример создания информационной базы на сервере 1С:Предприятия:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" CREATEINFOBASE Srvr="Server1C";Ref="НоваяБаза";DB="НоваяБаза";DBMS="MSSQLServer";DBSrvr="Server1C";DBUID="sa";DBPwd="Passwords";CrSQLDB=Y;SchJobDn=Y /OUT "C:\Users\Администратор\Desktop\1c.log" /AddInList "НоваяБаза" /UseTemplate "C:\Users\Администратор\Desktop\Базы\Новая.dt"

Для автоматизации данной операции можно написать bat файл или воспользоваться любым знакомым языком программирования. Пример утилиты создания нескольких ИБ  из одного дтэшника на C# на гитхабе.


P.S. И помните: жизнь слишком коротка, чтобы делать что-то вручную.

1 комментарий:

  1. How to get to Harrah's hotel and casino by Bus in - Airjordan 9 Retro
    The cheapest way to get to Harrah's hotel and air jordan 18 retro yellow online site casino by Bus in air jordan 18 retro toro mens sneakers to you Harrah's, 777 Casino Way, Phoenix, AZ where to get air jordan 18 retro men costs only $12, and the how can i find air jordan 18 retro quickest way takes just 3 air jordan 18 retro yellow store

    ОтветитьУдалить