Никита Зайцев (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, то с помощью любого планировщика можно организовать полностью автоматическое выполнение некоторых рутинных операций в заданное время. Как в анекдоте — “пипл туда, пипл сюда..”. Мечта админа ;-).
|