четверг, 15 августа 2013 г.

Автоматический запуск профиля пользователя на терминальном сервере.

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

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


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

3. Для пользователя, под которым будет запускать сеанс 1c с обработкой добавляем нужную строку:

"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S "SERVER\Base" /N Admin /P password /RunModeOrdinaryApplication /Execute "C:\обработка.epf" 


4. Создаем bat файл для автозагрузки.

mstsc с:\UT.rdp

5. Добавляем в планировщик (при включении компьютера) созданный bat файл.


понедельник, 18 марта 2013 г.

Обновление конфигурации базы 1С из командной строки.

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

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

start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /UpdateCfg "D:\BASE Temlpates\1c\1c\Accounting\2_0_45_5\1cv8.cf" - обновление конфигурации
start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /UpdateDBCfg - обновление базы


Последовательность нескольких действий можно запустить одним bat файлом, например:

"D:\Distr 1C\update.bat" Base1




******************************************************************************

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

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

for {%переменная|%%переменнаяin (множество) do команда [ПараметрыКоманднойСтроки]

Mifile.txt - файл названия баз.









Пример:
for /F "usebackq delims=;" %%i in ("D:\Distr 1C\Myfile.txt") do "D:\Distr 1C\update.bat" %%i



delims=xxxЗадает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
usebackqЗадает возможность использования кавычек для имен файлов в параметре МножествоИменФайлов. Задает исполнение строки, заключенной в обратные кавычки, как команды, а строки в одиночных кавычках — как команды в символьной строке.



понедельник, 11 марта 2013 г.

Как выгрузить базу 1С при помощи командной строки.

В процессе работы появилась задача единовременно произвести выгрузку с нескольких баз 1С.
Единственным решением я посчитал - создание bat файла с ключами запуска 1С.
 И в него добавил следующее:

"C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /DumpIB E:\%date%-name.dt

Из выше написанного следует:

- C:\Program Files\1cv82\8.2.14.528\bin\1cv8.exe - этот запуск самого 1С
- CONFIG - в режиме конфигуратора
- /F - путь до файловой базы
- /N - имя пользователя, под которым разрешено выгружать базу
- /P - пароль пользователя
- E:\name.dt - куда выгружать базу


Далее переименовываем это файл с расширением .bat
В результате мы таким образом можем организовать бэкап и в конце получим файлы вида 18.01.2012-name.dt

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

start "" /wait 

/wait
Запускает приложение с ожиданием окончания его работы.


Конечный вид содержимого bat файла следующий:


start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /DumpIB E:\%date%-name.dt


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


И можно вставлять в планировщик