Bat запуск 1с с параметрами

Обновлено: 05.07.2024

Здравствуйте, хочу зайти в 1С через файл с расширение bat . Открывается ярлык 1с выбирается нужная база. Но когда дело доходит до пользователя и пароля ничего не происходит. "C:\Program Files\1cv82\common\1cestart.exe" Enterprise /S"имя_сервера\имя_базы" /N"имя_пользователя" /P"пароль"
В чем может быть ошибка ?

(1)
вы настройте , чтобы сама 1с запускалась под пользователем .
а тогда бат будет работать.теоретически. :)

(4) нашёл причину)) из за того что имя пользователя балл на русском. Под пользователем на английском заходит. Как сделать что бы заходить можно было из под пользователя на русском ?

7. user705522_constantin_h 35 30.07.20 08:56 Сейчас в теме

Как сделать что бы заходить можно было из под пользователя на русском ?


Вероятно нет пользователя, которого вы пишете на русском, или он с ошибкой написан.

(6)
вы уже почти у цели :)
поменяйте имя для входа в настройках 1с пользователей.
есть полное и есть для входа.

11. user705522_constantin_h 35 30.07.20 09:08 Сейчас в теме

(10)Взял скопировал у вас "C:\Program Files\1cv82\common\1cestart.exe" Enterprise /S"имя_сервера\имя_базы" /N"имя_пользователя" /P"пароль", в win + R загрузил, изменил 1cv82 на 1cv8, вписал свои базу, пользователя Администратор, пароль, и всё загрузилось.

user1011815; Divedition; user705522_constantin_h; pm74; + 4 – Ответить

(13)при открытии файла bat через 1с имя пользователя на русском языке отображается иероглифами.модет в этом дело ?

(17)в итоге я открыл с 1с обработку и вместо иероглифов я написал на русском администратор. Все заработало )). У меня ещё один вопрос . Можно из батника передать параметр во внешнюю обработку которая открывается при открытии батника?

Можно из батника передать параметр во внешнюю обработку которая открывается при открытии батника

не знаю ,
поищите на ИС , вероятно какое нибудь решение найдется

но из батника передать параметр во внешнюю обработку которая открывается при открытии батника?


да. так же имя обработки и через слеш команду обработки

(18) Глобальный контекст
ПараметрЗапуска
Используется для доступа к параметру запуска, передаваемому через ключ командной строки /C.

Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы 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.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.

Речь идёт о возможности написания пакетных скриптов для автоматизации операций над группой баз вот на этой вкладке обновлятора:


Что такое пакетный скрипт?

Пакетный скрипт - это текстовый файл для Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором (подробнее).

Такие файлы обычно имеют расширение bat или cmd.

Я сам подсматриваю синтаксис таких скриптов здесь и здесь.

Зачем писать и запускать эти скрипты именно в обновляторе?

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

Список баз для обработки

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


Передача параметров базы

При выполнении скрипта обновлятор сам передаёт в него необходимые параметры с информацией о текущей базе:

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

Примеры таких скриптов мы можем найти в списке шаблонов обновлятора:


Предварительная архивация базы

При необходимости обновлятор обеспечит создание резервной копии перед выполнением скрипта:


Эта резервная копия будет согласована с общей системой архивации, то есть её также можно подвергать "тюнингу" в дополнительных настройках обновлятора. Такая копия всегда будет иметь метку "перед опасной операцией".

Блокировка, разблокировка базы

При необходимости обновлятор выполнит полную блокировку базы перед выполнением вашего скрипта и разблокировку после:


И это одна из ключевых "фич" обновлятора - ведь, например, корректное выполнение блокировки серверной базы в общем случае является достаточно нетривиальной задачей.

Нужно "разрулить" текущие подключения пользователей, административные подключения, выполнение фоновых задач. И всё это через общение напрямую с кластером 1с.

Сохранение отчётов

Обновлятор сохраняет историю выполнения таких скриптов в менеджере отчётов.

Как в общем виде:


Так и в детальном:


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

Уведомление на почту

Если у вас настроены уведомления на почту (все или только при ошибках).


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



Запуск скрипта по расписанию

Для добавления скрипта в запуск по расписанию следует сохранить сам скрипт:

Далее у нас есть 2 варианта:

Быстрый, но неудобный способ

При сохранении скрипта мы можем установить опцию "Настроить однократный запуск скрипта . ":


И далее уже отредактировать расписание этого задания непосредственно в планировщике Windows.

Чуть более медленный, но самый удобный способ

После того как вы сохранили скрипт (не добавляя его в планировщик Windows) вернитесь в главное окно Обновлятора на закладку "Настройки программы".

Далее нажмите кнопку "Расписание".

И создайте задачу с типом операции "Запуск скрипта":

Укажите ваш сохраненный скрипт по ссылке "выбрать скрипт для запуска. ".

Облачный мониторинг

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

Многопоточное выполнение скриптов

О том как запускать скрипт параллельно для нескольких баз подробно рассказывается здесь.

Что ещё полезно изучить перед написанием скриптов?

Ну, конечно же, пакетные команды конфигуратора. Куда же без них.

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

Чтобы увидеть все возможные команды именно для нашей версии 1с - заходим в конфигуратор и выбираем пункт меню "Справка"-"Содержание справки":


В открывшемся окне нас интересует вот эта ветка:


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

Ну, поехали!

Хватит говорить про скрипты - давайте их писать

Выводим на экран имя базы

Для этого нам понадобится команда echo (именно она отвечает за вывод на экран) и параметр %base_name% (его нам передаёт в скрипт обновлятор).


И запустим наш скрипт над выбранной группой баз:


Пересчитываем итоги

Здесь уже речь идёт о том, чтобы выполнить пакетную команду конфигуратора, которая называется IBCheckAndRepair с ключом RecalcTotals.

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

Вместо этого мы просто напишем:

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

Почему он называется именно run_1c_d? Это сокращение "run 1c designer". Designer означает режим конфигуратора.

Кстати, для более удобного формирования скрипта для тестирования и исправления базы воспользуйтесь соответствующим шаблоном:


Делаем выгрузку базы

За выгрузку базы отвечает команда DumpIB, которая принимает в качестве параметра путь к файлу, куда нужно выгрузить базу.

Получается наша команда могла бы быть такой:

Но что будет, если мы запустим такой скрипт сразу для нескольких баз? Они все будут писать выгрузку в один и тот же файл, перезатирая данные друг друга.

Именно для этих целей в скрипт передаётся параметр %stamp% - имя файла, уникальное для текущей базы и текущего момента времени.

Эта метка включает в себя имя базы и текущую дату и время.

Чтобы сделать наш скрипт универсальным перепишем его вот так:

Вы спросите - откуда я беру все эти полезные параметры для скрипта?

А я ещё раз напомню вам вот об этом меню:


Открываем базу с запуском внешней обработки

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

Для этого мы сначала пишем обработку для 1с, при открытии которой выполняется нужный код, а затем автоматически закрывается база.

А затем пишем следующий пакетный скрипт:

Обратите внимание, что здесь уже не идёт речи о пакетном запуске конфигуратора. Здесь мы запускаем 1с в режиме предприятия с ключом Execute, указав для последнего путь к обработке, которую нужно открыть сразу после запуска базы.

За запуск базы в режиме предприятия отвечает параметр run_1c_e. Почему он называется именно так? Это сокращение от "run 1c enterprise". Enterprise означает запуск базы в режиме предприятия (пользовательский режим).

Выполняем регламентные задачи

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

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

Речь идёт вот об этой группе команд:


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

Например, вот так будет выглядеть команда запуска регламентного задания "ЗагрузкаКурсовВалют":

При этом такие команды можно комбинировать друг с другом, но их нельзя просто так (возможность есть, читайте о ней ниже) комбинировать с другими командами пакетного скрипта (которые не были выбраны из меню Обновлятор-Методы).

Подробное пояснение по командам, которые начинаются с @

В чём их смысл

Эти команды на самом деле не исполняются командным интерпретатором системы.

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

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

Строгий формат

Такие команды (все они выбираются из меню 'Обновлятор'-'Методы') имеют строгий формат написания, чтобы обновлятор смог их найти и разобрать в общем тексте пакетного скрипта:

  1. Их вызов всегда начинается с новой строки.
  2. Их имя всегда начинается с @
  3. Если у команды есть параметры, то вызов записывается вот в таком формате:
    @имя_команды(
    имя_параметра_1: "значение",
    имя_параметра_2: "значение"
    )
    Обратите внимание, что:
    - каждый новый параметр написан с новой строки
    - закрывающая список параметров круглая скобка также вынесена на отдельную строку
Возможность сочетания с другими командами интепретатора

Рассмотрим актуальный пример. Нам требуется написать пакетный скрипт, который бы делал обновление базы данных, а затем выполнял обработчики обновления.

Для обновления БД из шаблонов мы выбираем такой скрипт:

Эта команда будет передана командному интепретатору системы на выполнение.

А для выполнения обработчиков обновления нам придётся воспользоваться специальной командой для обновлятора, которая начинается с @, выбрав её из меню 'Обновлятор'-'Методы':

Но нам требуется совместить эти команды в одном скрипте, чтобы они выполнялись друг за другом.

И если мы напишем такой скрипт.

. то не получим ожидаемого поведения. Обновлятор сначала выполнит команду run_update_handlers и только затем передаст командному интерпретатору оставшуюся часть скрипта (%run_1c_d% /UpdateDBCfg).

И ранее не оставалось ничего, кроме как разносить эти команды по разным скриптам и выполнять их последовательно. Что, конечно, крайне неудобно.

Теперь такая возможность появилась в виде специальной команды, которая выбирается из меню 'Обновлятор'-'Методы'-'Выполнение пакетного скрипта'.

Вот как выглядит эта команда:

При помощи неё мы сможем переписать наш скрипт (для обновления БД и выполнения обработчиков обновления) вот так:

И теперь всё будет работать именно так, как мы задумали.

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

Как мне придумывать свои скрипты?

Для вдохновления вначале советую разобрать и понять скрипты из шаблонов обновлятора. Это уже многое вам даст.

Ну а затем изучайте пакетные возможности конфигуратора (см. справку по ним выше) и если какая-то команда вас заинтересовала - пробуйте её применять подобно тому, как мы делали выше.

Я написал классный скрипт и хочу поделиться

Для этого я завёл специальный проект на github, где собираю полезные скрипты от пользователей обновлятора, чтобы как можно большее количество людей смогло использовать их в своей работе.

Хотите прислать мне свой скрипт? Прошу вас сюда (ссылка).


С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

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