Запуск 1с 7 из командной строки с параметрами

Обновлено: 06.07.2024

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

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

Инициализация работы конфигуратора в пакетном режиме производится командной строкой вида
Path1 config /dPath2 /nUser /pPwd /@Path3
где
Path1 - путь к файлу 1cv7*.exe;
Path2 - путь к каталогу базы данных;
Path3 - путь к файлу с инструкциями (пакетному файлу);
User, Pwd - имя и пароль пользователя, под которым будут выполняться действия. Не забудьте, что у указанного пользователя должны быть права на выполнение таких действий;
config - ключевое слово, указывающее, что запуск 1С нужно произвести в режиме "Конфигуратора";
/d - каталог базы данных, с которой будут производиться действия;
/n - имя пользователя, под которым будут выполняться действия
/p - пароль этого пользователя;
/@ - путь к файлу инструкций.

Например, командная строка может выглядеть так:
C:\Program Files\1Cv77\BIN\1cv7s.exe config /dC:\Bases_1C\v77\pr262 /nAdmin /p1qwsa2 /@C:\exchrbd.prm

Рассмотрим теперь, что же собой представляет файл инструкций. Данный файл имеет расширение по умолчанию *.prm, но если будет другое расширение, то в командной строке необходимо указывать данное расширение. Структура файла должна иметь следующий вид:
[Секция]
Параметр=Значение

Имя параметраЗначениеОписание
Секция [General] Секция содержит общие параметры
Output file_name имя лог-файла для записа произведенных действий
Quit 1/0 нужно ли закрывать программу после выполнения сценария
CheckAndRepair 1/0 нужно ли производить тестирование-исправление ИБ
UnloadData 1/0 нужно ли делать выгрузку данных
SaveData 1/0 нужно ли делать сохранение данных (для формата БД *.dbf)
AutoExchange 1/0 нужно ли выполнять автообмен с РБД
Секция [CheckAndRepair] Секция содержит параметры о тестировании-исправлении ИБ
Repair 1/0 делать исправление или только тестирование
PhysicalIntegrity 1/0 проверять физическую целостность таблиц ИБ
LogicalIntegrity 1/0 проверять логическую целостность таблиц ИБ
Reindex 1/0 производить переиндексацию ИБ
RecalcSecondaries 1/0 производить обносление вторичных (служебных) данных ИБ
RecalcTotals 1/0 пересчитывать бухгалтерские и оперативные итоги
Pack 1/0 упаковывать таблицы ИБ (сжимать, убрав удаленные записи)
SkipUnresolved 1/0 пропускать неразрешенные ссылки или удалять их
CreateForUnresolved 1/0 способ разрешения неразрешенных ссылок: создавать объекты (1) или очищать такие ссылки (0)
Reconstruct 1/0 способ восстановления частично потерянных данных объектов: создавать объекты (1) или удалять их (0)
Секция [UnloadData] Секция содержит параметры о выгрузке данных
UnloadToFile file_name имя файла переноса данных
IncludeUserDef 1/0 включать список пользователей
Password password пароль на zip-архив
Секция [SaveData] Секция содержит параметры о сохранении данных
SaveToFile file_name имя файла архива
FileList mask1,mask2. список масок архивируемых файлов через запятую или пробел
Секция [AutoExchange] Секция содержит параметры об автообмене между РБД
SharedMode 1/0 производить автообмен в разделенном (1) или монопольном (0) режимах
WriteTo base_code код(ы) ИБ, в которую(ые) производить выгрузку; (*) - все
ReadFrom base_code код(ы) ИБ, в которую(ые) производить загрузку; (*) - все
ReceiveFrom base_code код(ы) ИБ, из которой(ых) получать почту; (*) - все
SendTo base_code код(ы) ИБ, которой(ым) отправлять почту; (*) - все

Таким образом, если оформить запуск конфигуратора в пакетном режиме в виде файла *.bat, *.cmd или *.wsh, то с помощью любого планировщика можно организовать полностью автоматическое выполнение некоторых рутинных операций в заданное время.

Скажите, пжл, как программно определить, запущена ли 1С в режиме польз?

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

Почему тут нет кнопки - голосовать за закрытие темы?

то ес мы во прям из нашег сеанс хоти узна - а выполняетс ли это во самы код, который выполняетс?

(11) Потому что сеанс конфигуратора — это не сеанс в режиме 1С:Предприятия. Как и консоль кластера, регламентные задания и т. д.

2(16) вам не кажется ли, что если вы программно что-то выполняется, то это уже выполняется в предприятии, и стало быть 1С запущена в режиме пользователя?

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

2 (23) ну не знаю у меня безо всяких закрывает все окна 1с

2(23) это оттого что нужно писать tskill:
tskill 1Cv8* /A

но это сработает только в том случае если у вас все пользователи работают в терминале

но самое смешное что этот код закроет и ваш сеанс тоже. а вам так нужно?

taskkill в этом плане более универсальная - позволит завершить процессы и на удаленных компах, но вам нужно знать имена компов на которых работают ваши пользователи

Здравствуйте, Живой Ископаемый!
Перед обменом нужно, как я понимаю, чтобы пользователей в базе не было. Как раз мое 1сПредприятие (польз "obmen") я и спрашиваю как закрыть (это к (26)).
У нас пользователи не в терминале работают и я тоже, спасибо, учту.
Сейчас попробую сделать, как Вы советуете.

TaskKill /F /IM 1cv8.exe - закрылось без вопроса, спасибо Вам огромное

наша задача состоит в том, чтобы угадать какой результат в каком случае? призы будут?

во 2 случае только код в кону загружается, и даже из конф для обновления 1сПредпр не запускается - остается "!" в конф-ре

"только код" - это я после выполнения случая2 захожу в конфигуратор и вижу что код заменился на новый и стоит в окне конф-ра "!"; те видимо сработала только первая строка батника,
"только код" - данные не загрузились

2(40) мучайтесь дальше. никто вас такую без фотки не пожалеет

я это уже объяснял в одной из позапрошлых веток.. с тех пор причина та же

(44) я не поняла, скажите, пжл, еще 1 раз, если не затруднит

2(45) нет, не просите вы помочь.. вы сообщаете ничего не значащие замечания о работе какого-то припадочного скрипта.

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

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