В свое работе я время от времени сталкиваюсь с необходимостью восстановления информационных баз 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. И помните: жизнь слишком коротка, чтобы делать что-то вручную.