| ||
Обзор дополнительных модулей для платформы V7Расширение возможностей 1С Никита Зайцев aka WildHare Одним из неоспоримых достоинств платформы V7 является её расширяемость. Что означает это слово? Это значит, что функциональные возможности платформы могут быть расширены путём подключения дополнительных библиотек (в терминах 1С эти библиотеки называются внешними компонентами). Платформа V7 существует уже более четырёх лет и за это время для неё было создано огромное количество расширений, как самой фирмой 1С и её официальными партнёрами, так и независимыми разработчиками. Вот об этих-то расширениях и пойдёт речь. Данный обзор не претендует на полноту и объективность оценок — в нём фигурируют те компоненты, которые либо показались мне уникальными в своём роде, либо распространены настолько широко, что стали стандартом де-факто для решения тех или иных задач. Всего в обзоре представлено одиннадцать библиотек. V7 PlusРазработчик: фирма «1С». В состав компоненты входят классы:
Резюме: много полезных функций, но реализованы они несколько кривовато. Будем надеяться, что в следующих версиях основные недостатки будут устранены. Компонента очень широко распространена, в типовых конфигурациях можно найти развесистые примеры работы со всеми классами. Rarus API ExtenderРазработчик: фирма «1С-Рарус». Эта библиотека является OLE-сервером, а не классической внешней компонентой V7, тем не менее, она создавалась с расчётом на применение исключительно в конфигурациях V7. Библиотека предоставляет следующие сервисы:
Резюме: функций немного, но реализованы они превосходно. Простой и надёжный инструмент. V7 QueueРазработчик: фирма «Икс-технологии». Компонента реализует шлюз между платформой V7 и службой сообщений MSMQ. Поддерживаются функции записи сообщений в очереди, прослушивания очередей на предмет появления новых сообщений и чтения этих сообщений. При появлении в очереди нового сообщения инициируется системная процедура V7 ОбработкаВнешнегоСобытия() (обработка событий, генерируемых внешними компонентами). Область применения этой компоненты весьма велика — обмен данными между V7 и другими приложениями (в т.ч. другими копиями V7), работающими на территориально распределённых машинах. V7Queue позволяет воспользоваться готовой транспортной службой — поддерживающей гарантированную доставку, нотификацию и сложную маршрутизацию сообщений, т.е. позволяет решить добрую половину проблем, возникающих при разработке систем обмена и синхронизации данных. Резюме: очень полезная вещь. 1C:ScanРазработчик: Алексей Вихорев. Компонента реализует шлюз между V7 и установленным в системе TWAIN-драйвером. Для чего это нужно? Многие учётные системы (и не только учётные — на V7 построено много разных систем) активно используют в работе электронные образы бумажных документов. 1C:Scan позволяет производить сканирование непосредственно из среды V7, не прибегая к услугам дополнительных программ. Отсканированное изображение может быть помещено в clipboard или сохранено в виде файла формата BMP. Резюме: вещь специфическая, но в своей области незаменимая. Wheel.AddInРазработчик: EllSoft. Компонента предоставляет набор функций, распределённых по пяти классам:
Резюме: Wheel.Addin просто незаменима в тех случаях, когда нужно прочитать или записать бинарный файл, но в остальном явно проигрывает по функционалу другим компонентам. OCR PelicanАвтор: Михаил Лезжов. Пожалуй, это наиболее экзотическая компонента для V7 из всех существующих: в ней используются нейросетевые технологии и реализует она систему распознавания рукописного текста. Автор компоненты профессионально занимается технологиями распознавания, а Pelican был сделан с целью демонстрации возможностей технологии. К сожалению, практического применения для платформы V7 эта технология пока не нашла и дело ограничилось демо-версией. Но даже в демо-версии скорость и качество распознавания более чем приличные. Сам же процесс демонстрации работы компоненты «настоящему программеру», считающему V7 тупым бухгалтерским пакетом, может принести несколько весёлых минут ;-). Резюме: это нужно видеть. CompoundРазработчик: Костя Волков aka Reminder. Компонента предназначена для работы с файлами формата compound (именно в этом формате хранятся файлы структуры метаданных конфигураций V7). Compound-файл является хранилищем, которое содержит внутри себя папки (Storage) и файлы (Stream), именно в этих файлах хранятся экранные и печатные формы, тексты описаний и программных модулей V7 и т.п. вещи, причём часть из них (например, тексты программных модулей, хранится в запакованном виде). Компонента позволяет корректно распаковывать, читать и модифицировать содержимое stream-файлов хранилища, а также записывать их обратно в compound-файл. Таким образом, при помощи Compound можно просматривать (и в случае необходимости) изменять файл структуры метаданных программными средствами и при некотором напряжении творческой мысли компонента позволяет сделать значительный шаг в сторону автоматизации разработки конфигураций V7 (пакетная обработка однотипных конфигураций, автоматизация тестирования физической целостности, сбор статистической информации и многое другое). Резюме: инструмент «на любителя», но этому любителю предоставляется широчайшее поле для творчества. 1C+JavaРазработчик: Павел Леонов. Еще одна демонстрация технологии. Компонента предоставляет шлюз между V7 и MSJM и позволяет расширять функциональность V7 путём использования java-классов (можно брать готовые классы, а можно писать свои). Потенциал у этой компоненты весьма значительный (даже не смотря на отказ MS от поддержки Java — ведь уже выпущенные версии MSJM от этого хуже работать не станут), но на практике я что-то не слышал, чтобы кто-то этим реально пользовался. Может быть потому, что компонента является коммерческим продуктом (а рынок внешних компонент V7 весьма специфичен, коммерческие разработки здесь крайне непопулярны). Резюме: вещь интересная, но, похоже, она разделяет судьбу проектов, в названии которых присутствует магическое слово «Java»… ;-) Rainbow Addon 2000Разработчик: Валерий Атаманюк. Мощное многофункциональное расширение платформы V7. Включает в себя шесть классов:
К сожалению, работа на Rainbow была прервана буквально на середине, поэтому дальнейшее развитие библиотеки представляется делом малореальным. Документации также практически нет. Зато это единственная компонента из представленных в обзоре, которая распространяется вместе с исходными текстами (VC++). А поскольку компонента использует скрытые возможности V7, чтение её исходников может помочь понять внутреннюю механику V7 — тем, кому это интересно. Как показывает практика, таких людей немало. ;-) Резюме: в своё время это был прорыв. На текущий же момент основными пользователями Rainbow являются владельцы больших и сложных баз, работающих под MS SQL. А тот факт, что открытие исходников нисколько не улучшило ситуацию с дальнейшим развитием продукта, наводит на некоторые мысли… PLBrowseKeyHandlerРазработчик: фирма «Анкей». Тут нужна небольшая предыстория. В экранных формах V7 могут находиться два вида таблиц: системные таблицы (это журналы документов, списки элементов справочников и т.п.), которые обязательно связаны с каким-либо объектом метаданных, и т.н. «таблицы значений», которые можно располагать где угодно и заполнять их какими угодно данными. Так вот, для системных таблиц работают «горячие клавиши» (ins — создать новую строку, del — удалить строку и т.д.), а для таблиц значений — не работают. Это очень неудобно, потому что приходится вынуждать пользователя нажимать мышью на какие-то дополнительные кнопки в диалоговом окне. При этом практически ни один сложный интерфейс объекта V7 не обходится без таблиц значений. Компонента PLBrowseKeyHandler решает эту проблему — с её помощью можно перехватывать произведённые пользователем нажатие клавиш и производить некие действия с текущей строкой таблицы значений. Действия, которые будут произведены по получению события с клавиатуры, предварительно задаются программистом (т.е. при желании можно повесить на ins удаление, а на del вывод сообщения «вы только что стёрли свою базу данных»). Единственное ограничение компоненты — если в форме расположено несколько таблиц значений, то назначать «горячие клавиши» можно только для одной из них, но для 90% задач и этого вполне хватает. Резюме: компонента не свободна от ошибок (есть кое-какие проблемы с передачей фокуса при нажатиях «горячих клавиш»), но позволяет здорово упростить жизнь пользователям, предпочитающим работать с клавиатуры. Dynamic Module ServerРазработчик: Андрей Рачкин. На сегодняшний день это, пожалуй что, наиболее мощная и перспективная компонента из всех, имеющихся в свободном доступе. Текущая версия DMS включает в себя пять классов:
Резюме: потенциал применения DMS на реальных задачах очень высок — начиная от простых функций защиты структуры конфигурации и программного кода от нелегального использования и заканчивая построением сложных модульных конфигураций, подстраиваемых под конкретную специфику прямо в процессе работы. *** Вот как бы и всё. Все рассмотренные компоненты опробованы в работе (насколько это было возможно) и на самом деле выполняют заявленные их разработчиками функции. За бортом обзора осталось несколько интересных вещей — например, старейшая, но не потерявшая актуальности и по сей день библиотека 1С:Addon или компонента для работы с FTP-серверами AddFTP — на момент написания обзора их сайты не функционировали и получить хоть какую-то информацию о состоянии проектов не представлялось возможным. Также стоит учесть тот факт, что в Сеть попадает информация далеко не обо всех существующих в природе внешних компонентах — а сообщество работающих с V7 программистов столь велико и так распределено в пространстве, что находить информацию в офайне весьма и весьма затруднительно. Источник - SoftТерра, http://www.softerra.ru
| ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |