Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Решения на 1С, как эффективный инструмент для бизнеса


Служба Рассылок Subscribe.Ru
WildHare's Edition
Выпуск #2 // 27.11.2001 // Чем разбавить V7


Внешние компоненты для 1С:Предприятия
  • что делать, когда стандартных возможностей не хватает?
  • Когда стандартных возможностей не хватает, нужно брать нестандартные ;-) Благо фирма 1С предусмотрела подключение к V7 библиотек дополнительных функций, иначе называемых внешними компонентами. Вот о них-то и пойдёт речь в этом выпуске.

    Компоненты рассортированы по функционалу, одна и та же компонента может оказаться в нескольких разделах. Такая структура мне показалась более удобной.

    Гиперссылки ведут на страницы сервера Hare.ru, посвящённые соответствующим компонентам. Там можно скачать компоненту, получить информацию об авторе, а также прочитать комментарии пользователей этой компоненты.


    Визуальный интерфейс
    Управление окнами

    Addon
    Управление размером, позицией на экране, заголовком окон. Свернуть/развернуть/восстановить.

    Addy
    Свернуть/развернуть/восстановить. Двигать окна по экрану, передавать/отбирать фокус.

    aiWindows
    Свернуть/развернуть/восстановить. Изменить размер/заголовок. Получить список открытых окон.

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


    Расширения диалоговых форм

    Addy
    Красивые цветные и мигающие надписи, круги и квадратики. Прогресс-бар.

    Visual Tools
    Дерево элементов. Таблица значений с цветным текстом, фоном и прямым вводом.

    Это направление компонентостроения пока что развито слабо. Что неудивительно, работать с диалоговыми формами V7 "изнутри" довольно сложно.


    Работа с мышью

    My Mouse
    Обработка правого клика. Построение контекстного меню. Иконки и картинки в меню. Отметка пунктов меню.

    Step VC
    Обработка левого клика. Замена списка значений нормальным меню в стиле Windows. Иконки в меню. Отметка пунктов меню.

    По одной компоненте на каждую кнопку мыши. Страшно подумать, какие сложные и эргономичные интерфейсы можно строить на этих двух компонентах.


    Работа с клавиатурой

    addHook
    Отлеживание любых нажатых пользователем клавиш (в том числе системных) и генерация внешнего события. Распознавание alt, ctrl и shift. Обалденная штука.

    PLBrowseKeyHandler
    Перехват нажатий клавиш на экранных таблицах значений. Обработка ins, del, etc.

    Проблемы с клавиатурой в V7? Какие проблемы? ;-)


    Звуковые файлы

    Addon
    Проигрывание WAV-файлов.

    Addy
    Проигрывание MIDI-файлов.

    Издаваемые компьютером звуки вряд ли относятся к визуальному интерфейсу, но тем не менее. Почему-то самой интересной штуки – MP3-плейера – пока что никто не реализовал…


    Вычисления
    Математические функции

    AddonAddyaiMathMathRainbow

    Все четыре компоненты обладают достаточным набором функций из области математики и тригонометрии. Самый большой набор, пожалуй, у aiMath, а вот Addon помимо математических содержит некоторое количество строковых функций (вроде подсчёта слов в строке и т.п. вещей).


    Специфические вычисления

    Reval
    Функция EvalExpr(). В отличие от метода Шаблон(), в тексте выражения можно использовать тригонометрию, бинарную логику, корни/степени, а самое главное – можно определять и использовать переменные внутри выражения.


    Доступ к базам данных
    Доступ к базам в формате MSSQL

    AdvSerch
    Сложный поиск в справочниках SQL-версии. Свой визуальный интерфейс для построения запросов.

    ConnectSQL
    Расшифровка параметров доступа к SQL-базе (файл 1cv7.dds). Генерация строки соединения для SQL- и DBF-версий.

    Rainbow
    Прямые SQL-запросы к информационной базе. Мгновенное извлечение данных.

    ToySQL
    Прямой доступ к SQL-базе. Загрузка в базу SQL-скриптов из внешних файлов.

    Известно, что V7 умеет хранить базы данных под MSSQL. Но мощнейшие возможности этой СУБД никак нельзя использовать штатными методами. Между тем как прямые SQL-запросы позволяют извлекать данные в десятки раз быстрее, чем при помощи встроенного языка V7. И для этих целей есть все необходимые инструменты.


    Шлюзы ко внешним приложениям
    Шлюзы к TWAIN-драйверу

    Scan
    Сканирование графического образа. Запись в BMP. Помещение картинки в clipboard.

    Scanner
    Сканирование графического образа. Запись в BMP и JPG. Настройка степени сжатия JPG.

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


    Шлюзы к MSE и MSXML

    V7Plus
    Получение данных по протоколу HTTP. «Обёртка» для MS XML Parser v3.

    RBrowser
    Закачка и отрисовка HTML (а также GIF, PNG и любых других файлов, поддерживаемых MSIE) в окне V7. «Минибраузер».

    Эти две компонеты вполне покрывают все потребности при работе с MSIE: одна позволяет скачать и распотрошить текст страницы, а другая покажет страницу в окне.


    Шлюзы к другим приложениям

    Fox Emulator
    Шлюз к Visual FoxPro v5. Все функции и все возможности fox'а. Требует наличия runtime-библиотек FoxPro.

    V7Queue
    Шлюз к службе MSMQ (Micro$oft Message Queue). Доступ к функциям службы сообщений Windows 2000.

    Очень полезные библиотеки, особенно V7Queue – это практически готовая транспортная служба для передачи данных между различными приложениями, распределёнными в пространстве локальной или глобальной сети, поддерживающая нотификацию, гарантию доставки, приоритеты, сложные маршруты и т.п. вещи.


    Коммуникации, Internet
    Электронная почта

    V7Plus
    «Обёртка» для управления MAPI-клиентом. Отправка, получение писем. Поддержка аттачменов.

    Mail
    Собственный механизм работы с E-mail. Почтовый клиент не нужен. Полноценная работа с POP3 и SMTP серверами.

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

    Wheel
    Только отправка почы. Можно использовать почтовый клиент (MAPI), а можно работать напрямую с SMTP.

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


    Получение информации из Интернета

    Valuta
    Закачка курсов валют прямо с сервера Центробанка России. Собственный механизм работы с HTTP.

    Informer
    Получение информации с сервера РосБизнесКонсалтинга. От курса доллара и прогнозов погоды до курсов цветных металлов и коэффициента инфляции РФ.

    Конечно, всё то же самое можно вытащить из Интернета и «руками». Но эти две компоненты позволяют обойтись без трудоёмкого ручного скачивания и разбора файлов, доставка нужной информации осуществляется буквально одним оператором.


    Системные функции, работа с окружением
    Системная информация

    V7Info
    Программное получение информации о версии и релизе V7.

    V7Plus
    Данные о процессоре, памяти, ОС и т.п. Номер релиза V7. Генерация GUID.

    Addon
    Информация о размере экрана, имени машины; метки, размеры и серийные номера логических томов. Очень полезная функция – информация о версии произвольного DLL или EXE файла.

    Иногда окружение играет существенную роль для работы конфигурации, поэтому системная информация лишней не бывает. Что характерно, очень немногие внешние компоненты имеют такой полезный метод, как НомерВерсии(). А зря…


    Работа с zip-архивами

    Rarus API Extender
    Создание и удаление архивов, добавление, удаление и извлечение файлов, подсчёт размеров.

    Wheel
    Добавить файл в архив, извлечь файл из архива. Файл всегда только один.

    Работать с архивами приходится практически всегда, когда в задаче тем или иным образом фигурирует перемещение файлов по тонким каналам. И без API к ZIP'у в этом случае просто не обойтись. Библиотека от Раруса пока что остаётся единственным достойным исполнителем этой роли.


    Работа с реестром Windows

    AddREGaiRegistryRarus API ExtenderWheel

    Работать с реестром в повседневной жизни V7-программиста приходится довольно редко, но всё-таки иногда приходится. Проблема не в наличии инструмента, а в его выборе ;-) Лидером по функциональности является aiRegistery, эта компонента умеет даже работать с реестром удалённой машины (подключаясь к нему по локальной сети, прямо как regedit.exe). Но навороченный функционал нужен крайне редко. Так что лично я бы отдал предпочтение многофункциональной и проверенной временем библиотеке от Раруса.


    Работа с файлами

    Rarus API Extender
    Работа с INI-файлами. Ничего особенного, легко эмулируется штатными средствами.

    V7Plus
    Чтение и запись больших текстовых файлов. Прямое обращение к диску, поэтому работает быстро. В один момент времени работает только с одним файлом. Ограничение на размер строки, 32k.

    Wheel
    Чтение и запись бинарных файлов. Уникальная функция, аналогов не имеет.

    Работа с внешними файлами «неродных» форматов на V7 практически не реализована (объект «Текст» я не считаю, по причине явной бестолковости и удручающей ресурсоёмкости). Перечисленные библиотеки с грехом пополам восполняют этот пробел, но, если подходить серьёзно, нормальная работа с большими текстовыми файлами под V7 по-прежнему невозможна. На фоне массового увлечения форматом XML это более чем грустный факт…


    Системные команды

    Addon
    Масса системных функций, начиная от чтения/установки буфера обмена и форматирования дискет, и заканчивая принудительным завершением сесии V7 по критической ошибке.

    Конечно, почти всё это (кроме, разве что, метода Crash() ;-) можно сделать через штаный оператор КомандаСистемы(). Но есть одно отличие: в случае работы с Addon пользователь не увидит дурацкого окошка DOS-сессии.


    Печать, принтеры и шрифты

    ExtPrint
    OLE-сервер, реализующий «человеческую» печать на матричных принтерах и прямой вывод на LTP.

    Wheel
    Выдаёт список проинсталлированных в системе шрифтов.

    Печать и печатные формы являются одной из сильнейших сторон V7. Но возникает проблема работы с матричными принтерами, которые на просторах ex-USSR отнюдь не являются редкостью. ExtPrint позволяет решить эту проблему.


    «Внутренности» V7
    События и таймеры

    aiTimer
    Позволяет запустить в системе несколько таймеров с разными интервалами. Таймеры генерируют стандартное вшенее событие V7.

    Event
    Эмуляция внешнего события V7. Движок системы остаётся в полной уверенности, что событие пришло «извне». Незаменимо для тестирования и отладки.

    Waiter
    Отслеживание и подсчёт времени бездействия пользователя (времени, в течении которого система не получала событий от мыши и клавиатуры).

    V7 почти не имеет функций, позволяющих ей работать в качестве системы «реального времени». Эти библиотеки расширяют функционал для отслеживания времени и обработки событий.


    Структура MD и ERT

    Compound
    Работа с файлами формата compound (1cv7.md, *.ert). Чтение и запись потоков. Распаковка текстов модулей.

    ActiveMD
    Можно сказать, что это «предметно-ориентированный» Compound. Работа с внутренней структурой MD ведётся не в контексте фолдеров и потоков, а на более высоком уровне, адресуясь непосредственно к реквизитам конфигураци.

    Эти библиотеки предназначены для конфигурирования без конфигуратора. Инструменты очень мощные и интересные, но для работы с ними нужно обладать достаточно высокой квалицикацией.


    Экзотика

    1C:Java
    Шлюз между V7 и MSJM (java virtual machine). Позволяет расширять функционал V7 через использование Java-классов.

    OCR Pelican
    Распознавание рукописного текста (только цифры). Компонента построена на нейросетевых технологиях. Java-классов.

    Обе эти компоненты представлены в виде демо-версий и не имеют чёткой области примения. Идеально подходят для демонстрации возможностей V7 «взрослым» программистам, считающих эту систему тупым бухгалтерским пакетом. Отвисающие челюсти гарантированы ;-).


    в рассыке были использованы материалы раздела
    V7.AddIn.Library ::: addin.hare.ru

    AddIn.Library – это своего рода витрина для представления внешних компонент широким народным массам. Практически все компоненты, информация о которых собрана в AddIn.Library, распространяются как freeware-продукты.

    На страницах AddIn.Library можно получить информацию о внешних библиотеках, ссылки для скачивания, адреса домашних страниц и почтовые адреса разработчиков. Каждую библиотеку можно осбсуждать и комментировать.

    В настоящее время в базе данных AddIn.Library содержится 40 внешних компонент.


    сервер Hare.ru поздравляет всех читателей рассылки
    С НОВЫМ ГОДОМ! HAPPY NEW YEAR! БУДЬТЕ СЧАСТЛИВЫ!

    WBR, Nikita Zaitcev a.k.a. WildHare
    контактная информация: http://hare.ru, mailto:wild@hare.ru, ICQ #64429462.


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное