Создание базы 1с командная строка
Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы MS Windows, запуск системы 1С:Предприятие 8.x может быть выполнен путем запуска исполняемого файла 1CV8.EXE. Такой запуск может быть произведен, например, при помощи пункта «Выполнить» меню «Пуск» операционной системы MS Windows, или двойным щелчком мыши на имени файла 1CV8.EXE в программе Проводник (Explorer).
В командной строке запуска файла 1CV8.EXE можно указать все необходимые параметры: режим запуска, имя каталога с информационной базой, имя пользовательского каталога, и другие. Если параметры командной строки указаны верно, файл 1CV8.EXE будет запущен в одном из режимов запуска: «1С:Предприятие» или «Конфигуратор» — в зависимости от указанных параметров.
Если при запуске файла 1CV8.EXE обнаружена ошибка в параметрах командной строки, или параметры отсутствуют, то после запуска на экран будет выдан диалог «Запуск 1С:Предприятия». В этом диалоге пользователь может выбрать режим запуска файла 1CV8.EXE, имя информационной базы и другие параметры запуска.
Для файлового варианта определен параметр:
File — каталог информационной базы;
Locale — язык (страна), которые будут использованы при создании информационной базы. Допустимые значения такие же как у параметра <Форматная строка> метода Формат. Параметр Locale задавать не обязательно. Если не задан, то будут использованы региональные установки текущей информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr — имя сервера 1С:Предприятия;
Ref — имя информационной базы на сервере;
SQLSrvr — имя SQL сервера;
SQLDB — имя SQL базы данных;
SQLUID — имя пользователя SQL;
SQLPwd — пароль пользователя SQL. Если пароль для пользователя SQL не задан, то данный параметр можно не указывать
SQLYOffs - смещение дат, используемое для хранения дат в SQL Server. Может принимать значения 0 или 2000. Данный параметр задавать не обязательно. Если не задан принимается значение 0.
Locale - язык (страна), (аналогично файловому варианту).
Для всех вариантов определены параметры:
Usr — имя пользователя;
Pwd — пароль
/AddInList - параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список. Если не указано имя, используется умолчание, аналогичное интерактивному созданию информационной базы.
Одновременное использование ключей не допускается.
При наличии ссылок на несуществующие объекты:
BadRefCreate - создавать объекты
BadRefClear - очищать объекты
BadRefNone -не изменять
при частичной потере объектов:
BadDataCreate - создавать объекты
BadDataDelete - удалять объекты
Одновременное использование ключей внутри подгруппы параметров не допускается.
Если команда прошла успешно, возвращает код возврата 0, в противном случае — 1 (101, если в данных имеются ошибки).
После выполнения закрывает систему 1С:Предприятие 8.x.
Параметры командной строки пакетного режима создания файлов поставки и обновления:
/CreateDistributionFiles [-cffile<имя cf файла>] [-cfufile <имя cfu файла> [-f<имя cf файла>|-v<версия дистрибутива>]+] - Создание файлов поставки и обновления
-cffile<имя cf файла> - указание создать дистрибутив
-cfufile<имя cfu файла> - указание создать обновление
-f<имя cf файла> - дистрибутив, включаемый в обновление, задан именем
-v<версия дистрибутива>] - дистрибутив, включаемый в обновление, задан версией
Примечание: группа параметров -f<имя cf файла>|-v<версия дистрибутива> повторяется столько раз, сколько файлов дистрибутивов включается в обновление.
Параметры командной строки режима работы с хранилищем конфигурации:
/DepotF - каталог хранилища
/DepotN - имя пользователя хранилища
/DepotP - пароль пользователя хранилища
/DepotDumpCfg<имя cf файла> [-v<номер версии хранилища>] - сохранить конфигурацию из хранилища в файл (пакетный режим)
-v<номер версии хранилища>
v - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/DepotUpdateCfg [-v<номер версии хранилища>] [-revised] - Обновить конфигурацию хранилища из файла (пакетный режим)
-v<номер версии хранилища> - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация подключена к хранилищу, то параметр игнорируется
-revised - получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется.
Параметры командной строки пакетного режима регистрации 1С:Предприятия 8.x в качестве Automation сервера:
/RegServer - регистрация приложения
/UnregServer - удаление регистрации приложения
После выполнения закрывает систему 1С:Предприятие 8.x.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.
Суть рассматриваемого вопроса изложена в заголовке, повествование разобьем на три части. Отдельно внизу будут приведены тексты скриптов.
1) Предисловие
Вопрос необходимости резервного копирования в автоматическом режиме не подлежит сомнению ни у корифеев, ни у новичков. В статье рассмотрим резервное копирование средствами 1С (что имеет ряд преимуществ перед копированием средствами СУБД). При этом будут применены средства пакетного запуска платформы 1С, powershell и планировщик задач Windows.
Задачи обновления информационных давно автоматизированы, но только для типовых конфигураций, либо тех, что используют библиотеку стандартных подсистем. В моем случае мы работаем со старенькой Альфа-Авто редакции 4, которая распространяется на 12 серверов. Изменения вносятся примерно два раза в неделю, поэтому выгода от автоматизации налицо.
В обоих случаях мы имеем следующие исходные данные:
- Операционная система Windows Server (версии от 2008 до 2012);
- Клиент-серверный вариант платформы 1С 8.3 (с обязательно установленным компонентом COM-соединение).
2) Резервное копирование
После прочтения указанных ссылок мы уже знаем, что надо сделать, чтобы запустить скрипт powershell, поэтому сразу перейду к делу.
Сделать резервную копию информационной базы в пакетном режиме очень просто, надо только «выгнать» всех пользователей. Делать мы это будем, подключившись COM-объектом к базе данных. Это в нашем примере делает функция ExitAll. В тело функции зашито, что она вызывается на том сервере, на котором, собственно, установлен кластер серверов 1С. Вызовите эту функция безо всяких параметров в своем скрипте на сервере — и ВСЕ пользователи из ВСЕХ баз кластера вылетят.
Приношу свои извинения человеку, чьим кодом я воспользовался при написании этой процедуры — авторство восстановить не удалось.
После этого следует вызвать функцию BackUpBase с параметром — имя информационной базы. У меня во всех ИБ есть служебный администратор с одинаковыми учетными данными, поэтому я их просто захардкодил. При необходимости можно их параметризовать, либо обойтись аутентификацией ОС.
Итоговый скрипт сохраняем в файл.
В планировщике задач создаем «Простую задачу», имя, разумеется, на ваше усмотрение.
У меня работает ежедневно, но и тут хозяин — барин. Запускать лучше всего ночью, когда никто не работает, например, в 3:00. Действие для задачи — «Запустить программу». Сама программа у нас «powershell.exe». А вот ее аргументы —
где ExitAllUsersAndBackup.ps1 — как раз наш сохраненный скрипт.
-ExecutionPolicy RemoteSigned — ключ, который разрешает выполнение пакетных скриптов powershell, если в системе они глобально не разрешены. Работает через раз (возможно, не хватает компетенции чтобы разобраться, но закономерности не нашёл). В случаях, когда не работает с этим ключом, приходится разрешать выполнение скриптов для всего сервера.
Для этого Win+R, powershell.exe,
и подтверждаем действие.
Время работы с данными скриптами — более трех месяцев. Перебои были, но связаны с отключением электричества и прочими внешними факторами.
3) Обновление конфигурации
После того, как все пользователи вышли (или выгнаны, как в предыдущем случае), можно обновлять конфигурацию. Наличие регламентных заданий может помешать обновлению, так как с момента отключения всех пользователей и открытия конфигуратора для загрузки конфигурации вполне может начать работу какое-то задание. Поэтому расписание следует обдумать.
Конфигурацию мы храним на ftp-сервере, на который помещаем ее вручную. Файл конфигурации называется GK.cf, в приведенном примере обновляется одна единственная конфигурация. Потенциально можно так же обновлять и несколько различных конфигураций.
На ftp рядом с GK.cf помещаем файл с названием flag.txt. Наличие этого файла сигнализирует о том, что обновляться надо. Можно проверять наличие самого фйла GK.cf, но мы используем флаг так же для других целей.
Скрипт работает следующим образом:
- Удаляет GK.cf и flag.txt, если таковые есть в рабочем каталоге (у пользователя, от имени которого будет запускаться планировщик, должно быть право на запись в этот каталог);
- Предпринимается попытка скачать файл флага;
- Если такой файл скачать получилось — скачиваем .cf;
- Собственно, обновление функцией UpdateCf.
Надежность этого скрипта чуть меньше. Обновление проходит до конца на 100% в тех случаях, когда меняется структура метаданных. В других случаях бывает, как я предупреждал ранее, появление активного пользователя. В результате конфигурация загружена в базу, но конфигурация базы данных не обновлена (снова прошу прощения за подобную кривоватую терминологию перед людьми, не связанными с 1С). В остальном — полет нормальный.
Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы MS Windows, запуск системы 1С:Предприятие 8.x может быть выполнен путем запуска исполняемого файла 1CV8.EXE. Такой запуск может быть произведен, например, при помощи пункта «Выполнить» меню «Пуск» операционной системы MS Windows, или двойным щелчком мыши на имени файла 1CV8.EXE в программе Проводник (Explorer).
В командной строке запуска файла 1CV8.EXE можно указать все необходимые параметры: режим запуска, имя каталога с информационной базой, имя пользовательского каталога, и другие. Если параметры командной строки указаны верно, файл 1CV8.EXE будет запущен в одном из режимов запуска: «1С:Предприятие» или «Конфигуратор» — в зависимости от указанных параметров.
Если при запуске файла 1CV8.EXE обнаружена ошибка в параметрах командной строки, или параметры отсутствуют, то после запуска на экран будет выдан диалог «Запуск 1С:Предприятия». В этом диалоге пользователь может выбрать режим запуска файла 1CV8.EXE, имя информационной базы и другие параметры запуска.
Для файлового варианта определен параметр:
File — каталог информационной базы;
Locale — язык (страна), которые будут использованы при создании информационной базы. Допустимые значения такие же как у параметра <Форматная строка> метода Формат. Параметр Locale задавать не обязательно. Если не задан, то будут использованы региональные установки текущей информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr — имя сервера 1С:Предприятия;
Ref — имя информационной базы на сервере;
SQLSrvr — имя SQL сервера;
SQLDB — имя SQL базы данных;
SQLUID — имя пользователя SQL;
SQLPwd — пароль пользователя SQL. Если пароль для пользователя SQL не задан, то данный параметр можно не указывать
SQLYOffs - смещение дат, используемое для хранения дат в SQL Server. Может принимать значения 0 или 2000. Данный параметр задавать не обязательно. Если не задан принимается значение 0.
Locale - язык (страна), (аналогично файловому варианту).
Для всех вариантов определены параметры:
Usr — имя пользователя;
Pwd — пароль
/AddInList - параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список. Если не указано имя, используется умолчание, аналогичное интерактивному созданию информационной базы.
Одновременное использование ключей не допускается.
При наличии ссылок на несуществующие объекты:
BadRefCreate - создавать объекты
BadRefClear - очищать объекты
BadRefNone -не изменять
при частичной потере объектов:
BadDataCreate - создавать объекты
BadDataDelete - удалять объекты
Одновременное использование ключей внутри подгруппы параметров не допускается.
Если команда прошла успешно, возвращает код возврата 0, в противном случае — 1 (101, если в данных имеются ошибки).
После выполнения закрывает систему 1С:Предприятие 8.x.
Параметры командной строки пакетного режима создания файлов поставки и обновления:
/CreateDistributionFiles [-cffile<имя cf файла>] [-cfufile <имя cfu файла> [-f<имя cf файла>|-v<версия дистрибутива>]+] - Создание файлов поставки и обновления
-cffile<имя cf файла> - указание создать дистрибутив
-cfufile<имя cfu файла> - указание создать обновление
-f<имя cf файла> - дистрибутив, включаемый в обновление, задан именем
-v<версия дистрибутива>] - дистрибутив, включаемый в обновление, задан версией
Примечание: группа параметров -f<имя cf файла>|-v<версия дистрибутива> повторяется столько раз, сколько файлов дистрибутивов включается в обновление.
Параметры командной строки режима работы с хранилищем конфигурации:
/DepotF - каталог хранилища
/DepotN - имя пользователя хранилища
/DepotP - пароль пользователя хранилища
/DepotDumpCfg<имя cf файла> [-v<номер версии хранилища>] - сохранить конфигурацию из хранилища в файл (пакетный режим)
-v<номер версии хранилища>
v - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/DepotUpdateCfg [-v<номер версии хранилища>] [-revised] - Обновить конфигурацию хранилища из файла (пакетный режим)
-v<номер версии хранилища> - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация подключена к хранилищу, то параметр игнорируется
-revised - получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется.
Параметры командной строки пакетного режима регистрации 1С:Предприятия 8.x в качестве Automation сервера:
/RegServer - регистрация приложения
/UnregServer - удаление регистрации приложения
После выполнения закрывает систему 1С:Предприятие 8.x.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.
- Обновление конфигурации БД в фоновом режиме;
- Доп.управление распределением по рабочим серверам кластера в разрезе ИБ, видов клиентских приложений и фоновых заданий:
- сервисов кластера;
- соединений с ИБ.
- безопасность расхода памяти за один вызов;
- количество инфобаз на процесс;
- объем памяти рабочих процессов, по достижении коего сервер считается производительным;
- максимальный объем памяти рабочих процессов;
- стратегия балансировки (по памяти, по производительности).
Почти все примеры изменений настроек, которые будут приведены в данной статье, иллюстрируют возможность Консоли сервера 1С, то есть, в свете новых правил, такие изменения на рабочем сервере требуют использования лицензии версии КОРП.
Консоль управления сервером 1С или консоль администрирования серверов 1С, или консоль кластера серверов 1С – это утилита, входящая в состав 1С Предприятие 8.3, которая необходима для:
- Управления сеансами;
- Управления списком баз;
- Создания кластеров 1С для отказоустойчивой архитектуры и для масштабируемости;
- Гибкой настройки работы рабочих процессов;
- Ограничения потребления ресурсов;
- Разграничения выполняемых задач рабочими серверами (чтобы выносить отдельные сервисы на различные рабочие сервера);
- Управления профилями безопасности.
Если вы хотите подобрать сервер для 1С 8.3, обратитесь к нашим специалистам оп телефону или прямо на сайте.
Управление базами данных в консоли кластера
При работе в клиент-серверной архитектуре пользователи, скорей всего, так или иначе, сталкиваются с консолью администрирования серверов, как минимум, когда добавляют новую базу в список информационных баз. Чтобы добавить новую базу, необходимо кликнуть правой кнопкой мышки на информационные базы и выбрать пункт «Создать».
В этом окне заполняются настройки подключения к СУБД, а при ее отсутствии можно воспользоваться опцией «Создать базу в случае ее отсутствия». Остальные настройки можно оставить по умолчанию.
Также можно открыть окно этих же настроек уже созданной информационной базы, для чего необходимо кликнуть правой кнопкой мыши на информационную базу и выбрать пункт меню «Свойства».
Здесь мы может установить блокировку начала сеансов (установить блокировку на определенный период). Пока установлена блокировка, ни один сеанс не сможет подключиться к базе.
Эта опция может применяться, например, при проведении каких-либо регламентных работ с базой (как правило, это обновление базы). Но когда требуется вход администраторов в базу с наложенной блокировкой сеансов, нужно воспользоваться опцией «Код разрешения». Указав код, в будущем, используя его, можно будет работать с базой. Например, установим код разращения 123, чтобы позже зайти в базу. С кодом разрешения необходимо использовать параметр /UC.
Рис.7 С кодом разрешения необходимо использовать параметр /UCПараметр блокировки – произвольный параметр, который можно использовать в программном коде. Блокировка получится при использовании функции ПолучитьБлокировкуСеансов().
Блокировка регламентных заданий включена – означает, что в нашей базе данных не будут выполняться регламентные задания.
Рассмотренные опции используются наиболее часто. Остальные в жизни применяются очень редко, и информацию о них можно почитать на ИТС.
Работа с сеансами консоли администрирования
В консоли администрирования можно управлять подключенными сеансами определенной БД, а также общими сеансами на данном кластере.
Из этого окна можно получить большой объем информации, начиная с того, какого пользователя этот сеанс, и заканчивая данными потребления памяти сеансом, а также – сколько было получено данных СУБД, сколько было затрачено процессорного времени и многое другое.
С помощью профилей безопасности можно настроить, какие модули могут расширяться расширениями, ограничивать расширения определенных модулей конфигурации, ограничивать доступ к файловой системе из прикладного кода, ограничивать доступ к COM объектам, к внешним компонентам, к сторонним приложениям и т.д.
Рабочие процессы (объединение в кластер)
В платформе 1С 8.2 можно было вручную создавать рабочие процессы сервера приложений (рабочий процесс rphost). В 8.3 рабочие процессы создает ragent. Количеством одновременно работающих процессов можно управлять косвенно, через настройки рабочих серверов.
При использовании настроек, заданных по умолчанию, будет использован один rphost на 8 информационных баз или на 128 соединений. Если у вас 32-разрядная ОС (т.е. существуют ограничения по потреблению оперативной памяти на один процесс), рекомендуется изменить эти значения, например, установить одну базу на процесс и уменьшить количество соединений. Оптимальное количество соединений подбирается эмпирически и во многом зависит от конкретной конфигурации и количества фоновых заданий.
Поскольку мы рассматриваем свойства рабочих процессов, стоит упомянуть про другие настройки:
Максимальный объем памяти рабочих процессов, значение в байтах (доступный всем рабочим процессам кластера на данном рабочем сервере).
Может принимать значение от -1 до 9 223 372 036 854 775 807:
- -1 – без ограничений;
- 0 – определяется автоматически как 80% объема оперативной памяти сервера.
Безопасный расход памяти за один вызов значение в байтах.
Может принимать значение от -1 до 9 223 372 036 854 775 807:
- -1 – любой вызов сервера считается опасным, если за время вызова сервера достигнут максимальный объем памяти рабочего процесса;
- 0 – значение объема определяется автоматически, как 5% максимального объема памяти рабочих процессов на данном рабочем сервере.
Если за время вызова объем памяти превысил параметр Безопасный расход памяти за один вызов, и общее потребление памяти всеми процессами rphost превысило значение, установленное в Максимальный объем памяти рабочих процессов, такой вызов будет прерван.
Объем памяти рабочих процессов, до которого сервер считается производительным, измеряется в байтах. Значение 0 показывает, что ограничение не установлено. Общий объем памяти, занятый всеми рабочими процессами этого рабочего сервера, по достижению которого на этот рабочий сервер перестанут назначаться новые соединения.
Флаг менеджер под каждый сервис означает, что будет назначен отдельный экземпляр менеджера кластера (процесс rmngr) под каждый сервис. Список сервисов, которые выполняются в кластере:
Рис.14 Список сервисов, которые выполняются в кластереФлаг Центральный сервер означает, что данный сервер сможет применять соединения и выполнять синхронизацию реестра кластера.
Настройки рабочих процессов можно применять только при использовании КОРП лицензий! Если у вас ПРОФ лицензия, настройки будут доступны, однако на пользование ими у вас не будет прав.
Объединение серверов в кластер
Сервера 1С можно объединять в кластер для решения задач масштабируемости (распределения нагрузки) и отказоустойчивости. Объединяются сервера в кластер просто, достаточно создать рабочий сервер.
Если в новом сервере не устанавливать опцию «центральный сервер», то такой сервер будет считаться рабочим и не сможет принимать на себя подключение сеансов. Такая архитектура взаимодействия серверов применяется для масштабируемости, она не может быть отказоустойчивой, поскольку для этого должны быть центральные сервера, а также задан уровень отказоустойчивости в свойствах кластера.
Уровень отказоустойчивости задается как количество центральных серверов -1.
В окне настроек также можно задавать ограничения потребления ресурсов на рабочий процесс (rphost). Настройки будут заданы на весь кластер.
Интервал перезапуска – интервал в секундах, через который будет перезапущен рабочий процесс. Отсчет начинается с момента установки данной опции.
Допустимый объем памяти стоит устанавливать из расчета, что в случае срабатывания условия превышения показателя будет запущен еще один процесс rphost того же объема, т.е. момент времени у нас будет два процесса, пока соединения со старого не переключатся на новый.
Интервал превышения допустимого объема памяти – интервал в секундах, в течение которого допустимо потребление памяти, установленное в параметре Допустимый объем памяти.
Интервал превышения допустимого объема памяти. Если значение свойства Допустимого отклонения количества ошибок сервера равно 0, то проверка отклонения количества ошибок не выполняется. Вне зависимости от установленного значения этого свойства рабочий процесс, который совершает не более 1 ошибки на 100 запросов, считается функционирующим нормально и не признается проблемным. Рассмотрим пример работы свойства Допустимое отклонение количества ошибок сервера. Допустим, на 100 запросов фиксируется, в среднем, 2 ошибки за последние 5 минут. Если свойство Допустимое отклонение количества ошибок сервера установлено в значение 50, то проблемным будет считаться тот рабочий процесс, для которого будет фиксироваться более 3 ошибок на 100 запросов.
Перезапуск процессов происходит «мягко»:
- Запускается новый процесс rphost;
- Старый процесс rphost выключается, но не завершается;
- Соединения назначаются на только что созданный процесс rphost, который сразу полноценно включается в работу;
- Старый процесс будет поддерживать существующие на нем вызовы. Поддержка работы уже назначенных вызовов будет происходить в течение времени, установленного в параметре «Выключенные процессы останавливать через» секунд.
Назначение отдельных сервисов на различные рабочие сервера
При объединении нескольких серверов в кластер, мы можем выносить определенные сервисы на отдельные сервера. Например, мы можем вынести работу фоновых заданий на отдельный сервер или сделать сервер лицензирования (сервер, который будет раздавать клиентские лицензии). Полный список сервисов, которые выполняет сервер и которые можно переназначать:
Рис.19 Назначение отдельных сервисов на различные рабочие сервераНазначение сервиса на определенный рабочий сервер выполняется через требования назначения функциональности.
Рис.20 Назначение сервиса на определенный рабочий серверВ статье были рассмотрены основные возможности консоли администрирования, но эта тема очень обширная и исчерпывающую информацию о конкретной функциональности утилиты администрирования можно найти на ИТС.
Читайте также: