Предыстория

Для инвентаризации программного обеспечения существует большое количество программ. Но подходящее решение для задачи инвентаризации в небольшой или средней организации найти трудно. Недостатки распространенных решений:

  • Многие программы платные, а выделить деньги на инвентаризацию вряд ли возможно, тем более сейчас, во время кризиса. Пример — любимый многими Everest. Незаконно использовать такие программы рискованно и поэтому неразумно.
  • Некоторые системы, хотя и бесплатны, но слишком громоздки для средней организации. На настройку и поддержку будет уходить неоправданно много времени. Пример — OCS Inventory NG.
  • Часто требуется установка компонентов (агентов) на всех клиентских компьютерах. А это лишние трудозатраты и расход системных ресурсов. Для хранения данных также зачастую требуются дополнительные компоненты или runtime-библиотеки.
  • Неудобно, если данные или шаблоны отчетов хранятся в закрытых форматах.
  • Зарубежные разработки часто имеют проблемы с русификацией.

Между тем, сбор данных о наличии программ на компьютерах достаточно легко выполняется стандартными средствами Windows, такими как VBScript, WMI, групповые политики. Результаты можно сохранять в файлы удобного формата — TXT, HTML, CSV, XML. Подробнее — см. описание скрипта для инвентаризации программ.

Проблема в том, что недостаточно просто собрать данные. Полученные результаты необходимо обобщить и построить сводный отчет. Желательно иметь возможность настраивать отчеты — фильтровать, сортировать, изменять набор полей. Также необходим поиск и отслеживание изменений. Во многих программах для этого встроены собственные системы построения отчетов, шаблоны. Более разумное решение для хранения и обработки таблиц и построения отчетов — использовать сторонние специализированные программы.

При чем тут 1С:Предприятие

Для накопления и обработки результатов инвентаризации предлагается использовать платформу 1С:Предприятие. Преимущества такого решения:

  • Как правило, эта платформа уже имеется в средней организации, так что ничего не нужно закупать, устанавливать и изучать.
  • Доступны мощные средства построения отчетов, хранения, импорта и экспорта данных.
  • Системному администратору, знакомому с VBScript и VBA нетрудно будет освоить и программирование в 1С:Предприятие.

Недостатки других распространенных систем обработки и анализа табличных данных:

  • Microsoft Office (Excel, Access) — платная и достаточно дорогая программа, не все организации могут себе позволить ее купить.
  • OpenOffice.org (Calc, Base) — программа бесплатная, но макросы на языке Java писать заметно сложнее чем на VBA или VBScript.

Возможности конфигурации

  • Автоматический импорт данных из файлов формата CSV путем запуска обработки по расписанию через планировщик.
  • Отчет «Последние изменения» — где какие программы были установлены или удалены за период между указанной и текущей датами.
  • Отчет «Сводная таблица» — где какие программы установлены по состоянию на указанную дату, в виде матрицы.
  • Отчет «Состояние компьютера» — список установленных на компьютере программ по состоянию на указанную дату.
  • Отчет «История компьютера» — какие программы и когда были установлены на компьютер, в обратном хронологическом порядке.
  • Отчет «Использование программы» — список компьютеров, на которых установлена программа по состоянию на указанную дату.
  • Отдельные учетные записи и роли с ограниченными правами для скрипта импорта данных и для просмотра отчетов.
  • Исходный код включен, возможна доработка и добавление отчетов.

Снимки экрана:

Обработка "Импорт данных" и отчеты Отчеты "Сводная таблица" и "Последние изменения"

Загрузка и установка

Конфигурация 1С:Предприятие 8.1 «Инвентаризация программ»,
версия 1.0.0 (08.09.2009): invent_soft_1c.zip

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

См. также обсуждение программы на Инфостарте.

Порядок работы

Настройка импорта данных

Сбор данных производится скриптом для инвентаризации программ. Скрипт сохраняет отчеты в формате CSV в заданный каталог или на сетевой ресурс. В конфигурации 1С:Предприятие нужно указать, в каком каталоге находятся файлы CSV. Делается это на форме обработки «Импорт данных». Для дальнейшего использования полное имя каталога сохраняется в константе «Каталог текстовых файлов».

Во время импорта данных из каждого CSV-файла считывается список установленных программ и сравнивается со списком программ в базе. Все найденные отличия, т.е. факты установки или удаления программ регистрируются в документе «Перечень изменений». Документ создается и проводится автоматически.

При первоначальном заполнении информационной базы данными из текстовых файлов регистрируется большое количество изменений. Например, если на каждом из 50 компьютеров установлено в среднем по 20 программ, в базу будет добавлено 1000 записей. Записывать большое количество изменений одним документом неудобно, имеет смысл для каждого компьютера создавать отдельный документ.

С другой стороны, в обычном режиме работы происходят единичные изменения на множестве компьютеров и создавать для каждого такого изменения отдельный документ нерационально.

В обработке «Импорт данных» предусмотрена возможность выбора способа создания документов. Способ выбирается указанием предела количества изменений — там же, на форме обработки «Импорт данных», в поле «Предел»:

  1. Предел = 0 — изменения по всем компьютерам включать в один общий документ.
  2. Предел = 1 — для каждого компьютера создавать отдельный документ.
  3. Предел = (число) — если на компьютере найдено изменений больше определенного числа, создавать отдельный документ, все остальные изменения оформлять еще одним общим документом.

Рекомендуется установить значение 10. При добавлении нового компьютера скорее всего будет найдено более 10 программ, и будет создан отдельный документ. Единичные изменения будут регистрироваться одним общим документом. Для дальнейшего использования значение сохраняется в константе «Предел количества изменений».

Запуск импорта данных по расписанию

Для отслеживания изменений следует ежедневно собирать данные об установленных программах со всех компьютеров. В таком случае импорт CSV-файлов также следует проводить ежедневно. Для этого достаточно назначить запуск по расписанию примерно такого командного файла:

chcp 1251
"%ProgramFiles%\1Cv81\bin\1cv8.exe" enterprise /F"D:\1C\invent_soft_1c" /NСкрипт /C"ИмпортДанных" /Out"import_log.txt"

Здесь:

  • chcp 1251 — для поддержки кириллицы в имени пользователя и параметрах вызова;
  • /NСкрипт — пользователь, которому назначена роль «Только импорт данных»;
  • /C"ИмпортДанных" — параметр для запуска обработки «Импорт данных»;
  • /Out"import_log.txt" — файл для вывода результатов.