Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

Публикация № 179997

Разработка - Разработка внешних компонент

59
Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM
на всех версиях DELPHI, начиная с 6.
 
 
 
Состав проекта:

1. Компонент для DELPHI (любой версии) с исходными кодами, позволяющий значительно упростить создание внешних компонент 1С  (технология COM)
2.Генератор проекта внешней компоненты, позволяющий получить готовый проект за несколько секунд.  Остается только  добавлять свойства и методы своей компоненты с помощью визуального редактора. Все идентификаторы, имена, интерфейсы уже прописаны генератором проекта.
3.Демонстрационный проект внешней компоненты 1С
4.Подробная инструкция.

Описание проекта
 

Введение

Что это такое:

  1. Это компонент для DELPHI (любой версии), позволяющий значительно упростить создание внешних компонент 1С  (технология COM)
  2. Это генератор проекта внешней компоненты, позволяющий получить готовый проект за несколько секунд.  Остается только  добавлять свойства и методы своей компоненты с помощью визуального редактора. Все идентификаторы, имена, интерфейсы уже прописаны генератором проекта.

 

Почему до сих пор создавать по технологии COM

  1. Эта технология дает возможность написания универсальной компоненты, которая будет работать для всех версий 1С:Предприятия под windows 7.7/8.0/8.1/8.2/8.3
  2. Многие старые компоненты написаны по этой технологии. Для создания их современной замены без изменения конфигурации 1С необходимо использовать именно эту технологию.
    1. Например, для подключения новых видов торгового оборудования к типовым программам, лишенным теперь внешних обработок обслуживания оборудования.
  3. Технология хорошо документирована и проверена временем.

Почему DELPHI

  1. Относительно невысокая стоимость самой среды разработки.
  2. Обилие в сети бесплатных или дешевых компонент для работы с чем угодно.
  3. Наименьшее время разработки.
  4. Многие программисты 1С перешли с  паскаля и им достаточно просто освоить DELPHI.

 

Почему мой проект, ведь полно в сети различных проектов на эту тему в том числе, бесплатных

  1. Включены все исходные коды.
  2. Готовый проект внешней компоненты 1С можно получить за несколько секунд, не разбираясь в том, как там что устроено.
  3. Экспортируются и используются все документированные 1С интерфейсы.
  4. Свойства и методы внешней компоненты можно добавлять  визуально, как объекты обычной коллекции.
  5. Подробная документация

Начало работы

Содержимое архива

  1. 1C_ADDIN_HELPER. Компонент для DELPHI. Его надо установить. Инструкция ниже.
  2. 1C_ADDIN_ProjectCreator. Генератор проекта внешней компоненты. Инструкция ниже.
  3. 1C_ADDIN_DEMO. Демо-проект внешней компоненты, сделанный по данной технологии. Также включены обработки 1С 7.7 и 1С 8.2 для проверки работы компоненты. Инструкция ниже.

ШАГ 1. Установка компонента DELPHI

  • Запускаем DELPHI
  • Открываем Addin1cHelp.dpk из папки 1C_ADDIN_HELPER

DELPHI 6

DELPHI XE3

Жмем Install

 

Жмем Install

 

Получаем сообщение, что все спешно

 

Получаем сообщение, что все спешно

 

Добавляем путь к папке1C_ADDIN_HELPER  в библиотеку DELPHI.

Меню: Tools – Environment options - Library path

 

ADD-OK-OK

Добавляем путь к папке1C_ADDIN_HELPER  в библиотеку DELPHI.

Меню: Tools – options - Library –library path

 

ADD-OK-OK

Компонент появляется в палитре DELPHI

 

Компонент появляется в палитре DELPHI

 

 

Данный шаг необходимо выполнить один раз.


ШАГ 2. Генерация проекта внешней компоненты.

  • Запускаем PrCreator.exe  из папки 1C_ADDIN_ProjectCreator
    • Указываем:
      1. Путь к папке, в которой будет создан проект внешней компоненты
      2. Имя библиотеки внешней компоненты (имя dll-ки)
      3. Имя объекта внешней компоненты. Т.е имя, под которым ее объект можно будет создавать в 1С с помощью функций Новый() или СоздатьОбъект().
      4. Если у компоненты должна быть страница свойств, ставим галочку «Нужна страница свойств».
  • Нажимаем большую кнопку «Создать». В указанной папке появляется DELPHI-проект внешней компоненты 1С с указанными параметрами.
  • Его можно открывать в DELPHI.

ШАГ 3. Как добавлять функционал внешней компоненты.

  • Весь функционал компоненты реализуется в модуле Un_DM_List.pas, основной объект которого унаследован от TDataModule. Это дает возможность простого использования компонентов из палитры компонент DELPHI.
  • Добавление свойств и методов внешней компоненты осуществляется через коллекции (T1CMethCollection) и (T1CPropCollection) объекта AddinFPList уже добавленного в проект генератором проектов.

 


  • Чтобы добавить свойство внешней компоненты 1С, щелкаем по (T1CPropCollection)

 

Добавляем элемент в коллекцию и прописываем его свойства:

    1. Английское название
    2. Русское название
    3. Признак «IsReadOnly» запрещает 1С записывать в это свойство что либо.

Описываем события у нашего свойства:

 

    • OnGet

procedure TDM_List.AddinFPListProps0Get(var OldValue: OleVariant);

begin

 

end;

Это событие возникает, когда 1С пытается прочитать что либо из данного свойства. Прочитает она ровно то, что мы передадим в параметр OldValue. Тип OleVariant позволяет передавать строки, числа, даты, а также более сложные структуры, поддерживаемые 1С.

    • OnSet

procedure TDM_List.AddinFPListProps0Set(var NewValue: OleVariant);

begin

 

end;

Это событие возникает, когда 1С пытается записать что либо в данное свойство. Значение, которое 1С хочет записать, содержится в переменной NewValue. Мы можем обработать его, как хотим. Например, сохранить в одном из свойств нашего объекта.  Тип OleVariant может быть преобразован в строку, число, или дату явным присваиванием. Компилятор DELPHI в этом случае берет работу по преобразованию типов на себя.


  • Чтобы добавить метод внешней компоненты 1С, щелкаем по (T1CMethCollection)

 

Добавляем элемент в коллекцию и прописываем его свойства:

    1. Английское название
    2. Русское название
    3. Количество параметров
    4. Признак «IsFunction» сообщит 1С, что этот метод может возвращать значения.

Описываем событие у нашего метода:

 

    • OnExecute

procedure TDM_List.AddinFPListMethods0Execute(var Params: PSafeArray;

  var  : OleVariant);

begin

 

end;

В переменную Params  1C передает параметры метода. Получить их можно, используя функцию GetNParam , добавленную в проект генератором. Эта функция имеет два параметра. В первый передается массив Params, во второй – номер параметра, который мы хотим получить. Нумерация параметров с нуля!

Var

 Param1:String;

……………….

Param1:=GetNParam(Params,0); //Получаем первый параметр из массива

Можно также записать в Params значение некоторого параметра. Тогда 1С получит это значение после вызова метода (параметры передаются по ссылке). Для этого можно использовать функцию PutNParam, также имеющуюся в проекте. Онаимеет три параметра. В первый передается массив Params, во второй – номер устанавливаемого параметра, в третий – значение, которое мы хотим передать. Нумерация параметров с нуля!

Var

 Param1:String;

……………….

PutNParam(Params,0,Param1); //Установим значение первого параметра для 1С

Ну и в случае, если наш метод может возвращать значения, можно передать возвращаемое значение в переменную Ret. Тип OleVariant позволяет передавать строки, числа, даты, а также более сложные структуры, поддерживаемые 1С.

Ret:='Тест'; //Передаем строковое значение в качестве результата работы метода

 

Дополнительные возможности

  • Объект DM_List экспортрует стандартные интерфейсы 1С:
  • _pEvent : IAsyncEvent;{Генерация внешних событий в 1С }
  • _pErrorLog : IErrorLog;{Запись в окно сообщений 1С}
  • _pProfile : IPropertyProfile;{Хранение параметров компоненты}
  • _pStatusLine : IStatusLine;{Запись в строку состояния 1С}

Ими можно пользоваться в соответствии с их стандартным 1С-ким описанием.  В поставляемом демо-проекте есть пример их использования.

    • ВАЖНО: 1С-8 не реализует возможности интерфейса ExtWndSupport. Поэтому генератор проекта не добавляет экспорт этого интерфейса в проект. Вы можете сделать это самостоятельно в методе Init, описанном в AddInObj.pas.

  • Опционально генератор проекта может добавить в проект страницу свойств компоненты.

 

Обмен данными между объектом компоненты и страницей свойств осуществляется через унаследованный интерфейс IPropertyLink. В модуле страницы свойств описаны два метода:

    • UpdatePropertyPage. Запрашивает свойства из объекта и отображает их на форме страницы свойств.
      • Вызывается метод get_Config объекта DM_List, описанный в модуле Un_DM_List.pas
      • Передается структура TConfig, описанная в проекте в модуле AddInLib.pas . По сути это запись (RECORD).
      • Что нужно сделать для того, чтобы добавить какой-либо параметр для передачи из компоненты в страницу свойств:
        • Добавить элемент в структуру TRecord
        • В методе get_Config объекта DM_List прописать его заполнение.
        • В методе UpdatePropertyPage страницы свойств прописать его отображение на форме.
    • UpdateObject. Передает свойства со страницы свойств в объект компоненты.
      • Вызывается метод put_Config объекта DM_List, описанный в модуле Un_DM_List.pas
      • Передается та же структура TConfig.
      • Что нужно сделать для того, чтобы добавить какой-либо параметр для передачи со страницы свойств в компоненту:
        • В методе UpdateObject страницы свойств прописать заполнение элемента структуры CFG по данным формы.
        • В методе put_Config объекта DM_List прописать реакцию на изменение настройки со стороны страницы свойств.
  • В проекте реализована работа с профилем настроек внешних компонент 1С (pProfile).
    • Методы LoadProps() и SaveProps() объекта DM_List.
      • Данные методы вызываются автоматически при создании и уничтожении объекта, соответственно
    • Описано сохранение/восстановление значения _enabled (компонента включена).
    • Вы можете расширять количество сохраняемых значений.

 

 

Полезные знания

  1. Для того, чтобы в 1С-8 компоненту можно было подключать по имени объекта, т.е писать ПодключитьВнешнююКомпоненту(«Addin.MyObj»), файл внешней компоненты надо зарегистрировать в реестре с помощью команды regsvr32. В проекте, создаваемом генератором, добавлен командный файл Register.cmd, выполняющий это действие.
  2. Сложности могут возникнуть с передачей типа БУЛЕВО между 1С и внешней компонентой. 1С 7.7 такого типа вообще не знает. 1С-8 передает его в COM-компоненты в странном виде.

Описание демо-проекта, включенного в поставку

  • Демо-проект создан генератором проектов.
  • После этого в него добавлены следующие свойства и методы:
    • Метод «ПриветМир»
      • Имеет два параметра. Первый читает, второй возвращает.
      • Демонстрирует работу со строкой состояния в 1С (pStatusLine).
      • Демонстрирует работу с окном сообщений в 1С (pErrorLog)
    • Метод «ВернутьТест»
      • Параметров не имеет
      • Возвращает значение «Тест»
    • Метод «Внешнее событие»
      • Не имеет параметров и ничего не возвращает.
      • Запускает таймер, по которому через 1 секунду в 1С вызывается внешнее событие. Демонстрирует работу pEvent.
      • Почему по таймеру: 1С 7.7 не получит внешнее событие, если в ней в этот момент выполняется код. Поэтому, если отправить внешнее событие из метода внешней компоненты, 1С его не получит, т.к. в этот момент она исполняет метод внешней компоненты. 1С-8 лишена этого недостаткаJ.
    • Свойство «МоеСвойство»
      • Демонстрирует установку из 1С свойства объекта и считывание его обратно.
  • В папке демо-проекта находятся также внешние обработки для 1С 7.7 и 8.2, демонстрирующие работу демо-компоненты.

 

Причины купить

1. На создание проекта внешней компоненты всегда уходит время.

2. Добавлять свойства и методы внешней компоненты стандартными средствами долго и неудобно.

3. Мой проект позволит Вам сэкономить кучу времени

4. Ваше время дороже тысячи рублей:)

Достоинства

1.Включены все исходные коды.
2.Готовый проект внешней компоненты 1С можно получить за несколько секунд, не разбираясь в том, как там что устроено.
3.Экспортируются и используются все документированные 1С интерфейсы.
4.Свойства и методы внешней компоненты можно добавлять  визуально, как объекты обычной коллекции.
5.Подробная документация

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

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

Для возврата оплаты просто свяжитесь с нами.

59


Новый вопрос

E-mail*
Тема (вопрос)*

Специальные предложения

См. также

Внешняя компонента ExtMessage 3

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 Windows Платные (руб) Разработка внешних компонент Внешние источники данных Интеграция

Передача сообщений между двумя 1С, или между 1С и другими приложениями. Может использоваться как альтернатива COM-соединению.

2500 руб.

10.10.2019    1184    0       

Внешняя компонента клиента SSH / SCP (Native API) 5

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 Платные (руб) Разработка внешних компонент

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

5000 руб.

18.06.2019    1963    12    0       

Компонента для 1С, принимающая вес с железнодорожных, автомобильных, крановых весов 3

Инструменты и обработки Программист Пользователь Компонента, плагин (dll, vbs,..) v7.7 v8 Транспорт, автопарки, такси Россия Windows Платные (руб) Разработка внешних компонент

Программа "Компонента приёма веса для 1С, версия 3.0" позволяет принимать и заносить вес с весов непосредственно в программу "1С" - то есть, прием веса осуществляется целиком и полностью из программы "1С".

22000 руб.

09.04.2019    2421    0       

Внешняя компонента печати PDF (Native Win 32/64) 17

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Платные (руб) Разработка внешних компонент

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1000 руб.

17.09.2018    7143    49    5       

Внешняя компонента для подключения 1С к телефонии Asterisk 21

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Windows Платные (руб) Разработка внешних компонент Телефония, SIP

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

1000 руб.

04.05.2018    14178    29    12       

Программа для управления ККМ Атол и Штрих нового поколения (он-лайн ККТ под 54-ФЗ) с помощью текстового файла (ini файла) с изменениями в ФЗ от 01/07/19 80

Инструменты и обработки Системный администратор Программист Бухгалтер Архив с данными v7.7 v8 1cv8.cf 1cv7.md Россия БУ УУ Windows Кассовые операции Платные (руб) Инструментарий разработчика Разработка внешних компонент WEB ККМ

FR_ATOL_SHTRIH.EXE встраивается в SYSTRAY (в правом нижнем углу, там где часы) и следит за появлением обычного текстового файла, в котором перечислено, какие операции необходимо осуществить с ККТ - напечатать чек (нал/безнал), снять Z-отчет, осуществить выемку денег, сделать возврат и т.д. Такой механизм позволяет использовать комплект для WEB сайтов, для нетиповых или сильно измененных 1с7 или 1с8. Для любых программ, которые умеют работать с текстовыми файлами (будь то CLIPPER,FOXPRO,JAVA, WSH, VBS итд). Внутри комплекта лежат готовые к использованию обработки для 1с8: УТ10, БП2, БП2Базовая, БП2Корп, УТ11, БП3, БП3Базовая, БП3Корп, Для 1С7.7:ТиС документ Реализация ТМЦ,Печать из ПКО, Бух4.5, Бух1.3 . Код на 1с открыт - используйте обработки комплекта, как шаблоны для своих программ. Подключать ККМ к 1С не надо! Более 300 внедрений на ККМ Штрих и Атол. Некоторые из покупателей реализовали работу с ККМ даже из Excel и Axapta.

1000 руб.

31.07.2017    45020    346    359       

Медиадисплей. Рекламный информационный монитор для покупателя. 23

Инструменты и обработки Программист Пользователь Приложение (exe) v8 КА1 УТ10 Розница УНФ ERP2 БП3.0 УТ11 КА2 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг УУ Windows Розничная торговля Платные (руб) Разработка внешних компонент POS терминал Рабочее место Мобильная разработка

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

5000 руб.

30.05.2017    24497    405    19       

Сервер ККМ (54-ФЗ, быстрая печать чеков из терминального сеанса, печать с нескольких ПК) 126

Инструменты и обработки Системный администратор Программист Пользователь Приложение (exe) v8 1cv8.cf Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Windows Кассовые операции Розничная торговля Платные (руб) ККМ Разработка внешних компонент POS терминал Фискальный регистратор

"Сервер ККМ" позволяет приложениям работать с фискальными регистраторами из терминального сеанса Windows по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест. Поддержка драйверов Атол, Штрих и VikiPrint. Поддержка 54-ФЗ. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ, 1С:Розница 1/2, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП

5000 руб.

02.09.2016    70085    2355    128       

Компонента NativeAPI 1С для массового распознавания и печати штрих-кодов 41

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия Windows Платные (руб) Разработка внешних компонент

Программная компонента в формате NativeAPI 1C-предприятия (не ниже 8.2) предназначена для массового распознавания штрих-кодов из файлов на жестком диске, или загруженных в память компьютера из базы данных или любым другим способом, а также отображения штрих-кодов без использования дополнительных компонентов на стороне клиента.

8000 руб.

15.08.2016    27855    105    35       

Внешняя компонента для генерации QR-кодов в 1С для ЕГАИС 2

Инструменты и обработки Системный администратор Программист Архив с данными v7.7 v8 1cv8.cf 1cv7.md Розничная и сетевая торговля (FMCG) Платные (руб) Разработка внешних компонент

«Автоматизация бизнеса: QR-код» – внешняя компонента для «1С:Предприятие», которая позволяет генерировать QR-код в формате BMP. Актуальна для тех, кто обязан подключиться к ЕГАИС в части продаж. Благодаря этой компоненте, вы сможете печатать QR-код на фискальных регистраторах, которые не поддерживают генерацию QR-кодов.

4000 руб.

16.06.2016    19899    51    1       

SIP софтфон для 1С:Предприятия 11

Инструменты и обработки no Приложение (exe) v8 Windows Платные (руб) Разработка внешних компонент Телефония, SIP

SIP софтфон для 1С:Предприятия — это программный телефон, реализованный по технологии ActiveX с возможностью интеграции с 1С версии 8.x. SIP софтфон является самостоятельным приложением, и его работа не зависит от работоспособности 1С:Предприятия. Таким образом, при временной неработоспособности 1С вы остаетесь на связи для своих клиентов. По входящему звонку вы можете осуществить поиск контрагента в базе, передать на панель вызовов софтфона необходимую информацию, создать новый документ, автоматически заполнив реквизит «Контрагент» или осуществить исходящий звонок непосредственно из 1С, не разворачивая окно софтфона. Единственное ограничение — это ваша фантазия. SIP софтфон работает по протоколу SIP 2.0 и совместим со всеми АТС, поддерживающими данный протокол.

2800 руб.

13.08.2015    28322    320    12       

Кроcсплатформенное динамическое выполнение кода .NET (C#) из 1С:Предприятие 4

Инструменты и обработки Программист Подсистема v8 1cv8.cf Платные (руб) Разработка внешних компонент

Библиотека позволяет динамически выполнять фрагменты кода, написанные на C# аналогично функции Выполнить в 1С:Предприятие, на компьютерах под управлением ОС Windows и Linux. Имеется возможность передавать параметры, возвращать результаты выполнения, загружать сборки .NET, а также отслеживать ошибки выполнения кода C#. Библиотека оформлена в виде подсистемы.

2500 руб.

02.06.2015    14677    30    11       

V82Jpeg - Компонента обработки изображений 2

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Платные (руб) Разработка внешних компонент

Работа с изображениями: преобразование форматов, сжатие/расширение, простейшие операции редактирования, чтение атрибутов фотографий и их классификация по параметрам съемки - все это только из 1С без установки дополнительного софта.

10000 руб.

26.02.2015    13294    43    10       

Работа с PowerShell из 1С 35

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Windows Платные (руб) Разработка внешних компонент

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

2000 руб.

28.04.2014    34748    38       

GGraphics - внешняя компонента для работы с картинками jpg (jpeg), png, bmp, gif, tif 157

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Платные (руб) Разработка внешних компонент

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

2000 руб.

02.09.2010    50028    208    193