Стоит ли использовать Внешние компоненты для 1С?
Фирма 1С предусмотрела возможность использования Внешних Компонент (ВК) при работе системы. За длительный период времени появилось множество ВК, расширяющих функциональную часть 1С…
- Описание
- Подробнее
Описание
«Технология создания внешних компонент» разработана для решения специальных задач интеграции, в которых требуется тесное взаимодействие между 1С:Предприятием и другими программами.
Данная технология позволяет создавать программы, которые будут динамически подключаться и тесно взаимодействовать с системой 1С:Предприятие, расширяя ее возможности.
Технология внешних компонент позволяет решать широкий спектр специальных задач, в частности, задачи, связанные с использованием различного торгового оборудования совместно с 1С:Предприятием.
Внешняя компонента может порождать события, обрабатываемые в предопределенной процедуре языка ОбработкаВнешнегоСобытия. Это позволяет подключать к 1С:Предприятию сканеры и другие устройства, требующие асинхронного обмена данными.
Некоторые программисты скептически относятся к использованию Внешних Компонент, в некоторых случаях даже негативно: «Я не приемлю использование ВК»…
Однако не все так плохо как кажется. Несомненно существуют ВК работающие нестабильно, но все же большая часть ВК протестирована и используется многими программистами.
Остановимся на 1С 7.7. Рассмотрим самые популярные ВК.
Проект 1С++ – www.1cpp.ru
В этой ВК собран труд многих разработчиков
Внешняя компонента для 1С:Предприятия 7.7, предоставляющая в распоряжение разработчика такие мощные и гибкие инструменты как:
объектно-ориентированное программирование на языке 1С:Предприятия;
прямые запросы к базе данных;
дополнительные встроенные объекты: ИндексированнаяТаблица, ТабличноеПоле, Перехватчик;
и многое другое.
Компонента имеет страницу свойств, атрибуты которой устанавливаются из меню «Сервис-Параметры» 1С:Предприятия.
База знаний по использованию компоненты 1С++ на официальном форуме
FAQ по 1С++
Репозитарий классов 1С++ в единой конфе
Пример использования:
Редактор формы для 7.7 + Настройка привязок Автор: Ёпрст
Проект FormEx – www.dorex.pro – мощная компонента для управление интерфейсом 1С:Предприятия 7.7
Разработчик Алексей Федоров aka АльФ
Внешняя компонента предназначена для расширения интерфейсных возможностей 1С:Предприятия.
«Не секрет, что возможности по управлению интерфейсом в 1С:Предприятии оставляют желать лучшего. Представленная здесь внешняя компонента позволяет значительно повысить уровень эргономисности разрабатываемой конфигурации. Да и просто сделать ее интерфейс более красивым.» (АльФ)
Среди основных возможностей компоненты:
Раскраска табличных частей и списков значений (формы списков, табличные части документов, списки с пометками и т.д.)
Получение контекста текущего активного окна
Выполнение процедур и функций, обращение к переменным через контекст
Метод для интерактивного выбора из вложенных списков значений в виде многоуровневого меню или дерева
Создание дополнительных глобальных модулей
Механизм отображение в строке состояния текущего времени и раскладки клавиатуры
Установка и управление «обоями» на главном окне 1С:Предприятия 7.7
Методы для вычисления высоты строки объекта «Таблица»
Набор глобальных и локальных предопределенных процедур для управления работой мыши и клавиатуры
Набор глобальных и локальных предопределенных процедур для анализа изменения размеров текущего окна и выполнения действий после физического открытия окна формы
Методы для последовательного перебора и перебора по условию всех реквизитов формы
Методы для получения реквизита формы по его координатам
Методы для «подсветки» закладок, добавления на закладки пиктограмм
Методы для управления положением колонок в таблице значений («новая колонка», «в той же колонке», «на следующей строке») и отключением/включением флага автоширины в таблчных частях
Методы для присоединения и отсоединения форм (по принципу штатного журнала операций, совмещенного с журналом проводок)
Средства доступа и изменения следующих свойств любых реквизитов формы:
Заголовок; Подсказка; Описание; Формула; Видимость; Доступность; Слой; Значение; Координаты; Цвет шрифта (не для всех типов реквизитов); Цвет фона (не для всех типов реквизитов); Идентификатор (только чтение); Тип (только чтение)
Методы для получения полного пути к потоку формы внутри 1cv7.md и получения полного типа формы
Метод для фиксирование колонок в табличной части
Методы для формирования GUID, получения информации об операционной системе
Реализрован альтернативный механизм обработки ожидания, работающий при любых условиях (штатный механизм не работает при открытых модальных формах)
Механизм прямого ввода в списке значений на форме
Новый визуальный объект «дерево+таблица» — надстройка над таблицей значений на форме, совмещающая в себе функционал таблицы значений и дерева
Компонента имеет страницу свойств, атрибуты которой устанавливаются из меню «Сервис-Параметры» 1С:Предприятия.
База знаний на форуме ВК
Примеры использования:
Формирование «креста» в Таблице Значений на форме Автор: Альтаир Павленко aka Altair777
Работа с объектом «Дерево+Таблица». Шаблон для универсальной печати справочников Автор: Юрий aka Sprite
Проект DialMail – www.dialmail.ru
Разработчик Владимир Серегин
Компонента позволяет:
1. Устанавливать соединения с сервером посредством дозвона. Возможна работа в отдельном потоке. Использовать уже установленные соединения. Управлять подключениями удаленного доступа — удалять, добавлять, изменять;
2. Реализована полноценная работа с электронной почтой (по протоколам SMTP, POP3). Поддерживается работа через прокси сервер (протокол SOCKS5). Получать и принимать почту можно в отдельных потоках. Поддержка SSL — протокола — шифрование передаваемых и получаемых данных;
3. Реализована полноценная работа с FTP;
4. Поддерживается работа с архивами формата Zip;
5. Поддерживается работа с большими текстовыми файлами;
6. Содержит ряд неочевидно полезных функций
— выключение/перезагрузка компьютера
— работа с Windows-окнами
— запуск внешних приложений в режиме ожидания их завершения
— возможность просмотра версии операционной системы
— программное переключение раскладки.
Примеры использования:
1С Планировщик — автоматизации выполнения задач по расписанию Автор: Денис Денин aka MrDen
Также в архиве ВК на официальном сайте
Кроме этих компонент существует много других достаточно интересных и функциональных ВК.
Дмитрий Трапезников ака trad
TableDoc – ВК для работы с табличным документом (Таблица) системы 1С:Предприятие 7.7
ВК реализует два класса: МенеджерТабличногоДокумента и элемент управления ПолеТабличногоДокумента.
МенеджерТабличногоДокумента — класс для управления некоторыми параметрами состояния любого табличного документа. Работает с объектом типа «Таблица».
ПолеТабличногоДокумента — элемент управления представляющий из себя атрибут формы отображающий представление (View) стандартного 1С-объекта Таблица.
Класс ПолеТабличногоДокумента реализует интерфейс CV7Control, что позволяет осуществлять создание ЭУ посредством ВК 1С++. Например при помощи метода Форма::СоздатьЭлементУправления. См. описание соответствующих методов в документации по 1С++.
Примеры использования в chm документации
TableDoc.als – ALS-файл для ВК TableDoc Автор: Федор aka tdr1225
OleExSup – внешняя компонента расширяющая штатные возможности обращения к OLE-объектам.
ВК расширяет штатные возможности обращения к OLE-объектам. В настоящее время это касается передачи массивов SAFEARRAY, в качестве параметров и возвращаемого значения, при вызове метода объекта через интерфейс IDispatch.
В компоненте, соответственно, реализован достаточно функциональный класс OleSafeArray.
Примеры использования на странице ВК
Василий aka Душелов
Генератор внешних событий – Компонента генерирует внешние события с заданным интервалом и с заданными значениями.
[Tray1C] Сворачивание 1С в системный трей. – Компонента сворачивает окно 1С в системный трей (у часов) и убирает с панели задач. Позволяет формировать свое меню и отслеживать выбор элементов меню. Мигает в трее и на панели задач, позволяет выводить всплывающие сообщения, а так же всплывающее окно самой 1С (т.е. любую форму) и окно служебных сообщений появлении там сообщений. Показывает язык ввода в строке статуса 1С 8.х Можно установить собственный значок для отображения в трее, а также изменить заголовок окна 1С.
«Хранилище внешних компонент» — небольшая подсистема для 1С 8.1 – Хранит внешние компоненты и сопутствующие файлы в базе, в случае отсутствия компоненты на компьютере пользователя сохраняет нужные файлы и регистрирует в системе.
ICQ и Jabber для 1С – Внешняя компонента, для обмена сообщениями в сети ICQ и Jabber.
Пример использования:
ICQ Клиент-Сервер отдельных запросов и документооборота Автор: Дмитрий aka Delon
Олег aka Uzhast
Йоксель (Yoksel) – это набор программных средств для работы с табличными документами.
Возможности Йокселя:
Прямое чтение файлов Excel – можно открывать книгу Excel, получать список листов и загружать любой лист в табличный документ Йокселя. При чтении сохраняется форматирование табличных документов Excel и внедренные объекты.
Прямая запись файлов Excel – можно создать книгу, заполнить список листов и записать книгу в файл. При этом будет сохранено форматирование и внедренные объекты табличных документов для листов. Конвертер Йокселя работает на несколько порядков быстрее встроенного в 1С:Предприятие конвертера и обеспечивает более высокое качество полученных документов.
Поддержка табличных документов 1С:Предприятия – поддерживается формат встроенных табличных документов в полном объеме. Документы можно загружать и записывать.
Элемент управления, позволящий отображать табличные документы на диалоговых формах 1С:Предприятия.
Преобразование табличных документов в файлы графических форматов: BMP, JPEG и PNG.
Расширенная работа с отчетами. Йоксель предоставляет разработчикам под 1С:Предприятие 7.7 ряд возможностей, отсутствующих в 1С:Предприятии и делающих работу с отчетами удобнее.
Текущие сборки Йоксель (Yoksel)
Примеры использования:
Мгновенная отправка по почте любой печатной формы из 1С Автор: Сhe Burashka Сергей
Акт сверки для конфигурации «Торговля и Склад» Автор: Снусмумрик
Распределение заявок по поставщикам Автор: Сhe Burashka Сергей
Robert
RWidjets – Динамические панели, меню программы.
Компонента позволяет добавлять новые пункты к основному меню программы. Вы можете добавлять в меню команды, разделители или выпадающее меню, создавая, таким образом, иерархическое меню. При выборе пункта меню выполняется указанный вами скрипт на внутреннем языке 1С. Вы можете делать пункты неактивными, ставить пометку, удалять и добавлять новые пункты меню во время работы программы без изменения интерфейса пользователя в конфигураторе.
Также вы можете перехватывать, отменять или переопределять команды стандартного меню, панелей инструментов, горячих клавиш.
Примеры использования в архиве
Дмитрий Бердаков aka metaeditor
FDSubst1C – новые функции в стандартных диалогах 1С открытия файла.
— Плагин «превращает» все стандартные диалоги открытия/сохранения файлов в Explorer-Style диалоги с Places bar панелью слева + две дополнительных настраиваемых кнопки, помимо пяти стандартных, + настраиваемая кнопка «Избранное»
— Запоминаются пути последних открытых/сохранённых файлов.
— статус бар, отображающий текущую открытую папку
— Программа «превращает» все стандартные диалоги открытия/сохранения файлов в Explorer-Style диалоги с Places bar панелью слева.
— В левой панели имеется возможность настроить две дополнительных кнопки помимо пяти стандартных.
— Запоминаются пути последних открытых/сохранённых файлов.
— Внизу диалога добавлен статус бар, отображающий текущую открытую папку.
— В список фильтров диалога открытия файла добавлен пункт «Все файлы»
— В верхней панели диалога добавлена настраиваемая кнопка «Избранное»
В качестве дополнительных возможностей:
— программа исправляет баг диалога выбора файла в 1С 7.7 (ФС.ВыбратьФайл()), который обрезает имя выбранного файла до 63-х символов
— возможность «отключить» в диалоге контекстное меню на списке файлов, то есть через диалог нельзя скопировать, удалить, открыть другой файл, итд. Таким образом, остается возможность сохранять печатные формы отчетов, но при этом файловые операции будут недоступны.
— возможность заблокировать все диалоги открытия\сохранения файла для режима «предприятие 7.7», а также вставки картинок и OLE объектов в таблицы.
— возможность заблокировать вообще все диалоги в системе
Примеры использования в архиве
OpenFileDialogsManager – Компонента позволяет управлять диалогами открытия/сохранения файлов.
Примеры использования в архиве
Олег Ризванов aka ROM
ROM-Mail – Внешняя компонента не использующая MAPI интерфейс, и работающая по протоколам SMTP и POP3. Компонента имеет страницу свойств, атрибуты которой устанавливаются из меню «Сервис-Параметры» 1С:Предприятия.
Примеры использования:
Пример для автообмена 1С 7.7 Автор: Олег Ризванов aka ROM
Также на официальном сайте
ROM-Chart – Внешняя компонента деловой графики для построения диаграмм на форме внутри главного окна 1С:Предприятие 7.7.
Примеры использования:
На официальном сайте
Роман aka romix
vk_TerminalSleep – Исправление ошибки 1С:Предприятие 7.7/8.0 — 100% загрузка процессора при ожидании блокировки
ВК позволяет разгрузить процессор, когда два или более пользователей пытаются провести документ. 1С пытается заблокировать таблицы, но делает это без пауз, и загружает процессор на 100%. При этом пользователи практически «встают», и нормальная работа прекращается. Компонента (или патч) позволяет решить эту проблему и нормализовать работу пользователей. Особенно актуально при работе в режиме сервера терминалов.
fakir – Вызов событий в 1С:Предприятие 7.7
Компонента умеет вызывать события из 1С, содержит единственный метод ВызватьСобытие().
Скачать компоненту (с ее исходным кодом и тестовым примером) Вы можете здесь: http://x-romix.narod.ru/EventMaker.rar
Аналогично в FormEx — Сервис.ВнешнееСобытие
Многие другие примеры и статьи можно посмотреть на официальном сайте
Александр Орефков aka orefkov
1Spy – Протоколирование окна сообщений и messagebox’ов.
ВК ведет протокол всех сообщений, выводимых в окно сообщений 1С (включая системные), а также всех MessageBox’ов (Предупреждение, Вопрос, системные сообщения).
Протокол может записываться в файл в формате csv, а также запоминаться в буфере в памяти.
Также позволяет выборочно блокировать вывод сообщений взависимости от типа маркера.
1sqlite – Внешняя компонента для работы с базами данных SQLite, плюс прямые запросы в ДБФ-базах 1С.
Кроме того, при работе в ДБФ-версии 1С, компонента позволяет посредством «движка» SQLite и встроенным в него механизмом «виртуальных таблиц» обращатся на чтение к таблицам базы данных 1С через «родные» методы самой 1С. Что позволяет выполнять запросы к базе 1С даже в монопольном режиме работы.
Основные фичи компоненты:
SQLite версии 3.6.11
Движок SQLite доработан в плане регистронезависимости русских символов, нормально работают lower, upper, like, названия таблиц, полей.
Добавлено collate _1С — сравнение строк без учета регистра и завершающих пробелов.
Отображение ДБФ-таблиц 1С в базу данных SQLite и возможность использовать их в запросах.
Работа с ДБФ-таблицами 1С в монопольном режиме.
Получение в прямых запросах «длинных» строк 1С-ДБФ.
Типизация результатов запроса типами данных 1С.
Работа с текстовыми и sql-параметрами в запросах.
Укладка в базу данных SQLite ТаблицЗначений.
Укладка в базу данных SQLite СписовЗначений с объектами 1С, с возможностью в ДБФ версии разворота групп справочников или счетов по иерархии.
Поставщик данных табличного поля 1С++.
Среди проектов автора следует отметить:
OpenConf – загрузка сторонних dll в адресное пространство Конфигуратора.
Объектная модель Конфигуратора
Позволяет обращатся к объектам Конфигуратора из скриптов и плагинов.
Использование ActiveScript
Применение технологии ActiveScripting в Конфигуаторе позволяет програмно управлять им с помощью скриптов.
Позволяет с легкостью писать плагины для Конфигуратора на любом из языков, способных работать с IDispatch и OLE Automation. Простой стандартный метод визуализации плагинов при помощи ActiveX Control
Телепат 2 – плагин для OpenConf, расширяющий возможности встроенного в Конфигуратор 1С-Предприятия 7.7 текстового редактора.
Михаил aka MMF
Admin1C_dll – Компонента позволяет получить информацию о юзерах, об активных юзерах, залоченных документах, устанавливает фон, раскладку клавиатуры, прочее.
Основное назначение — сетевой клиент для приложения admin1C, что дает возможность управлять сеансами 1С — отправка сообщений, завершение, сбор системной информации.
Пример использования:
[MSG] Отправка сообщений пользователям (Расширенная) Автор: Сhe Burashka Сергей
Wingraphviz – Построитель графов DOT
Часто возникает необходимость разобраться в сложной конфигурации, разобраться как она устроена, каковы взаимосвязи между объектами конфигурации. Например, такая задача особенно актуальна для новых конфигураций на платформе 8.0. Структуру конфигурации желательно вывести в графическом виде, поскольку это наиболее быстрый способ понимания, потому что картинка стоит тысячи слов.
Такая возможность есть! Для этого можно применить программу под названием «DOT», которая принимает на вход текстовый файл со структурой графа, а на выходе формирует граф в виде графического, векторного или текстового файла.
Примеры использования:
Анализ метаданных 7.7 Автор: Алексей Кренделев
Структура конфигурации 8.0 Автор: Станислав Митичкин
Ivan T Berezdetsky
qryConsole – Консоль и расширения запросов 1С++
Возможности:
— консоль и конструктор прямых запросов;
— расширения запросов для создания локальных OLAP-кубов (TOTALS … BY …);
— сводные и электронные таблицы, диаграммы (на базе Office Web Components);
— и тд. Подробнее.
Форум
Примеры использования:
OLAP Анализ счёта Авторы: Максим Головин, Евгений Мартыненков aka JohnyDeath
Также на странице компоненты
Среди проектов автора следует отметить:
qryMaker – Конструктор прямых запросов 1C++.
Плагин OpenConf. Визуальный построитель прямых запросов 1С++. Аналог конструктора запросов 1Cv8.
Поддерживает редактирование уже созданных запросов. Позволяет на выходе создать форму.
Степан Рыбальченко aka Steban
1sci – элемент управления Scintilla.
ВК реализует элемент управления Scintilla.
Не требует регистрации в реестре.
Реализует интерфейс v7Control, следовательно создается на форме и через FormEx, и через класс Форма в 1С++ версий 2.5 и старше.
Примеры использования на странице ВК
Владимир aka hogik
DBEng32 (5.1.3.2, CodeBase 6.5) – клиент/серверное использование DBFной версии 1С:Предприятие 7.7.
Данная разработка позволяет использовать систему 1С:Предприятие 7.7 (DBFная версия) в режиме клиент/сервер на базе сервера CodeBase 6.5 разработанного фирмой Sequiter Inc. Предлагаемое решение позволяет устранить основные недостатки DBFной реализации поддержки баз данных 1С:Предприятие 7.7.
Примеры использования на странице ВК
DBEng32 (6.0.4.0, Advantage 8.1/9.1) – клиент/серверное использование DBFной версии 1С:Предприятие 7.7.
Данная разработка позволяет использовать систему 1С:Предприятие 7.7 (DBFная версия) в режиме клиент/сервер на базе сервера Advantage 8.1/9.1 разработанного фирмой Extended Systems Inc. Предлагаемое решение позволяет устранить основные недостатки DBFной реализации поддержки баз данных 1С:Предприятие 7.7.
Примеры использования на странице ВК
Kernel3x – решение проблемы 1 гигабайта для DBFной версии 1С:Предприятие 7.7.
Одним из недостатков DBFной версии “1С:Предприятие 7.7” является ограничение на размер файлов – 1 гигабайт. При этом если система эксплуатируется в однопрограммном режиме, то размер файла может быть 2 гигабайта, однако если появится второй пользователь, а файл будет больше 1 гигабайта, то система 1С начинает сбоить по ЧТЕНИЮ, у одного пользователя, если другой выполняет запись/обновление данных. Например, если выполнять цикл по выборке данных, то он может “тихо” прекратиться в любой момент, не предоставив программе всего множества объектов.
Примеры использования на странице ВК
Александр Алюев aka alyuev
PDF417 – Внешняя компонента для формирования штрих-кода.
ВК позволяет формировать двумерный штрих-код PDF417. Может кодировать кириллицу. Есть исходные коды на VB6 и пример отчета в 1С 7.7.
Примеры использования на странице ВК
Валерий Васильев
VVSAst – Внешняя компонента для управления сервером Asterisk (IP-телефония) из 1С.
Компонента предназначена для соединения с сервером Астериск. При работе устанавливается соединение с сервером используя сокеты. После чего можно отсылать сообщения. Ответы от сервера обрабатываются различными методами.
Примеры использования на странице ВК
К сожалению реализация многого функционала заявленного в ВК «штатными» средствами затруднена, поэтому в некоторых случаях приходится использовать эти инструменты либо разрабатывать собственные.
Расширение функционала 1С не есть «зло», как говорят некоторые программисты. Это попытка сделать 1С лучше и функциональнее.
Спасибо тем, кто прочитал статью и возможно поменял свое мнение к ВК.