[главная]-[программное обеспечение]-[для программистов]
Решения на 1С, как эффективный инструмент для бизнеса
Внешние компоненты для 1С:Предприятия 7.7Что делать, когда стандартных возможностей не хватает? Когда стандартных возможностей не хватает, нужно брать нестандартные ;-) Благо фирма 1С предусмотрела подключение к V7 библиотек дополнительных функций. Компоненты рассортированы по функционалу, одна и та же компонента может оказаться в нескольких разделах. Визуальный интерфейс• Управление окнами •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-плейера – пока что никто не реализовал… Вычисления• Математические функции •Addon • Addy • aiMath • Math • RainbowВсе четыре компоненты обладают достаточным набором функций из области математики и тригонометрии. Самый большой набор, пожалуй, у 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-клиентом. Отправка, получение писем. Поддержка аттачменов. Собственный механизм работы с 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 •
AddREG • aiRegistry •
Rarus API Extender • Wheel
Работать с реестром в повседневной жизни V7-программиста приходится довольно редко, но всё-таки иногда приходится. Проблема не в наличии инструмента, а в его выборе ;-) Лидером по функциональности является aiRegistery, эта компонента умеет даже работать с реестром удалённой машины (подключаясь к нему по локальной сети, прямо как regedit.exe). Но навороченный функционал нужен крайне редко. Так что лично я бы отдал предпочтение многофункциональной и проверенной временем библиотеке от Раруса. • Работа с файлами •Rarus API ExtenderРабота с INI-файлами. Ничего особенного, легко эмулируется штатными средствами. V7PlusЧтение и запись больших текстовых файлов. Прямое обращение к диску, поэтому работает быстро. В один момент времени работает только с одним файлом. Ограничение на размер строки, 32k. WheelЧтение и запись бинарных файлов. Уникальная функция, аналогов не имеет. Работа с внешними файлами «неродных» форматов на V7 практически не реализована (объект «Текст» я не считаю, по причине явной бестолковости и удручающей ресурсоёмкости). Перечисленные библиотеки с грехом пополам восполняют этот пробел, но, если подходить серьёзно, нормальная работа с большими текстовыми файлами под V7 по-прежнему невозможна. На фоне массового увлечения форматом XML это более чем грустный факт… • Системные команды •AddonМасса системных функций, начиная от чтения/установки буфера обмена и форматирования дискет, и заканчивая принудительным завершением сесии V7 по критической ошибке. Конечно, почти всё это (кроме, разве что, метода Crash() ;-) можно сделать через штаный оператор КомандаСистемы(). Но есть одно отличие: в случае работы с Addon пользователь не увидит дурацкого окошка DOS-сессии. • Печать, принтеры и шрифты •ExtPrintOLE-сервер, реализующий «человеческую» печать на матричных принтерах и прямой вывод на 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 «взрослым» программистам, считающих эту систему тупым бухгалтерским пакетом. Отвисающие челюсти гарантированы ;-). |