Как настроить оповещение пользователя о результатах автообмена в 1С 7.7?

Системный администратор 1С v7.7 IT и автоматизация бизнеса
← На главную

В распределенных информационных базах (РИБ) на платформе 1С 7.7 часто возникает проблема: автообмен запускается планировщиком или командным файлом в фоновом режиме, и пользователь не знает, завершился ли процесс успешно. Для неопытного пользователя отсутствие визуального подтверждения может привести к тому, что ошибки обмена будут замечены слишком поздно. Рассмотрим несколько эффективных способов, как сделать процесс обмена прозрачным и понятным.

Способ 1: Использование файла параметров и анализ лога

Разберем самый надежный метод, основанный на штатных возможностях платформы. Мы можем заставить 1С записывать все события обмена в текстовый файл, который затем будет проанализирован. Для этого нам понадобится файл параметров с расширением .prm. Проанализируем содержимое такого файла:


[General]
Output = exchange_log.txt
Output = 1
Quit = 1
AutoExchange = 1

Разберем, что значат эти параметры:

  1. Output — указывает путь к файлу, в который будет записываться протокол работы.
  2. Output = 1 — включает режим перезаписи лога (или добавления, в зависимости от настроек).
  3. Quit = 1 — заставляет Конфигуратор закрыться сразу после выполнения обмена.
  4. AutoExchange = 1 — инициирует сам процесс обмена.

После завершения работы 1С мы можем программно проверить файл exchange_log.txt на наличие ключевых фраз, таких как "Загрузка данных завершена" или "Ошибок не обнаружено". Если этих строк нет, значит, произошел сбой.

Способ 2: Визуальный контроль через Конфигуратор

Посмотрим на более простой вариант, который подходит, если пользователь готов вручную закрыть окно после проверки. Если в файле параметров или в командной строке не указывать параметр Quit = 1, то по окончании обмена Конфигуратор останется открытым. Пользователь увидит на экране протокол выполнения, где будет четко написано, прошел обмен или возникли ошибки. Это самый доступный метод для контроля «вручную».

Способ 3: Анализ Журнала регистрации

Рассмотрим ситуацию, когда нам нужно программно понять, что именно пошло не так. 1С 7.7 записывает события обмена в Журнал регистрации. Мы можем настроить скрипт, который после завершения пакетного задания будет искать в Журнале регистрации записи с типом Обмен данными. Если последняя запись содержит информацию об ошибке, скрипт может вывести пользователю сообщение.

Способ 4: Использование файлов-флагов и VBScript

Для неопытного пользователя лучше всего работают всплывающие окна. Реализуем логику через VBS-скрипт, который будет запускать обмен и выводить результат. Проанализируем пример логики такого скрипта:

  1. Скрипт удаляет старый файл-флаг success.txt.
  2. Запускается 1С в режиме обмена.
  3. Скрипт ожидает завершения процесса 1cv7s.exe.
  4. Скрипт проверяет лог-файл. Если в нем найдена строка об успешном окончании, создается файл success.txt.
  5. В конце скрипт выдает MsgBox: «Обмен завершен успешно» или «ОШИБКА ОБМЕНА! Обратитесь к администратору».

Такое окно невозможно пропустить, и оно дает однозначный ответ пользователю.

Способ 5: Специализированные утилиты

Выясним, существуют ли готовые решения, чтобы не писать скрипты самостоятельно. Одним из проверенных инструментов является УРБД Мастер. Это внешняя программа, которая берет на себя все функции управления обменом в 1С 7.7. Она позволяет:

Способ 6: Индикация внутри пользовательского режима 1С

Попробуем интегрировать проверку прямо в интерфейс программы, с которой работает пользователь. Мы можем добавить код в процедуру ПриНачалеРаботыСистемы в Глобальном модуле. При запуске 1С в обычном режиме программа будет проверять дату и время последнего созданного файла обмена или читать результат из файла лога. Если данные устарели (например, обмен не проходил более 24 часов), пользователю будет выдано предупреждение:


Процедура ПриНачалеРаботыСистемы()
    // Простейшая проверка по дате файла лога
    ПутьКЛогу = "C:\1C_Exchange\log.txt";
    Если ФС.СуществуетФайл(ПутьКЛогу) = 1 Тогда
        ФС.АтрибутыФайла(ПутьКЛогу, , , ВремяСоздания);
        // Здесь можно добавить сравнение дат
        Если (ТекущаяДата() - ДатаСоздания) > 1 Тогда
            Предупреждение("Внимание! Обмен данными не выполнялся более суток!");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Подведем итоги

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

← На главную