В праздничные дни с 29.12 по 08.01 техническая поддержка отдыхает, но на наиболее важные вопросы постараемся ответить. Счастливого Нового Года!
gitverse new year логотип

v7SimpleAddIn

Форк
0

README.rst

===================== Запуск процессов в 1С

Внешняя компонента для 1С 7.7/8.х по технологии СОМ. Позволяет запустить процесс в отдельном потоке без отображения окна и общаться с ним через stdout, stdin. Данные внешнего приложения вызывают "ОбработкаВнешнегоСобытия" что позволяет эмулировать различное оборудование, а так же асинхронно регировать на события внешей программы.

Возможности

  • Можно запускать любую консольную программу или скрипт (python, php, perl, cmd, vbs, js)
  • Процесс запускается в отдельном потоке и не мешает выполнению основного процесса 1С.
  • При завершении 1С, процесс убивается.
  • Можно запустить несколько процессов создав несколько объектов
  • Строка с переносом передается в 1С в качестве события "ОбработкаВнешнегоСобытия"
  • Можно передать свои данные в процесс через Записать("какие то данные")
  • Ошибки во внешнем процессе не приводят к падению 1С, как это бывает при использовании внешних компонент.

Пример

Код 1С

Процедура ЗапуститьВнешний2() П = СоздатьОбъект("AddIn.Process"); П.СобытиеИсточник = "test"; П.СобытиеДействие = "msg"; П.ПоказыватьОкно = ""; П.Запустить("c:\python27\python.exe -u "+КаталогИБ()+"test.py"); КонецПроцедуры Процедура ОбработкаВнешнегоСобытия(а,п,в) Сообщить("ОБРАБОТКА:"+а+" "+п+" "+в); КонецПроцедуры ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"AddIn.dll");

Код скрипта

#coding: utf-8 from __future__ import unicode_literals print("start") print("Привет".encode('cp1251')) while True: line = sys.stdin.readline() print(line)

Применение

Компонента писалась для запуска python скриптов, но использоваться может любая консольная программа.

На данный момент я использую для работы сканеров штрихкодов через сервер redis. Такой подход позволил добиться стабильной работы rs232 сканеров с удаленным сервером терминалов даже при переодических потерях связи. Скрипты для сканеров не включены в этот проект.

Второе применение это связка python + _

selenium
: http://www.seleniumhq.org/ позволила сделать простую обработку для размещения заказа поставщику через его веб интерфейс. При запуске открывает браузер и выполняется заполнение как бы это приходилось делать менеджеру. В обработке 1С запускается скрипт, а в обработке внешнего события ожидается команда готовности получать данные о строках заказа.

v7AddIn

Исходники компоненты на Delphi XE5.

Для компиляции нужен Delphi не ниже XE2, т.к. шаблон компоненты переделан с использованием RTTI. Теперь создавать компоненты для 1С намного проще. Основной код располагается в модуле _

PipeRunner.Pas
:https://github.com/WorldException/v7SimpleAddIn/blob/master/v7AddIn/PipeRunner.pas

--

Стоянов Евгений quick.es@gmail.com

Описание

Пример упрощенного создания компоненты для 1С по технологии COM.

Языки

Pascal

  • Batchfile
  • Python
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.