Infobase 1c что это

Обновлено: 07.07.2024

Общая информация

Разумеется, автономный сервер имеет некоторые ограничения. В частности он НЕ поддерживает следующие возможности:

Запуск автономного сервера

Автономный сервер устанавливается вместе с кластером серверов 1С и имеет такие же системные требования. После установки в каталоге bin появятся два файла:

  • ibsrv.exe — сам автономный сервер;
  • ibcmd.exe — утилита администрирования.

Оба приложения имеют справочную систему, которую можно вызвать стандартным, для утилит командной строки, способом:

Автономный сервер может быть запущен как обычное приложение и как сервис (демон) операционной системы, при этом сам автономный сервер не умеет регистрировать себя в качестве сервиса, для этого нужно воспользоваться средствами ОС.

Параметры для запуска автономного сервера можно указать прямо в командной строке или в специальном конфигурационном файле. При этом командная строка имеет больший приоритет. Если какой-то параметр не указан ни в командной строке ни в конфигурационном файле, то будет использовано значение по умолчанию.

Конфигурационный файл создается специальной командой или вручную (подробнее ниже). Для запуска автономного сервера с учетом конфигурационного файла, необходимо указать расположение этого файла.

Запуск сервера для работы с файловой базой в самом простом случае выглядит так:

На самом деле самый простой вариант будет запуск автономного сервера вообще без параметров, в этом случае сервер поищет файловую базу в каталоге данных по умолчанию.

Запуск сервера для работы с клиент-серверным вариантом базы в самом простом случае выглядит так:

ibsrv --dbms=db-type --db-server=server-name --db-user=pass --db-pwd=pass --db-name=db-name

Автономный сервер в 1С

Запуск автономного сервера 1С

После этого к базу можно посмотреть например через браузер:

Автономный сервер в 1С

База на автономном сервере

Отладка на автономном сервере

Настройка отладки для автономного сервера 1С

Настройка отладки для автономного сервера 1С

Настройка клиентского приложения

Настройка клиентского приложения

Конфигурационные файлы

Конфигурационный файл можно создать вручную, а можно при помощи утилиты администрирования ibcmd. Например:

ibcmd.exe server config init --dbms=mssqlserver --db-server=192.168.0.15 --db-user=sa --db-pwd=Z123456z --db-name=test01 --name=test03 --base=webAccess

В данном случае текст конфигурационного файла будет выведен прямо в консоль:

Создание конфигурационного файла

Создание конфигурационного файла

Что бы записать все это в файл на диске можно воспользоваться специальным параметром --out :

ibcmd.exe server config init --dbms=mssqlserver --db-server=192.168.0.15 --db-user=sa --db-pwd=Z123456z --db-name=test01 --name=test03 --base=webAccess --out=C:\test.conf

Или стандартными средствами:

ibcmd.exe server config init --dbms=mssqlserver --db-server=192.168.0.15 --db-user=sa --db-pwd=Z123456z --db-name=test01 --name=test03 --base=webAccess > C:\test.conf

Кроме этого утилита ibcmd позволяет выполнять различные операции — создавать базы и загружать в них конфигурации и выгрузки. Для примера загрузим выгрузку (dt) в базу на MSSQL сервере:

ibcmd.exe infobase restore --dbms=mssqlserver --db-server=192.168.0.15 --db-user=sa --db-pwd=Z123456z --db-name=test01 C:\1Cv8.dt

Работа с ibcmd

Работа с ibcmd

На этом все, надеюсь эта статья была Вам интересна.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

(оценок: 4, средняя оценка: 5,00 из 5)

Итак у вас установлено 1С:Предприятие, как определить каким способом или вариантом загружается ваша информационная база (ИБ)?

Если у вас файловый вариант работы то в строке при запуске 1С и при выборе информационной базы (в списке информационных баз) вы увидите: File=”C:\Documents and Settings\Pupkin\Мои документы\Infobase1”. Это папка, где хранится ваша файловая база.

Если вы увидите такую надпись типа Srvr=»192.168.6.1″;Ref=»Infobase1″;, то это означает, что вы работаете в клиент-серверном варианте работы с 1С.

Что означает файловый вариант работы — вы более или менее понимаете.

Клиент-серверный вариант работы предполагает обмен данными через сеть по специальному порту и IP-адресу того компьютера, где установлена база данных.

В случае клиент-серверного варианта работы на компьютере, где установлена база данных работает специальная служба, которую вы можете посмотреть в Панели управления, пункт “Администрирование” и выбрать оснастку “Службы”; в списке служб вы увидите примерно следующее (зависит от версии 1С) — “Агент сервера 1С:Предприятие 8.хх” или к примеру вот такую службу “1C:Enterprise 8.2 Server Agent:”.

В случае работы с клиент-серверным вариантом, очень полезна оснастка, которая находится в меню Пуск->Все программы(программы)->1С Предприятие 8.х->Дополнительно->Администрирование серверов 1С Предприятия.

Что нам дает данная оснастка в плане работы с пользователями и выгрузкой ИБ?

1. Здесь мы можем завершать работу пользователей

2. Здесь мы можем устанавливать блокировку, запрещающую вход пользователям (на тот случай если нам необходим монопольный доступ к информационной базе)

Оснастка может запрашивать пароль, но какой?

Имя пользователя и пароль (для вас как для Администратора БД) — укажите ваше Имя пользователя и пароль, который вы используете для входа в 1С:Предприятие.

Итак, что мы здесь видим. Видим сервер 1С Предприятия (My_1C) и информационную базу (порт по умолчанию 1541) — My_UPP. В правой части окна видим возможность выбрать -> Сеансы, Блокировки, Соединения.

Сейчас нас интересует ветка с информационными базами, — нажмите правую клавишу мыши на выбранной ИБ, и воспользуйтесь командой “Свойства”, Контекстного меню.

Для того, чтобы запретить пользователям входить и работать с информационной базой необходимо поставить галочку — “Блокировка начала сеансов включена”.

Обратите внимание на Даты начала блокировки и конца блокировки. Начиная с даты и времени начала блокировки и даты и времени окончания блокировки — база будет находиться в монопольном режиме.

До тех, пор пока вы не снимите галочку, никто не может войти и работать с информационной базой, но … Для того, чтобы вы могли сами заходить в ИБ(при помощи командной строки), предусмотрите Код разрешения.

Блокировка регламентных заданий включена — эта блокировка необходима для того, чтобы не разрешать 1С запускать различные регламентные задания в фоновом режиме. Регламентное задание — это какая-либо операция, запускающаяся по расписанию, иногда для того чтобы обновить конфигурацию — мешают регламентные задания, которые запускаются как назло в те моменты, когда вы работает с базой — можете на время воспользоваться указанной возможностью.

Часто бывает такая ситуация, что сервер 1С:Предприятия установлен на одном компьютере (какой-либо главный сервер, как в нашем случае My_1C), а “рулить” вы хотите сервером со своего локального компьютера. (Также возможна ситуация что у вас несколько серверов, а управлять вы хотите этими серверами с локальной оснастки вашего компьютера).

Сделаем следующее на локальной машине откроем оснастку “Администрирование серверов 1С Предприятия” (путь Пуск->Все программы (Программы)->1С_Предприятие 8.х->Дополнительно->Администрирование серверов 1С Предприятия). Если вдруг на локальной машине у вас не установлен этот компонент, то вы его не увидите — идете в Панель управления ->Установка и удаление программ и ищете строку с установкой 1С Предприятия, и изменяете настройку компонентов, добавляя оснастку “Администрирование сервера”

Итак, нашли, выполнили, посмотрели. Идём далее.

В оснастке мы видим пустую строку не включающую в себя ничего, что-то типа Console Root-> Central 1C:Entreprise 8.2 servers. Ставим курсор на эту строку, нажимаем правую клавишу мыши и выбираем команду Создать->Центральный сервер 1С Предприятия 8.2.

Вписываем имя нашего сервера, находящегося в сети, нажимаем “ОК”. и всё — мы имеем возможность работать с локального компьютера и управлять нашим сервером 1С.

Одно из правил управления временем — Если есть человек, которому можно делегировать выполнение задачи — делегируй.

Предыстория


Как я докатился до того, что — Я, системный администратор! — стал задаваться вопросами работы 1С?
Тирада в моей оригинальной статье, которую вряд ли кто читал, касалась того, какие лентяи 1С разработчики, и сами производители 1С, что одни понаделали много функций, но другие недостаточно хорошо описали, третьи поленились разобраться, а свалили всю рутину на системных администраторов, которым делать-то нечего, кроме как за элитой IT подметать. Думаю, здесь никто меня не похвалит за такие рассуждения. Хотя и похвалы особо не ищу. Единственная цель — чтобы это пригодилось кому-то, кто правильный лентяй-админ, и не любит заниматься одним и тем же помногу раз. А теперь о том, как это было.
Я столкнулся с таким положением дел, что всем сотрудникам наши 1С разработчики добавляют базы ручками, присутствуя на рабочем месте сотрудника, либо просят это сделать нас удалённо, подключившись к рабочему столу пользователя и мышкакликанием все повторить.
Выглядит это так:
— Миша, добавь Васи Пупкину базу: 1C-server:1551 «buh_prod»
— А как её назвать?
— Бухгалтерия

И не думайте, что в следующий раз, этот 1С разработчик скажет мне, что эту базу можно назвать именно также. Как следствие, у нас одна и та же база у разных сотрудников называлась по разному. Красота, не так ли?!
Ещё одна сторона этой проблемы в том, что Сотрудник должен быть на месте, компьютер включен, и у него должно быть время (5 мин), чтобы я мог всё это сделать. Если сотрудника нет на месте, то вы можете себе предположить, сколько от меня требуется трудозатрат, чтобы выловить этого сотрудника, согласовать с ним время и сделать это. А если этот сотрудник в удалённом офисе, на ноутбуке, и бывает в сети крайне редко, плюс разница поясов Владивосток — Москва, то это ещё добавляет остроты ощущений. Конечно, можно ещё ярлыком в почту бросить, но этим у нас 1С разработчики очень крайне редко пользуются — или не умеют, или не хотят, или за нас переживают, что без работы останемся, за что им отдельная благодарность и лучи поноса.
Баз у нас порядка пятнадцати. У каждой группы отдельный набор баз. А есть и такие, у кого строго индивидуальный список.
Следующая картина вам ещё больше понравится.
Поступает распоряжение от главы 1С'ников, что нужно трём отделам изменить базу, т.к. она переехала на другой сервер. Дальше не буду тратить буквы, т.к. всё что я описал выше множите на тридцать человек, двадцать из которых в другом офисе или даже другом городе. Классная задачка.
Не помню, сколько раз, я, таких суматох вынес, но было их больше десяти. После чего мне стало интересно, какие способы оптимизации этого процесса есть по unix-way'ю.
И стал я читать… Читал долго… Читал упорно… Документация 1С в справке мне совершенно не понравилась — написано так, как будто бы я уже это делал, поэтому большую часть идеи они оставляют между строк. Лучи поноса в написателей встроенной справки 1С. Как обычно это бывает, более-менее понятную инструкцию нашел на личном блоге, не помню уже кого.

Теория устройства конфигурационных файлов

В 1С организовано всё, что касается списков баз, в обычных текстовых, читаемых файлах с расширениями .cfg и .v8i, в кодировке utf-8. Так что, как вы наверняка догадываетесь, можно всё делать то же самое без отрыва пользователя, открывая файл по сети обычным текстовым редактором и правкой на прямую.

Расположение файлов на стороне пользователя

У пользователя на компьютере 1С 8.2 хранит фалы списков баз в каталогах:

Для Windows XP:
Профиль всех пользователей: С:\Documents and Settings\All Users\Application Data\1C\1CEstart\
Профиль пользователя: С:\Documents and Settings\%username%\Application Data\1C\1CEstart\

Для Windows 7:
Профиль всех пользователей: C:\ProgramData\1C\1CEStart\
Профиль пользователя: C:\Users\%username%\AppData\Roaming\1C\1CEStart\

Содержимое профиля пользователя — два файла: 1CEStart.cfg, ibases.v8i.
Содержимое директории профиля всех пользователей — один лишь, 1CEStart.cfg.

При запуске 1С берёт список баз к представлению в файле пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i, но предварительно читает настройки сначала из профиля всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, а потом и из профиля пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, и если в них есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.

Описание файла 1CEStart.cfg

В профиле всех пользователей конфигурационный файл C:\ProgramData\1C\1CEStart\1CEStart.cfg имеет следующее содержание:

Где:
InstalledLocation — содержит указание на каталог, в который выполнена установка 1С: Предприятие. По умолчанию это значение C:\Program Files (x86)\1Cv82.
CommonCfgLocation — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром.
CommonInfoBases — указывает путь и имя файла (.v8i) со списком общих информационных баз.
DistributiveLocation — содержит указание на каталог, в котором будет производится поиск новой версии для автоматической установки.
InstallComponents — В локальном конфигурационном файле (1CEStart.cfg) содержит перечень установленных компонент с признаком нужно установить компонету — 1, или нет — 0.

Возможны следующие компоненты параметра InstallComponents:
DESIGNERALLCLIENTS — все клиенты и конфигуратор.
THINCLIENT — тонкий клиент для клиент-серверного варианта работы.
THINCLIENTFILE — тонкий клиент с возможностью работы с файловыми информационными базами.
SERVER — сервер 1С: Предприятия. Если программа установки запускается из программы запуска, то сервер будет установлен как приложение.
WEBSERVEREXT — компоненты расширения для веб-сервера.
CONFREPOSSERVER — сервер хранилища конфигураций 1С: Предприятия.
SERVERCLIENT — компоненты для администрирования кластера серверов 1С: Предприятия.
CONVERTER77 — конвертер информационных баз из версии 1С: Предприятия 7.7.
LANGUAGES — список языков интерфейса для установки. Если указано несколько языков, они перечисляются через ”,”. Пример: LANGUAGES=RU,UK,BG

В профиле пользователя конфигурационный файл C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg первоначально пустой. Но, если какие-то настройки необходимо сделать индивидуально для конкретного пользователя, то писать именно в него, и тут уже его ключи настроек будут иметь больший приоритет, но не все. Это отдельный вопрос, им я не буду сейчас захламлять голову.

Описание файла ibases.v8i

Второй важный файл информационных баз, который находится в профиле самого пользователя — C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i. В него и собирается конечный список баз. Пример его содержимого:

Где:
[phonebook] – название базы 1С. Может быть как русскими буквами, так и английскими. Это то, что видит пользователь.

ID=34891493-907f-4783-8a37-3cbc092a989a — автоматически генерируемый уникальный код базы. Если у двух записей один и тот же ID, значит это одна база.
OrderInList=16640 — порядок в списке баз, когда базы представлены одним общим списком без подкаталогов; этот параметр из сетевого списка синхронизируется только в чистый ibases.v8i, если в ibases.v8i пользователя уже заполнен этой базой и этот параметр не будет перезаписываться, при его изменении в сети.
Folder=/ — задаёт место в дереве каталогов, если вид представления списка баз выставлен деревом; этот параметр имеет приоритет пользователя, и не меняется при изменении в сетевом конфиге.
OrderInTree=16640 — порядок в дереве, когда список баз представлен в виде иерархии подкаталогов; этот параметр имеет также приоритет пользователя, и синхронизируется только при первом добавлении базы, а далее подлежит изменению только локальным пользователем.
External=1 — внешняя подключаемая запись конфигурации или нет. Когда 0 тогда база присутствует только в этом файле. В данной ситуации эта запись импортируется из файла списка баз .v8i из сети. Это идентификатор, если это список баз расположенный в сети (расшаренный), то этот параметр можно вообще убрать из конфигурационного файла.
ClientConnectionSpeed=Normal — скорость соединения клиента. Опции могут быть “Nofmal” и “Low”. Логика ясна и без моих поиснений. Этот параметр интерактивный и при сетевом размещении синхронизируется при каждом запуске 1С.
App=Auto — тип соединения клиента. Бывает три типа:
— Auto — определяется сервером;
— ThinClient — тонкий клиент;
— ThickClient — толстый клиент.
Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
WA=1 — этот параметр говорит о том, что система должна использовать windows авторизацию. Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
Version=8.2 — используемая версия для этой базы. Если указать полностью конкретизируя какую платформу использовать, то будет использовать именно ту платформу, которую укажешь, как, например, во второй записи — Version=8.2.14.540. Этот параметр интерактивный и синхронизируется с сетевым конфигом при каждом запуске 1С.
Также есть ещё такой параметр как DefaultApp — тип соединения клиента по умолчанию, если в конфигурации для базы не задан, и DefaultVersion — используемая версия по умолчанию, если не задано в конфигурации для базы. Этот параметр пользовательский, и синхронизируется в чистый файл базы при первом запуске. Далее этим параметром управляет локальный пользователь.

Ссылки на конфигурационные файлы в сети
  • либо в конфигурационном файле всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы для всех пользователей компьютера;
  • либо в конфигурационном файле конкретного пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы только определённому пользователю на компьютере.
  • либо CommonCfgLocation=\\server\1C\config\bases.cfg — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
  • либо CommonInfoBases=\\server\1C\config\buh_bases.v8i — указывает путь и имя файла (.v8i) со списком общих информационных баз. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
  • или в комбинации и тот и другой, и помногу строк.

Идея использования возможностей

Идея заключается в том, чтобы делать правки с наименьшим количеством повторений. Если настройки базы или её расположение на сервере поменялось, то, исправив запись один раз в одном месте, мы получим актуальную информацию на всех компьютерах.
Для этого необходимо сделать шару в сети: \\server\1C\ . В этой шаре сделать, как минимум два каталога:
..\bases\
Листинг каталога:

В этом каталоге будут хранится файлы с расширением .v8i. Эти файлы будут иметь внутри себя настройки всего лишь одной базы для каждого файла. Причём указать следует только те параметры, настройки, которые критичны именно для этой базы, всё остальное автоматом подставится по умолчанию. Пример файла:

Следует избегать использования параметра ID , т.к. 1С разработчики используют для создания новой базы копипаст из имеющейся базы. А базы с одним ID будут конфликтовать.
..\groups\
Листинг каталога:

В этом каталоге будут храниться файлы с расширением .cfg. Эти файлы будут иметь внутри себя ссылки на базы в каталоге ..\bases\. Пример файла:

В первой части статьи был рассмотрен собственно Автономный сервер – приложение ibsrv, его преимущества, ограничения, показания к использованию.

Перейдем ко второй части, представляющей для кого-то, возможно, даже больший интерес. В первую очередь, думаю, это должно заинтересовать адептов CI-CD.

Утилита администрирования – ibcmd

Утилита администрирования на текущий момент предоставляет два режима работы

  • Server – в этом режиме создаются или изменяются конфигурационные файлы для Автономного сервера.
  • Infobase – предназначен для выполнения различных действий с информационными базами: создание, загрузка/выгрузка, импорт/экспорт и т.д.

Режим "server"

Режим работы server тесно связан с самим «Автономным сервером»

Главным его назначением является формирование корректного файла настроек для Автономного сервера, в формате YML.

Например, приведенная ниже команда, на основании переданных параметров и значений по умолчанию, сформирует файл sb_demo.yml, который далее можно указывать как самому серверу ibsrv, так и утилите управления ibcmd вместо длинной цепочки параметров.

>ibcmd server config init --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo.yml"

Содержимое созданного файла sb_demo.yml:

На этом, пожалуй, описание режима server можно считать исчерпанным.

Режим "infobase"

Возможности утилиты я продемонстрирую на примерах. В замечаниях будут указаны особенности, определенные экспериментально или в переписке с разработчиками на партнерском форуме.

Все примеры буду приводить с заполнением параметров командной строкой. Но в каждом из них можно вместо общих ключей указать путь к файлу конфигурации подобным образом:

>ibcmd infobase dump --config="%tmp%\sb_demo.yml" "%tmp%\sb_demo_2.dt"

Создание базы

Начнем, как обычно, с самого простого примера. Создадим файловую базу.

C:\Program Files (x86)\1cv8\8.3.14.1630\bin>ibcmd infobase create --db-path="d:\test\demo_db"
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено

В результате выполнения команды, создан каталог "d:\test\demo_db" и в нём размещена пустая база 1С – файл 1Cv8.1CD (и пара служебных файлов .cfl)


Одновременно с созданием, одной командой можно выполнить дополнительные действия:

  • Загрузить базу из dt-файла
  • Загрузить конфигурацию из cf-файла
  • Загрузить конфигурацию из XML-файлов
Создать и загрузить выгрузку из dt-файла.
>ibcmd infobase create --db-path="d:\test\demo_db" --restore="E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt" C:\Program Files (x86)\1cv8\8.3.14.1630\bin>ibcmd infobase create --db-path="d:\test\demo_db" --restore="E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt"
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Загрузка информационной базы.
[ INFO] Загрузка информационной базы успешно завершена
Создать и загрузить Конфигурацию из cf-файла.

Для разнообразия создадим новую базу с размещением в СУБД. Добавляем ключ загрузки из cf-файла и путь к нему. Повторяющиеся ключи и параметры в дальнейших примерах будут затенены серым шрифтом.

>ibcmd infobase create --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 --create-database --load="%tmp%\sb_demo.cf" C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase create --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 --create-database --load="%tmp%\sb_demo.cf"
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Загрузка конфигурации.
[ INFO] Загрузка конфигурации успешно завершена

Замечание. При создании базы в СУБД, смысл команды create правильнее было бы назвать «инициализацией», т.к. выполняется создание структуры таблиц и индексов в существующей базе данных. Если же базы данных не существует, будет выдана ошибка. Чтобы при отсутствии базы данных она была создана, требуется указать ключ --create-database , аналогично установке флажка «Создать базу данных в случае её отсутствия» в консоли кластера.

Создать и загрузить Конфигурацию из XML-файлов.

Меняем ключ загрузки на --import и указываем каталог с исходниками.

>ibcmd infobase create --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 --create-database --import="%tmp%\sb_demo_export" C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase create --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 --create-database --import="%tmp%\sb_demo_export"
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Импорт конфигурации из XML.
[ INFO] Импорт конфигурации из XML успешно завершен

Замечание. Загрузка конфигурации из cf-файла или XML-файлов выполняется в «основную» Конфигурацию информационной базы. Конфигурация базы данных после такой операции остается прежней. Чтобы сразу после загрузки произвести обновление конфигурации базы данных, можно добавить ключ --apply .

Загрузка и выгрузка сf, cfe, dt, xml

Разумеется, загрузку dt, cf, cfe, xml-файлов можно выполнить и отдельными командами, без создания информационной базы. Выгрузка во всех поддерживаемых форматах также присутствует.

>ibcmd infobase restore --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt" >ibcmd infobase dump --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo.dt"

Загрузка конфигурации из cf-файла:

>ibcmd infobase config load --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo.cf"

Выгрузка конфигурации в cf-файл:

>ibcmd infobase config save --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo.cf"

Замечание. Для команды выгрузки конфигурации save по умолчанию выгружается конфигурация базы данных, а не основная. Для того, чтобы сохранить основную конфигурацию, необходимо указать ключ --staging

Загрузка конфигурации из XML-файлов:

>ibcmd infobase config import --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo_export"

Выгрузка конфигурации в XML-файлы:

>ibcmd infobase config export --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo_export"

Замечание. Для команд загрузки и выгрузки конфигурации доступно указание ключа --extension и имени расширения, которое нужно загрузить или выгрузить.

Обновление конфигурации базы данных

После загрузки Конфигурации или расширения, конечно же, требуется обновить конфигурацию базы данных.

>ibcmd infobase config apply --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase config apply --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123
[ INFO] Обновление конфигурации базы данных.
[ INFO] Проверка корректности метаданных.
[ INFO] Обработка структуры базы данных.
[ INFO] Обработка данных: Реструктуризация Перечисление.РезультатыОбработкиЗапросовНаИспользованиеВнешнихРесурсовВМоделиСервиса
.
[ INFO] Новый объект: РегламентноеЗадание.ЧтениеНовостейСлужбыПоддержки
[ INFO] Новый объект: РегламентноеЗадание.ЭкспортОценкиПроизводительности
[ INFO] Изменена структура таблиц базы данных
[ INFO] Принятие изменений.
[ INFO] Обновление конфигурации базы данных успешно завершено

Прочие команды

Без примеров оставлю последние три команды, что есть в текущей версии утилиты.

  • config check - проверка конфигурации
  • config reset - восстановление конфигурации базы данных.
  • clear - очистка информационной базы

Для чего всё это нужно?

Предполагаю, что у Вас уже возник вопрос: «И чем это отличается от пакетного режима Конфигуратора, который делает всё то же самое, и даже больше, давным-давно?». Признаюсь, я ждал этого вопроса.

Отличия от пакетного режима Конфигуратора:

Во-первых, для выполнения описанных действий посредством Конфигуратора, нужно, как минимум, чтобы Клиентская часть Платформы была установлена. С этим не возникает проблем, когда Вы работаете на своем компьютере с локальной базой. Но когда база расположена на сервере, который является только сервером приложений 1С, для загрузок-выгрузок есть следующие варианты:

а) выполнять операции Конфигуратором по сети. Это может занимать очень продолжительное время ввиду особенностей сетевого обмена между компонентами Платформы.

б) устанавливать клиентскую часть Платформы на сервер. Исключительно с целью ускорения выгрузок-загрузок.
А если Ваш сервер – на Linux и без графического интерфейса? Конечно, можно установить пакет Xvfb, эмулирующий вывод на дисплей, но ведь это «костыли», как Вы считаете?

Выполнение действий утилитой ibcmd возможно непосредственно на сервере, без установленного Клиентского приложения. Специально ничего устанавливать не требуется. Утилита присутствует в дистрибутиве сервера приложений 1С.

Во-вторых, клиентское приложение, в частности и Конфигуратор, работающий в пакетном режиме, требует лицензию. И возможность получить лицензию Конфигуратором есть не всегда.

Пример: лицензии выдаются Сервером 1С, локальных лицензий нет. При этом требуется загрузка/выгрузка для файловой базы.

Для выполнения действий утилитой ibcmd лицензия не требуется. Ни клиентская, ни серверная.

В-третьих, все операции с базой, выполняемые Конфигуратором, требуют авторизации в этой базе.

Пример: требуется извлечь конфигурацию из dt-файла, который Вам достался, скажем, из архива и неизвестен пароль пользователя ИБ, обладающего административными правами в ней.

Традиционный способ – создать временную информационную базу в клиент-серверном варианте, чтобы иметь возможность очистки таблицы пользователей. Загрузить в неё dt-файл. Очистить таблицу пользователей базы в СУБД. Перезапустить Конфигуратор. Выгрузить конфигурацию в файл. Удалить временную базу из СУБД.

Для операций, выполняемых ibcmd не требуется авторизация информационной базы.

Выполнение той же задачи посредством ibcmd, будет выглядеть следующим образом:

>ibcmd infobase create --db-path="%tmp%\db" --restore="%tmp%\some_infobase.dt"
>ibcmd infobase config save --db-path="%tmp%\db" "%tmp%\some_infobase.cf"

Да, я в знаю что существуют разработки на Инфостарте, позволяющие извлечь конфигурацию в виде cf-файла непосредственно из dt-файла. Здесь я описываю штатные механизмы.

В-четвертых, для выгрузки конфигурации посредством ibcmd, не имеет значения, запущен ли в данный момент Конфигуратор этой базы у кого-то еще или нет. Просто потому что мы не запускаем Конфигуратор.

Более того, я пока не знаю, расценивать ли это как баг или как фичу, но для выгрузки dt-файла не требуется монопольный режим! Конечно же, пользоваться этим стоит с осторожностью. Не думаю что попытка сделать dt-шник в момент активной работы с базой пройдет без негативных эффектов.

В-пятых. Формат командной строки гораздо проще чем для Конфигуратора. Кроме того, есть возможность использования конфигурационного файла, чтобы не указывать повторяющиеся параметры подключения.

Возможно, Вы сможете добавить еще пару-тройку отличий, если заинтересуетесь инструментом и станете им пользоваться.

Чего не хватает для полного счастья

Перечислю функционал, который хотелось бы увидеть в релизе (первоочередные хотелки):

  • Инкрементальная выгрузка в XML только тех файлов, версии которых изменены.
    Сейчас доступна только полная выгрузка в XML.
  • Работа с Хранилищем конфигураций: выгрузка версий, получение отчета по версиям.
  • Экспорт непосредственно в формат EDT.
    Об этом отдельно ниже.
  • Логирование в Технологическом Журнале в полном объеме.
    Сейчас привычных событий SDBL, DBMSSQL, DBPOSTGRS, DBV8DBENG в ТЖ нет. Пишется только служебное SYSTEM.


Мне представляется, что утилита ibcmd получилась очень функциональным и универсальным инструментом. Возможно, даже более универсальным, чем изначально предполагалось. И сейчас, пока инструмент в статусе беты, у нас есть возможность повлиять на его дальнейшее развитие. Одним из применений и векторов развития мне видится использование в контурах CI-CD. Как для "традиционной" разработки с использованием Хранилищ, так и для работы в новом формате EDT.

Чтобы заменить пакетный режим Конфигуратора в процессе синхронизации "традиционной" разработки с репозиторием Git, не хватает только возможности работы с Хранилищем.

В своей переписке на партнерском форуме с разработчиками я обозначил такой вектор возможного развития инструмента и получил обещание проанализировать и подумать. Ниже привожу цитату своего описания возможного сценария использования. Здесь я защищал предложения включить возможность работы с Хранилищем и выгрузки в формате EDT.

  • перевода существующих разработок в формат EDT
  • совместной работы над общим Проектом, команд, ведущих разработку "традиционным методом" в Хранилище и "новаторских" с EDT. Пример такой работы приведен в статье "Постепенный переход на разработку в EDT".
  • синхронизации Хранилища с репозиторием Git для целей CI-CD.
  • необходимость установки Клиента и использование клиентских лицензий
  • необходимость установки java
  • необходимость установки самой EDT для конвертации XML-EDT

Заключение

Спасибо всем, кто дочитал до конца. Статья получилась значительно больше, чем я предполагал, создавая заготовку. Надеюсь, что я не зря потратил силы и время, и Вы открыли для себя что-то новое.

Создание новой информационной базы 1С Предприятие 8 достаточно востребованная функция у специалистов, обслуживающих конфигурации 1С. Эта операция необходима для восстановления резервной копии 1С Предприятие 8 или создания собственной 1С конфигурации с нуля для разработки, поэтому рассмотрим процесс создания новой информационной базы 1С Предприятие 8.3 подробно.

Базы 1С Предприятие 8 бывают в двух вариантах:

  1. Файловые (когда данные 1С Предприятие 8 хранятся в файле каталога на компьютере);
  2. Клиент-серверные (когда данные 1С Предприятие 8 хранятся в базе данных, например MS SQL Server).

Для полного раскрытия темы, необходимо рассмотреть процедуры создания и подключения обоих типов информационных баз 1С, поэтому план сегодняшней беседы следующий:

Создание новой информационной базы 1С Предприятие в файловом варианте

Процедура создания новой файловой информационной базы 1С Предприятие 8 более простая, нежели создание клиент-серверной базы данных 1С, поэтому начнем с этого типа. Для создания новой файловой базы 1С Предприятие 8 необходимо проделать следующие шаги:

Каталог размещения файловой ИБ 1С Предприятие 8.3

Создание новой информационной базы 1С Предприятие 8

Способы создания пустой базы 1с

Создание пустой базы 1с

Создание новой информационной базы 1С Предприятие 8 в клиент-серверном варианте

Клиент-серверную базу 1С Предприятие 8 можно создать несколькими способами:

Рассмотрим оба этих способа.

Создание клиент-серверной информационной базы 1С Предприятие 8 через утилиту администрирования серверов

Утилита администрирования серверов 1С устанавливается при установке платформы 1С Предприятие 8.

Утилита администрирования серверов 1С Предприятия - Создание новой информационной базы 1С Предприятие
Создание новой информационной базы 1С Предприятие (клиент-серверный тип)

Заполняем параметры создаваемой базы:

Создание новой клиент-серверной информационной базы 1С Предприятие 8 завершено, но что бы работать с созданной базой, её необходимо подключить в окне запуска 1С Предприятие. Вопрос подключения баз 1С Предприяте 8 рассматривается ниже.

Создание клиент-серверной информационной базы 1С Предприятие 8 через мастера добавления информационной базы 1С

В мастере добавления информационной базы указываем, что будем создавать базу на сервере 1С Предприятие (см. рис.).

Подключение клиент серверной базы 1С Предприятие 8.3

Указываем параметры подключения информационной базы, такие же, как мы указывали в Утилите администрирования серверов 1С (выше). В остальном, создание новой информационной базы 1С Предприятие 8 аналогично для всех типов. В результате будет создана клиент-серверная база 1С Предприятие уже готовая к запуску.

Добавление в окне запуска существующей базы данных 1С Предприятие 8

Добавление существующей ИБ 1С Предприятие 8.3

В следующем окне указываем тип подключаемой базы:

  • На данном компьютере или на компьютере в локальной сети;
  • На веб-сервере;
  • На сервере 1С Предприятие 8.

Добавить существующую 1С базу

Соответственно, первый вариант подключения относится к файловым информационным базам. Для их подключения указываем адрес размещения папки с базой 1С Предприятие 8. В начале статьи мы создавали базу, для её подключения указываем путь до её расположения.

Строка подключения файловой базы данных 1С Предприятие 8.3

Базы 1С Предприятие 8 могут публиковаться на веб-сервере, и соединяться через интернет. Для создания такого типа подключения, необходимо заполнить интернет адрес расположения информационной базы 1С.

Строка подключения веб базы данных 1С Предприятие 8.3

Третий вариант нужен для подключения клиент-серверной базы 1С Предприятие 8 размещенной на сервере 1С Предприятие 8.

Строка подключения клиент-серверной базы данных 1С Предприятие 8.3

подключение клиент серверной базы 1С Предприятие 8.3

В остальном, подключение одинаково для всех типов информационных баз.

После этих операций, в списке информационных баз добавится новая строка с подключенной базой 1С Предприятие 8.

Создание новой информационной базы 1С Предприятие 8.3 - Подключение базы

Запуск пустой базы 1С в конфигураторе 1С Предприятие

Создание новой информационной базы 1С Предприятие 8 успешно завершено!

В случае, если у вас не получится войти в базу, поскольку платформа 1С запросит ввод лицензии, то порядок действий вы можете прочитать в статье о системе лицензирования 1С Предприятие.

На сегодня ВСЁ! Желаю приятной работы с 1С Предприятие 8.

Читайте также: