Никита
Зайцев (WildHare) где-то
в 2000
Известно (а если Вы этого не знали раньше, то теперь знаете),
что Конфигуратор умеет работать в некоем пакетном режиме.
Что это такое и зачем это нужно? И какие такие пакеты там
используются?
Все просто. Пакетный режим это режим
выполнения программой заданной пользователем последовательности
действий без его, пользователя, непосредственного участия.
Фича для настоящих лентяев никогда дважды не делай
то, что можно один раз запрограммировать и выбросить из
головы. ;-)
Строго говоря, слово пакет не совсем уместно,
правильнее было бы сказать макрос, но сути дела
это не меняет. Работа в пакетном режиме начинается с того,
что Конфигуратор запускается не просто так, с определенными
ключами. Выглядит это примерно так:
1cv7.exe config /dC:\Db /nUser
/pPwd /@C:\backup
Что здесь что?
1cv7.exe - понятно что
config - указание на запуск именно
Конфигуратора
/d - ключ указывает на расположение
базы данных, с которой нужно произвести действо
/n - имя пользователя, под которым
будет осуществлен запуск программы,
/p - пароль этого пользователя,
/@ - указание на файл с инструкциями,
в терминах 1С файл сценария запуска.
Обратите внимание расширение файла не указано, это
значит, что используется стандартное для пакетного режима
расширение *.prm (на самом деле у этого файла может
быть любое расширение, но тогда нужно писать имя
файла целиком, вместе с расширением).
Что конкретно умеет делать Конфигуратор в пакетном режиме?
Вот что: выгрузку и сохранение данных, тестирование-исправление
ИБ и автообмен с РБД. Остальные действия, не требующие от
пользователя особо осмысленных действий (например, загрузка
измененной конфигурации или восстановление данных), пока
что автоматизации не подлежат. Увы, 1С очень любит делать
все наполовину.. ;-(
Как писать сценарии запуска? Очень просто структура
*.prm копирует структуру обыкновенного *.ini:
[секция]
величина = значение
Перечень секций,
параметров и их значений |
Имя параметра |
Значение |
Зачем он нужен |
Секция [ 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... |
список масок архивируемых
файлов (через запятую или пробел) |
*
вместо 1/0 можно использовать
Y/N |
Секция [ AutoExchange
] |
Автообмен баз УРБД |
SharedMode |
1/0 |
не очень понятно, что это,
лучше поставить "1" |
WriteTo |
01* |
код базы, куда выгружать |
ReadFrom |
01* |
код базы, откуда
загружать |
*
вместо 1/0 можно использовать
Y/N |
|
Если запуск Конфигуратора в пакетном режиме оформить в виде
*.bat или *.cmd, то с помощью любого планировщика
можно организовать полностью автоматическое выполнение некоторых
рутинных операций в заданное время. Как в анекдоте
пипл туда, пипл сюда... Мечта админа ;-). |