Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Проект OpenConf (Открытый Конфигуратор)

Понятие об OpenConf

Как известно, "1С-Предприятие 7.7" - продукт хороший и распространённый. И основной его козырь - открытость платформы. Там, где штатных функций программы не хватает, всегда есть лазейка в виде "Внешних Компонент". Однако, все эти возможности затрагивают только пользовательскую часть программы. В Конфигураторе штатных методов для загрузки дополнительных модулей нет. Может, на момент выхода Конфигуратор и удовлетворял программистов по своим возможностям, но на сегодняшний день их уже явно недостаточно. С целью преодолеть все эти ограничения и был задуман этот проект.

К числу возможностей OpenConf ("Открытого Конфигуратора") относятся:

Каким образом и для каких целей можно использовать вышеперечисленные возможности OpenConf? Например, в настоящее время сообществом OpenConf уже разработан ряд скриптов и плагинов со следующими возможностями:

Состав скриптов и плагинов и их функционал постоянно расширяется сообществом OpenConf. Кроме того, вы можете самостоятельно разрабатывать скрипты с нужным вам функционалом без использования каких-либо сложных средств разработки, работая в любом текстовом редакторе.

Об авторах и порядке распространения OpenConf

Автор программы - Александр Орефков, адрес электронной почты которого вы можете найти в диалоге "О программе" OpenConf. OpenConf бесплатен, хотя плагины к нему могут быть платными. В общем случае никаких ограничений на распространение OpenConf/плагинов/скриптов не наложено. Разработка и распространение плагинов и скриптов OpenConf производится неофициальным сообществом OpenConf:

Кроме того, вы можете скачать дистрибутивы OpenConf прямо с этой странички (размер файлов указан в байтах):


ДистрибутивОписание
OpenConf 1.0.2.0 (beta) - 157 201. Собственно OpenConf.
Telepat v2.0.0.0r (beta) - 175 792. Плагин Телепат, реализующий Intellisense в среде 1С:Предприятие v7.7. Предполагается, что финальная версия Телепата будет платной (около 500 рублей).
Telepat v2.0.0.0s (beta) - 173 604. Более новая версия Телепата (от 30.04.2007) с небольшими улучшениями.
Telepat v2.0.0.0t (beta) - 155 466. Более новая версия Телепата (от 17.09.2007) с небольшими доработками специально для взаимодействия с плагином OColorer.
Скрипты (21-Октябрь-2008) - 1 212 832. Большой набор скриптов и дополнительных компонент для OpenConf с описаниями.
Скрипт Bookmarks.vbs - 3 662. Скрипт для работы с закладками в модулях Конфигуратора.

Примечание: некоторые файлы скриптов в сборке скриптов могут определяться шибко умными антивирусами как подозрительные или даже заражённые; вы всегда можете просмотреть и проанализировать код каждого такого файла в любом текстовом редакторе, чтобы убедиться, что это не соответствует действительности. Кроме того, информацию о проверке сборки скриптов различными антивирусами вы можете получить на форуме этого сайта, а также в этом блоге.

Установка OpenConf

Установка OpenConf предельно проста:

  1. В каталоге "bin" исполняемых файлов 1С:Предприятия создайте каталог "config".
  2. Файл "config.dll", находящийся в каталоге "bin", переместите в каталог "config".
  3. На место перемещённого оригинального файла "config.dll" в каталоге "bin" поместите файл "config.dll" из поставки OpenConf.
  4. Файл "config.tlb" из поставки OpenConf поместите в каталог "bin".

После установки запустите Конфигуратор и откройте окно конфигурации (меню "Конфигурация" - "Открыть конфигурацию"). Если кроме закладок "Метаданные", "Интерфейсы" и "Права" вы видите закладку "OpenConf", установка прошла успешно.

Если у вас упала 1С, нет четвёртой закладки, есть закладка, но ничего не работает или просто день не задался (хотя совершенно непонятно, отчего это могло произойти), удалите папку "config", снесите 1С, после чего установите 1C и OpenConf еще раз.

Принципы работы OpenConf

OpenConf загружается только в режиме "Конфигуратора" и не оказывает влияния на работу 1С в режиме "Предприятия".

В основу механизма OpenConf положен способ подмены библиотеки config.dll, используемой 1С:Предприятием для работы Конфигуратора. Вместо "родной" config.dll загружается подменная, которая, оказываясь в адресном пространстве процесса, получает возможность выполнять дополнительные действия в программе и в свою очередь загружает "родную" config.dll для обеспечения штатной работы.

Основополагающий принцип работы основан на том факте, что большая часть функционала 1С-Предприятия размещена в библиотеках dll, экспортирующих свои функции по именам. Это позволяет воссоздать заголовочные файлы и библиотеки импорта для этих dll и в дальнейшем обращаться к ним также, как это делается самой программой 1С. Немаловажно и то, что сама 1С-Предприятие написана с использованием библиотеки MFC, исходные коды которой открыты. Это позволяет во многих случаях понять принципы работы программы и уточнить заголовки классов, полученных из экспортируемых функций dll 1С:Предприятия. В своих методах OpenConf по большей части пользуется "штатными" функциями 1С, доступными через ее dll. OpenConf не работает напрямую с файлом метаданных, не парсит Main MetaDataStream, не считает CRC и т.п. Для выполнения своих действий он просто обращается к "внутренним" функциям 1С. По сути дела, объектная модель OpenConf просто OLE-обертка вокруг C++ объектов 1С.

Итак, при запуске Конфигуратора вместо оригинальной config.dll загружается подменная. Она в свою очередь производит следующие действия:

Использование OpenConf

Вкладка OpenConf окна Конфигурации

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

В разделе "Плагины" вкладки "OpenConf" в окне Конфигурации отображаются все загруженные плагины. Состав подэлементов плагина и выводящейся в правой панели информации о нём зависят от типа плагина и его возможностей. Для плагинов, не имеющих визуального интерфейса, а также для визуальных плагинов, открываемых в отдельной странице, в правой части отображается информация о версии dll-файла плагина. Иначе в правой части отображается визуальный интерфейс плагина. Для плагинов, не запретивших отображение макросов, выводится их список. Макросы - это процедуры и функции плагинов, не имеющие параметров. Контекстное меню ветви "Плагины" позволяет загрузить новый плагин (при запуске Конфигуратора все плагины из каталога config загружаются автоматически).

В разделе "Скрипты" вкладки "OpenConf" в окне Конфигурации каждый скрипт представлен одним элементом раздела. Для каждого скрипта в виде подэлементов дерева также выводятся все его "макросы", которые можно запустить двойным щелчком мыши, либо нажатием ENTER. Макросы - это процедуры и функции скриптов, не имеющие параметров. Двойной щелчок мыши, либо нажатие ENTER на самом элементе скрипта открывает скрипт для редактирования в текстовом редакторе 1С:Предприятия. Путь к файлу загруженного скрипта можно увидеть в правой панели вкладки OpenConf. Контекстное меню ветви "Скрипты" позволяет:

Контекстное меню элемента дерева, соответствующее конкретному загруженному скрипту, позволяет:

Колонка "OpenConf" главного меню Конфигуратора

При правильной установке помимо вкладки "OpenConf" в окне Конфигурации в главном меню Конфигуратора появляется колонка "OpenConf":

Кроме того, в результате установки OpenConf в Конфигураторе появляется дополнительная панель инструментов "OpenConf", которую можно вывести на экран обычными способами, например через меню "Сервис" - "Панели инструментов...". Эта панель инструментов дублирует некоторые команды меню "OpenConf".

Тест загрузки и использования скрипта

Создайте текстовый файл с расширением vbs следующего содержания:


MsgBox "Hello, OpenConf!"
Sub MyMacro()
	MsgBox "Hello, my macro!"
End Sub

Выполните следующие действия:

  1. Поместите созданный vbs-файл в подкаталог "config\scripts\" каталога "bin" 1С:Предприятия.
  2. Перезапустите Конфигуратор. Вы должны увидеть диалоговое окно с текстом "Hello, OpenConf!".
  3. Зайдите в меню "OpenConf" - "Макросы" - "Клавиатура..." и задайте комбинацию клавиш для вызова макроса "MyMacro" тестового скрипта.
  4. Нажмите заданную комбинацию клавиш. Вы должны увидеть диалоговое окно с текстом "Hello, my macro!".
  5. Зайдите на вкладку OpenConf окна конфигурации и выгрузите тестовый скрипт с помощью соответствующей команды контекстного меню. Выгрузить скрипт также можно, просто переместив его из папки "config\scripts\" каталога "bin" 1С:Предприятия (при следующем запуске Конфигуратора он уже не загрузится). Если скрипт загружался не из папки "config\scripts\" каталога "bin" 1С:Предприятия, а из произвольного каталога на жёстком диске, его можно выгрузить, просто переименовав (при следующем запуске Конфигуратора он также уже не загрузится).

Разрешение проблем

Если после выхода из Конфигуратора его процесс "застревает" в памяти, необходимо переустановить Windows Script Host, скачав с сайта Microsoft последнюю версию Windows Script Host (сейчас это версия 5.6). Нужно именно переустанавливать WSH, даже в том случае, если у вас уже стоит версия 5.6.

Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.