gifts2017

Запуск последнего установленного релиза платформы 1С 8.2 из батника

Опубликовал Сергей Степанюк (modul) в раздел Программирование - Практика программирования

Бывают случаи, когда приходится для пользователей писать батник запуска 1С с указанием конкретной базы, когда стандартный загрузчик 1С не работает (например автоматический запуск 1С с указанием конкретной базы при старте windows), а с выходом релиза 15 платформы  проблема стала еще актуальней.
Но запускать в батнике 1С конкретного релиза неохота, т. к. выйдет новый релиз и придется переписывать батник.

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

Предлагаю Вашему вниманию батник, который работает по следующему принципу:
1. Запускается батник, в который передаются параметры подключения к базе

2. Батник ищет последний установленный релиз платформы и запускает его, передавая параметры базы.

Таким образом запускается конкретная база всегда под последним релизом.

Собственно такая проблема у меня была. Нужно пользователям в настройке запуска Windows прописать запуск 1С предприятия, указав под какой базой войти в предприятие.
Вроде не вопрос:

 
"C:\Program Files\1cv82\8.2.14.528\bin\1cv8.exe" enterprise /S server_name\base_name


Но вот не хотелось указывать конкретно релиз программы в командной строке. А если установить новый релиз? Перепрописывать всем пользователям путь?

"C:\Program Files\1cv82\common\1cestart.exe" enterprise /S server_name\base_name

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

Не долго думая, решил написать батник, который будет выбирать последний релиз 1С 8.2 и запускать его, передавая параметры. И все получилось.

1. В папке "C:\Program Files\1cv82\" создаем bat-файл с иминем "start1c.bat" и следующим содержимым:

 
@echo off
for /f "delims=" %%* in ('dir/O:-N 8.2* /B /S 2^>nul') do (
start %%*\bin\1cv8.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
exit /B
)



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

 
C:\Progra~1\1cv82\start1c enterprise /S server_name\base_name


3. В поле рабочего каталога обязательно указываем

 
C:\Progra~1\1cv82\



И все работает.

Что делает батник? Он получает список папок в рабочем каталоге с полным путем, которые начинаются на "8.2" и отсортированы по убыванию. Таким образом нужный каталог будет находится первым в списке. По списку запускается перебор, и первому же (нужному) пути каталога приклеивается "\bin\1cv8.exe", потом приклеиваются параметры и запускается 1С. Так как для запуска 1С используется команда "start", батник не ожидает окончания работы 1С и завершается. 1С же продолжает работу. Таким образом мы запускаем 1С один раз именно самой последней версии указав конкретную базу и режим предприятия. smile.gif

P. S. Если у Вас 64-битная система и 1С установлена в "C:\Program Files (x86)\1cv82", то вместо "C:\Progra~1\" нужно писать "C:\Progra~2\"

 

Оригинал моей статьи опубликован здесь: http://pro1c.org.ua/index.php?showtopic=6831

Скачать файлы

Наименование Файл Версия Размер
Загрузчик 1С 21
.bat 0,14Kb
24.07.12
21
.bat 0,14Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Сергей Степанюк (modul) 24.07.12 11:29
Бывают случаи, когда приходится для пользователей писать батник запуска 1С с указанием конкретной базы, когда стандартный загрузчик 1С не работает (например автоматический запуск 1С с указанием конкретной базы при старте windows), а с выходом релиза 15 платформы проблема стала еще актуальней.
Но запускать в батнике 1С конкретного релиза неохота, т. к. выйдет новый релиз и придется переписывать батник.

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


Перейти к публикации

1. Максим (maxkisa) 24.07.12 13:12
Велосипед..есть штатные средства и по запуску последней платформы и автоматической установке последней версии платформы на компы пользователей
2. Ak A (frc) 24.07.12 13:15
публикацию можно закрывать.
По запуску последних и не-последних релизов есть полновесная статья "Администрирование и унификация списка баз пользователей в 8.2 (типовой механизм)".
3. Сергей Степанюк (modul) 25.07.12 00:15
Штатные средства в некоторых случаях не работают. В частности в 15 релизе: если у пользователя в списке нет базы, то прямой ярлык не запускает нужную базу а открывает список. Еще, если в настройках Виндовс для пользователя прописать запуск программы по умолчанию 1cestart.exe (это когда проводник и меню "пуск" не загружается, а грузится сразу 1С с конкретной базой) то тпри входе пользователя открывается управляемый интерфейс, даже если его явно задать.
Списки баз создавать долго, да и зачем если использовать тольку одну базу. Мне проще батником. Батник - он надежный и я точно знаю что там и как запускается, а 1С мало ли когда что накосячит. Авось перестанет вдруг запуск работать штатными методами, как в 15 релизе.
4. Sergey (cuba8) 25.07.12 13:20
Не совсем понял 2-й пункт:
2. В поле запуска приложения при входе пользователя прописываем команду.
Это где такое поле запуска приложения, в свойствах ярлыка?
5. Ak A (frc) 25.07.12 13:22
(3) modul,
В частности в 15 релизе: если у пользователя в списке нет базы, то прямой ярлык не запускает нужную базу а открывает список.

так у вас и есть прямой запуск стартера.
Что делает ярлык.
6. Сергей Степанюк (modul) 26.07.12 18:12
7. Сергей Степанюк (modul) 26.07.12 18:14
(5) frc, Ярлык v8i не работает в таком случае. Я не про список баз и которого нужно выбрать базу
8. Александр (МимохожийОднако) 26.07.12 19:05
(3) modul, ИМХО, не убедил. В настройках запуска достаточно указать на файл списка баз, в котором всё прописано.
9. Sergey (cuba8) 27.07.12 07:05
(6) modul, Спасибо разобрался.
Если делать не через домен, а через ярлык на рабочем столе ПК (WinXP), то строчка в поле «Объект» вида:
C:\Progra~1\1cv82\start1c
все равно встанет такой:
"C:\Program Files\1cv82\start1c.bat"
А в поле рабочая папка строчка обязательно такая:
C:\Progra~1\1cv82\
иначе не будет работать
10. Роман Ложкин (webester) 29.07.12 00:06
никак не пойму чем
"C:\Program Files (x86)\1cv82\common\1cestart.exe" /FПутьКБазе

не устраивает?
11. Роман Ложкин (webester) 29.07.12 00:08
(10) невнимательно читал (3) вопрос снят
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа