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