Обновление баз


Программа для автоматического обновления конфигураций Updater

Программа для автоматического обновления конфигураций Updater
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Довольно часто приходится сталкиваться с ситуацией, когда требуется
обновить большое количество конфигураций 1С. В частности имеем такую
ситуацию: есть новый MD-файл, которым нужно обновить довольно приличное
количество конфигураций (около 300 штук).

ВАЖНО: ВНИМАТЕЛЬНО(!) прочитайте следующий раздел.

1. Работа с программой:
~~~~~~~~~~~~~~~~~~~~~~~
1) Настроить кофигурационный файл config.ini

   Инструкция по настройке конфигурационного файла хранится в самом файле
   config.ini
   Длинные имена следует заключить в кавычки.
   
   В случае, когда у нас есть 300 конфигураций, возникает проблема прописать
   в config.ini все эти 300 путей. Действительно, не набивать же эти пути
   ручками. Я предлагаю такой вариант: Если все базы лежат в одном каталоге
   (а если не лежат, то их можно перенести), то сформировать список можно
   командой dir:
                   dir c:\ /ad > c:\list.txt
   после чего подредактировать его в Notepad или Far.
   Кодировка файла должна быть Win(1251 - текст Windows).

2) Убедится, что путь к файлу 1cv7.md, которым нужно обновить конфы,
   лежит именно по тому пути, который прописан в config.ini

3) Собственно все. Теперь следует закрыть все программы (это не обязательно,
   но может встретится какая-нибудь прога, которая монопольно работает
   с мышевым и клавиатурным вводом) и запустить Updater через
   Start -> Run... (или нажать Пуск+R)

4) Пойти покурить, попить кофе, почитать книжку, т.к. процесс обновления
   довольно продолжительный по времени. Обновление одной конфы может занимать
   от 30 до 100 сек. в зависимости от быстродействия компьютера, сети и
   размера конфигурации. Соответственно 300 конфигураций = в среднем ~4 часа.
   Во время работы НЕЛЬЗЯ(!) переключаться в другие программы и вообще нажимать
   какие-либо клавиши, а также кликать мышью.

5) Программа ведет лог-файл своих действий, который может быть использован
   для диагностики возможных ошибок

6) ОБЯЗАТЕЛЬНО(!) сделайте backup ваших конфигураций, чтобы в случае ошибок
   все можно было вернуть в первоначальное состояние

7) В случае каких-либо непредустмортенных ошибок в обновляемых конфигурациях,
   программа может зациклится (будет обновлять одну и ту же базу) или будет
   вести себя некорректно. В этом случае нужно
   1. Нажать Ctrl+Alt+Esc и удалить задачу update.exe из списка процессов
   2. Удалить конфу (ну и заодно конфы, которые уже были обновлены), вызвавшую
      ошибку из config.ini
   3. Запустить update.exe еще раз

2. Алгоритм работы программы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1) Из config.ini берется очередной путь, формируется и исполняется команда:
   "c:\program files\1c\bin\1cv7s.exe" config /d[путь]
2) Ищется окно, имеющее в своем наименовании строку "Конфигуратор" или
   "Регистрация Информационной Базы"
3) Найденное окно делается активным и захватывает мышь
4) Определяются координаты окна и в зависимости от этих координат мышь
   устанавливается на меню "Конфигуратор". Это позволяет точно
   позиционировать мышь вне зависимости от разрешения экрана и позиции
   окна Конфигуратора
5) Посылаются клик мыши и 5-тикратное нажатие стрелки вниз, имитирующее
   выбор пункта "Загрузить измененную конфигурацию"
6) В появившийся диалог выбора файла посылается строка [путь]\1cv7.md и
   нажимается Enter
7) Делается пауза в несколько секунд для того, чтобы дать базе загрузиться
8) Имитируется выбор пункта меню "Файл" -> "Выход"
9) Циклически нажимается Enter с паузой в 5 секунд до тех пор, пока окно
   конфигуратора не закроется. (в 1C по дефолту всегда выставляется кнопка,

Файлы обработки:

-