Native внешняя компонента для оповещения по UDP или TCP

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

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

hative внешняя компонента udp tcp взаимодействие оповещение событие dll

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

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

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

   Затем была изучена и протестирована типовая система взаимодействия. Эта система вполне подходила, но был жирный минус: она почему-то отказывалась работать на обычных формах. Так как работа шла в конфигурации УТ 10.3, то эта система также была отброшена. 

   Начался мучительный поиск внешней компоненты для передачи оповещений по UDP или TCP. Большинство найденных компонент работали только на платформе 1С win32, а у нас стояла платформа 64 бит. Подходящая компонента все же была найдена и протестирована. Но так как она не поддерживала передачу кириллицы, то также была отброшена. 

   В итоге решил написать свою компоненту, которую назвал MyLib, так как появилась идея использовать ее не только для udp или tcp оповещения, но по мере необходимости добавлять туда и другой функционал. Компонента написана при помощи Visual Studio 2013 на C++ по технологии Native. За основу был взят пример с диска ИТС, поэтому некоторые методы компоненты остались по наследству. Все свойства и методы можно писать как по русски, так и по английски.

   Свойства:

  1. PortTypeIsTCP (ПотоковыйТипПорта) - логический тип. Задает тип оповещения: по tcp или udp.
  2. LocalPort (Локальный порт) - целочисленный тип. Задает номер порта, который будет открыт для прослушивания.
  3. Status (Статус) - строковый тип. Служебное свойство, которое можно использовать для отладки.
  4. LogFile (ЛогФайл) - строковый тип. Здесь задается полный путь к текстовому файлу, в который компонента может писать логи. Это использовалось на этапе отладки, сейчас не применяется.

   Методы:

  1. ShowInStatusLine(<Текст>) (ПоказатьВСтрокеСтатуса) - этот метод достался по наследству. На 5 секунд выводит в строку статуса полученный Текст.
  2. ExternalEvent(<Источник>, <Событие>, <Данные>) (ВнешнееСобытие) - достался по наследству. Возвращает true - событие помещено в очередь, или false - очередь переполнена, обработка событий недоступна или неизвестная ошибка. Помещает событие в очередь, записывая источник события (Источник - тип Строка), наименование (Событие - тип Строка) и параметры события (Данные - тип Строка). При обработке события эти данные передаются процедуре ВнешнееСобытие(<Источник>, <Событие>, <Данные>). ExternalEvent доступен только на клиенте.
  3. LoadPicture(<ИмяФайла>) (ЗагрузитьКартинку) - достался по наследству. Загружает изображение из указанного файла и передает его в "1С:Предприятие".
  4. ShowMessageBox() (ПоказатьСообщение) - достался по наследству. Выводит сообщение о версии платформы.
  5. OpenPort() (ОткрытьПорт) - запускает прослушивание порта, который задан в свойстве LocalPort.
  6. ClosePort() (ЗакрытьПорт) - останавливает прослушивание порта LocalPort.
  7. NotifyPort(<Порт>, <Источник>, <Событие>, <Данные>) (ОповеститьПорт) - посылает оповещение клиенту, у которого открыт Порт. У клиента при этом срабатывает процедура ВнешнееСобытие(<Источник>, <Событие>, <Данные>). Источник, Событие, Данные - это параметры строкового типа, не более 1 Кб длины, т.е. максимум 1024 символа каждый. 
  8. Pause(<Миллисекунд>) (Пауза) - останавливает выполнение программы на некоторое время без нагрузки на процессор.
  9. Loopback(<ДвоичныеДанные>) (Петля) - достался по наследству. Метод принимает один аргумент типа ДвоичныеДанные и возвращает его копию.

   В моем случае пользователи 1С работают на терминальном сервере, т.е. IP всегда равен 127.0.0.1, поэтому не выводил IP как параметр в метод NotifyPort(), чтобы не усложнять.

   Работа компоненты тестировалась на платформах 1С: 8.3.12.1616 32бит, 8.3.13.1809 64бит, 8.3.15.1489 64бит. Операционные системы: Windows server 2008, Windows 8. В настоящее время проект по совместной работе пользователей в одном заказе полностью реализован и используется. 

Простой пример подключения и использования MyLib

  • Добавляем в конфигурацию общий макет:

В архив AddInNativeWin.zip включены 3 файла: AddInNativeWin32.dll, AddInNativeWin64.dll, MANIFEST.XML.

  • В модуле обычного приложения:

Объявляем глобальную переменную:

Перем MyLib Экспорт;

Находим процедуру ПриНачалеРаботыСистемы и вставляем туда код: 

	//Стартуем сервер взаимодействия
	Если ПодключитьВнешнююКомпоненту("ОбщийМакет.MyLib","MyLib",AddInType.Native) Тогда
		MyLib = Новый("AddIn.MyLib.CppNativeExtension");
		MyLib.LocalPort = МодульВзаимодействия.ПолучитьЛокальныйПорт();
		MyLib.PortTypeIsTCP = Истина;
		MyLib.OpenPort();
	Иначе
		Предупреждение("Компонента MyLib не подключена!");	
	КонецЕсли;	

В процедуре ПриЗавершенииРаботыСистемы вставляем код:

	//Останавливаем сервер взаимодействия
	Если MyLib <> Неопределено Тогда
		MyLib.ClosePort();
		MyLib = Неопределено;
	КонецЕсли;	
  • Добавляем в конфигурацию общий модуль МодульВзаимодействия (в свойствах ставим всего одну галочку "Сервер"):

//Данный алгоритм присвоения номера порта пользователю корректен только в том случае, если предположить, 
//что пользователи не будут открывать по несколько сеансов одной базы 1С:Предприятие под одним именем.
//В противном случае, придется разрабатывать более сложную систему назначения портов.
Функция ПолучитьЛокальныйПорт() Экспорт
	ЛокальныйПорт = 1024;
	ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
	Для Каждого Соединение Из ПолучитьСоединенияИнформационнойБазы() Цикл
		Если Соединение.ИмяПриложения <> "Designer" И Соединение.ИмяПриложения <> "BackgroundJob" Тогда
			Если Соединение.Пользователь.УникальныйИдентификатор = ТекущийПользовательИБ.УникальныйИдентификатор Тогда
				ЛокальныйПорт = ЛокальныйПорт + Соединение.НомерСеанса;
			КонецЕсли;	
		КонецЕсли;		
	КонецЦикла;	
	Возврат ЛокальныйПорт;
КонецФункции

Функция ПолучитьСписокОткрытыхПортов() Экспорт
	ОткрытыеПорты = Новый Массив;
	ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
	Для Каждого Соединение Из ПолучитьСоединенияИнформационнойБазы() Цикл
		Если Соединение.ИмяПриложения <> "Designer" И Соединение.ИмяПриложения <> "BackgroundJob" Тогда
			Если Соединение.Пользователь.УникальныйИдентификатор <> ТекущийПользовательИБ.УникальныйИдентификатор Тогда
				ОткрытыеПорты.Добавить(1024 + Соединение.НомерСеанса);
			КонецЕсли;	
		КонецЕсли;		
	КонецЦикла;	
	Возврат ОткрытыеПорты;
КонецФункции	

Процедура ОповеститьВсех(Событие,Данные,Источник) Экспорт
	Для Каждого Порт Из ПолучитьСписокОткрытыхПортов() Цикл
		MyLib.NotifyPort(Порт,"MyLib.Port: " + MyLib.LocalPort,Событие,Данные);
	КонецЦикла;
	Оповестить(Событие,Данные,Источник); //На случай, если требуется оповещение самому себе
КонецПроцедуры
  • В форме документа ЗаказПокупателя:

Ищем обработчик ПослеЗаписи и прописываем там код:

	МодульВзаимодействия.ОповеститьВсех("OrderRecord",Строка(Ссылка.УникальныйИдентификатор()),ЭтаФорма);

Добавляем новую процедуру:

Процедура ОбработкаОповещенияВзаимодействия(Источник, Событие, Данные)
	Если Событие = "OrderRecord" Тогда
		ЭтотОбъект.Прочитать();
		ЭтаФорма.Обновить();
		ОбновлениеОтображения();
		Предупреждение("Форма обновлена!");
	КонецЕсли;	
КонецПроцедуры	

В обработчик ВнешнееСобытие вставляем код:

	Если Лев(Источник,5) = "MyLib" Тогда
		ОбработкаОповещенияВзаимодействия(Источник, Событие, Данные);
		Возврат;
	КонецЕсли;

В обработчик ОбработкаОповещения прописываем:

	ОбработкаОповещенияВзаимодействия(Источник, ИмяСобытия, Параметр);

 

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

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

   На этом пока все.

Скачать файлы

Наименование Файл Версия Размер
Внешняя компонента MyLib

.zip 804,28Kb
05.10.19
7
.zip 804,28Kb 7 Скачать
Внешняя компонента MyLib с исходным кодом

.zip 26,15Mb
05.10.19
8
.zip 26,15Mb 8 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. acanta 06.10.19 00:26 Сейчас в теме
Правильно ли я понимаю, что пауза в вашей компоненте может быть использована как аналог модального вопроса ?
2. vdv2701 82 06.10.19 04:33 Сейчас в теме
Да, правильно. Если на клиенте включить паузу, то определенное время интерфейс пользователя будет заблокирован.
3. gorenski 353 07.10.19 05:45 Сейчас в теме
Хорошая штука, из минусов - разве что название MyLib не отражает сути ))
4. serpent 54 07.10.19 11:00 Сейчас в теме
А для работы на НЕ терминальном сервере? наверное не подойдет?
Нужен IP в метод NotifyPort() ??
5. vdv2701 82 07.10.19 17:17 Сейчас в теме
Да, если работа с базой 1С идет по локальной сети, например, а не в терминале, то метод NotifyPort() нужно доработать. Исходники есть, доработки несложные, добавить параметр IP.
6. EVKash 7 10.10.19 08:28 Сейчас в теме
(5) Из минусов видится, что если вдруг порт занят, то мы увидим просто "Компонента MyLib не подключена!".
Не очень хорошо делать жесткую привязку к сеансу.
Кстати... что вернет MyLib.OpenPort() в таком случае? Ошибку?
И открытые порты я бы куда-нибудь в РС записывал. При подключении - обновлять.
Из пожеланий - доработать под разные IP...
7. vdv2701 82 10.10.19 11:19 Сейчас в теме
Этот механизм назначения портов около 3 недель на рабочей базе, пока проблем не было, буду решать по мере поступления. Обычно служебные порты не превышают 1024, поэтому вероятность пересечения с каким-то служебным портом очень мала. Остальные ограничения этого механизма описаны в статье.
Да, если порт занят, то MyLib.OpenPort() в свойстве компоненты Status вернет номер ошибки, но в статье этот случай не рассматривается.
8. Cyberhawk 118 30.10.19 13:06 Сейчас в теме
(7)
вероятность пересечения с каким-то служебным портом очень мала
Учитывая, что:
- номер сеанса в большинстве типовых инфобаз через доволно короткое время начинает измеряться сотнями, тысячами и десятками тысяч
- кластер в типовом исполнении занимает порты 1540-1591
- количество портов ограничено 2^16 (максимальный номер, таким образом, равен 65535)
, то конфликты и сюрпризы неизбежны.
Каждый порт-кандидат рекомендуется запрашивать у самой ОС, тогда она гарантированно выдаст валидный и незанятый.
9. vdv2701 82 30.10.19 14:35 Сейчас в теме
Пока не сталкивался с такими сюрпризами. Этот механизм нормально работает уже более месяца. Возможно, если будут еще внедрения, и какие-то конфликты появятся, то буду что-то придумывать.
10. bavkyz 3 25.11.19 18:51 Сейчас в теме
Хорошая статья про Native внешняя компонента, я добавил параметр ip-адрес, как и писал автор - это не сложно, но мне потребовалось около 8 часов, т.к. я не знаю c++.
11. dablack 09.02.20 12:43 Сейчас в теме
(10) может поделитесь с сообществом чтобы не тратить 8 часов ?
12. bavkyz 3 17.02.20 09:36 Сейчас в теме
(11) Извиняюсь за долгий ответ. Если АВТОР не будет против могу дать ссылку на гит.
14. Yulka_Pentagramma 26.02.20 23:28 Сейчас в теме
(12) и мне, пожалуйста, ссылку на гит. Никак не могу настроить оповещение пользователю при создании новой заявки. Сервер взаимодействия мне не по карману... да и 1 стартани нет... пробовала купить подписку, почему то в 40 тысяч выходит 😢

Готова выучить си, чтобы настроить эту систему оповещений
26. arti4k 13.05.20 17:16 Сейчас в теме
(10) а где посмотреть куда ip - адрес добавили?
13. vdv2701 82 17.02.20 13:19 Сейчас в теме
Автор не против
dablack; BigB; +2 Ответить
15. bavkyz 3 27.02.20 06:28 Сейчас в теме
16. bavkyz 3 27.02.20 06:35 Сейчас в теме
Гит ссылку проверяют модераторы, там же есть скомпилированные dll, маленький код - IP как параметр:
	ЛокальныйIP = дюк_Network.ПолучитьЛокальныйIP();
		Если ЛокальныйIP = ВыборкаДетальныеЗаписи.ip Тогда
			LocalIP = "127.0.0.1";
		Иначе	
			LocalIP = ВыборкаДетальныеЗаписи.ip;
		Конецесли;	
		дюк_NativeApi.ОповеститьПользователя("Входящий вызов",НомерАбонента,LocalIP,ВыборкаДетальныеЗаписи.Порт);
Yulka_Pentagramma; +1 Ответить
17. bavkyz 3 28.02.20 18:43 Сейчас в теме
Кто воспользовался гитом, все получилось?
Yulka_Pentagramma; +1 Ответить
18. Yulka_Pentagramma 01.03.20 11:55 Сейчас в теме
(17) Спасибо Огромнейшее!!!, получилось)

Осталось разобраться как это работает)))
19. Yulka_Pentagramma 01.03.20 14:13 Сейчас в теме
Подскажите пожалуйста... скачала Вашу компоненту, пытаюсь настроить. Плохо получается... Платформа 6.3.16.1063.

Находим процедуру ПриНачалеРаботыСистемы и вставляем туда код...

Вставила.


Добавляем в конфигурацию общий модуль МодульВзаимодействия (в свойствах ставим всего одну галочку "Сервер"):

Добавила.

но, ПриНачалеРаботыСистемы - это на клиенте, а МодульВзаимодействия - на сервере. из ПриНачалеРаботыСистемы - не могу обратиться к МодульВзаимодействия. А если доставить галку "Клиент", Тогда пользователей базы не вижу... вынести их в отдельную функцию?
20. Yulka_Pentagramma 01.03.20 14:26 Сейчас в теме
перенесла в процедуру ПередНачаломРаботыСистемы - всё работает. Только из общего модуля МодульВзаимодействия не видно переменной MyLib...
21. vdv2701 82 01.03.20 17:40 Сейчас в теме
Постараюсь подготовить в ближайшее время реализацию примера из публикации, чтобы небыло недопониманий.
22. vdv2701 82 01.03.20 18:25 Сейчас в теме
(20) Простенький пример из публикации реализовал, базу прикрепляю. Еще раз все проверил, работает. Нашел 2 небольших ошибки в примере, поэтому подкорректировал публикацию.

Было:
Если Соединение.ИмяПриложения <> "Designer" Тогда


Стало:
Если Соединение.ИмяПриложения <> "Designer" И Соединение.ИмяПриложения <> "BackgroundJob" Тогда


BackgroundJob - это фоновый сеанс, который автоматически стартует на новых версиях платформы.

Если будут вопросы, пишите.
Прикрепленные файлы:
ПодсистемаВзаимодействия.dt
Yulka_Pentagramma; +1 Ответить
23. Yulka_Pentagramma 01.03.20 20:43 Сейчас в теме
Спасибо большое!

Только я тут поняла, что у меня УФ, поэтому я не могу добраться до переменной MyLib... вроде переделок под УФ не много, попробую, чем черт не шутит, может получится)))
24. vdv2701 82 02.03.20 07:30 Сейчас в теме
(23) Для управляемых форм есть типовая "СистемаВзаимодействия".
Вы наверное невнимательно читали публикацию, писал уже про нее. На инфостарте можете найти дополнительную информацию по применению этой системы, зачем изобретать велосипед.
25. Yulka_Pentagramma 02.03.20 12:35 Сейчас в теме
(24) я внимательно читала, просто СистемаВзаимодействия мне не по карману. Вот и выкручиваюсь...
Оставьте свое сообщение

См. также

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    22841    32    Ditron    68    

Нано HTTP сервер - внешняя компонента для мобильного приложения 1C, на Android

Разработка внешних компонент Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Нано HTTP сервер на терминале сбора данных "ATOL Smart.Lite android 7.0". Работает только с GET и POST запросами. Аутентификация BASE64. Не поддерживает HTTPS и не передает файлы. В прикрепленном архиве исходники на компоненту (С++ и java для Android Studio 3.6.2), ЦФ - мобильного приложения и тестовая обработка.

1 стартмани

22.06.2020    720    3    SanyMaga    0    

Получение фото с веб-камеры

Разработка внешних компонент v8 Абонемент ($m)

Получение фото с веб-камеры без ActiveX. Внешняя компонента по технологии Native API.

1 стартмани

25.03.2020    2697    21    berezdetsky    15    

Пауза без загрузки процессора. Внешняя компонента Native API на C++

Разработка внешних компонент v8 Абонемент ($m)

Внешняя компонента Native API на C++ для Win32 и Win64 позволяет установить паузу на заданное количество секунд без загрузки процессора.

2 стартмани

21.03.2020    1252    3    DNN13    25    

TextRadar - нечеткий поиск в тексте Промо

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    15060    17    TSSV    14    

Быстрая печать этикеток (ZPL, EPL, TSPL, EZPL, GEPL, TSPL-EZ)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Качественная и быстрая печать на внутреннем языке принтеров этикеток.

4 стартмани

02.02.2020    4271    21    Johny_v    5    

Сканирование по TWAIN в 1С (обычные и управляемые формы)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка показывает пример, как можно в 1С проводить сканирование с помощью компоненты TWAIN.

3 стартмани

03.01.2020    3582    17    Denr83    0    

Клиент событий в «бесконечном» HTTP-соединении для 1С: Предприятие 8

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Native Компонента в отдельном потоке обрабатывает пакеты событий, в "бесконечном" http соединении и передаёт данные в очередь внешних событий.

10 стартмани

02.12.2019    2800    1    starovton    5    

Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. Промо

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    79004    231    Serginio    71    

Управление окнами и мониторами в 1С

Сервисные утилиты Разработка внешних компонент v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Абонемент ($m)

Управление размерами, активностью и положением окон из 1С с возможностью вывода окон на второй монитор и запретом изменения окна.

1 стартмани

28.10.2019    7209    6    Grigoriy251    5    

Маленькая и скромная мобильная внешняя компонента

Разработка внешних компонент v8 Абонемент ($m)

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

1 стартмани

21.10.2019    7876    4    ripreal1    25    

Внешняя компонента Sundries: несколько полезных системных функций

Разработка внешних компонент v8 Абонемент ($m)

Звук, пауза, буфер обмена, раскладки клавиатуры и т.д.

3 стартмани

30.08.2019    4317    4    sivin-alexey    10    

Tool1CD Beta в деле Промо

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    23349    28    baton_pk    26    

Native внешняя компонента для передачи по UDP

Разработка внешних компонент v8 УТ10 Россия Абонемент ($m)

Внешняя компонента Native-API для организации передачи с использованием UDP.

1 стартмани

29.07.2019    3231    4    axae    0    

Менеджер буфера обмена. Нативная внешняя компонента win 32/64

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Добавляет возможности получения информации из почтовых вложений или файлов с других рабочих столов (RDP) с помощью операций копирования/вставки. Может «прослушивать»: любые изменения буфера обмена; нажатие клавиш соответствующих вставке (paste); нажатие клавиш копирования (copy); drop операции. Это новая реализация аналогичной компоненты https://infostart.ru/public/379695/, но теперь не C#, а С++ нативно для x32 / x64. (см. http://youtu.be/-PaWWFfbYo4)

1 стартмани

26.06.2019    5108    16    Bww    21    

Обработка вывода на печать QR-кода и штрихкодов в различных форматах (одномерные и двумерные)

Разработка внешних компонент Ценники v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для вывода на печать QR-кода и штрихкодов в различных форматах без установки дополнительных ActiveX компонент. Тестировалась на чистой базе платформы 1С:Предприятие 8.3 (8.3.14.1630), а так же в конфигурациях Бухгалтерия предприятия КОРП, редакция (3.0.69.35) и на Бухгалтерия предприятия (3.0.70.30)

2 стартмани

22.05.2019    7916    31    MGemini    2    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    44289    419    ПерваяСистема    147    

DLL для подключения к Asterisk (32/64 клиенты)

Разработка внешних компонент Телефония, SIP v8 1cv8.cf Абонемент ($m)

Подключение к Астериску и получение событий "Newchannel","BridgeEnter","Hangup" через ОбработкаВнешнегоСобытия.

1 стартмани

19.03.2019    6349    11    xxxAndricxxx    14    

DLL для обмена между 1С (и не только) через UDP порты (32/64 клиенты)

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Библиотеки для создания функционала для прослушивания портов из 1С и отправки сообщений на удаленный udp порт.

1 стартмани

28.02.2019    5535    8    xxxAndricxxx    2    

Эмулятор ККМ по стандарту ФФД 1.1

Разработка внешних компонент Кассовые операции ККМ Кассовые операции v8 Розница УТ11 Россия Абонемент ($m)

Эмулятор драйвера ККМ по стандарту ФФД 1.1 предназначен для использования всех возможностей программы, при отсутствии физической кассы. Подойдет как программистам при разработке интерфейса РМК, например, так и пользователям для тестирования возможностей программы.

1 стартмани

30.12.2018    17670    121    Matveymc    21    

Компоненты распознавания и печати штрих-кодов Промо

Разработка внешних компонент Сканер штрих-кода v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Комплект программного обеспечения для реализации функций оптического распознавания штрих-кодов различных систем при помощи обычной web-камеры, а также их отображения в печатных формах. Программы могут работать в составе конфигураций, созданных на базе платформ «1С-Предприятие» версий 7.7, 8.2, 8.3. Компонент чтения кодов реализован в виде внешней компоненты 1С с COM-интерфейсом. Компонент отображения создан по стандартной технологии ActiveX для Windows, и может быть встроен в любое приложение, поддерживающее встраивание ActiveX элементов управления, например в документ Word или Excel, или форму VBA. P.S. Добавлена новая версия программы распознавания. Новые функции: обработка видео в реальном режиме (а не по таймеру, как раньше), добавлена возможность распознавания штрих-кодов из графических файлов JPEG, PNG, GIF, BMP, а также передавать для распознавания картинки из 1С, теперь можно получить в 1С захваченное с камеры или файла изображение, как с выделением мест, содержащих коды, так и без, а также отдельные фрагменты изображений, содержащие код. Добавлены новые свойства и методы для программирования. Обновлена документация.

10 стартмани

10.07.2015    66027    83    igorberezhnov    95    

WebSocket Клиент / Сервер. Внешний компонент

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Реализация протокола WebSocket. Клиентская часть для взаимодействия с внешними сервисами. Серверная часть для организации собственного сервера, принимающего клиентские соединения в многопоточном режиме. Возможно взаимодействие RabbitMQ Slack Asterisk и другие

1 стартмани

16.11.2018    12411    64    nomadon    51    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    10584    27    KAV2    62    

Native компонента для 8.3, реализующая метод sleep()

Разработка внешних компонент v8 Россия Абонемент ($m)

Внешняя Native 64-битная компонента для 1C 8.3, которая реализует метод sleep() - паузу выполнения кода. Пауза для большой устойчивости сделана платформозависимой и требует WinAPI. Ид компоненты - AddIn.AddInNativeSleep.NativeSleep.

1 стартмани

16.10.2018    6380    3    ripreal1    9    

Полезные приемы при работе с Excel из 1С (Версия 3.1) Промо

Практика программирования Разработка внешних компонент Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.

1 стартмани

22.09.2015    178630    429    Zerocl    65    

001. Криптография и цифровая подпись RSA-sha256 на платформе 1С

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента, исходники, обработка для 1С.

5 стартмани

04.09.2018    11770    24    Nikola23    60    

Программный вызов сенсорной клавиатуры

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Программный вызов сенсорной клавиатуры в ОС Windows, для сенсорных мониторов, которые не определяются системой как hid-совместимый сенсорный экран. Тестировалось на платформе 8.3.9.2033, конфигурация Розница 1.0.16.8.

1 стартмани

04.08.2018    7335    11    dewersia    3    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    21245    182    RSConsulting    15    

Шаблон внешней компоненты на C# Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Шаблон внешней компоненты для 1С:Предприятие на C#.

5 стартмани

20.06.2012    151307    238    Kuzja_R    99    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

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

1 стартмани

17.07.2018    14607    71    nomadon    45    

QR-code полная версия (без шрифта и внешней компоненты для 8.2, 8.3 и любого типа клиента)

Разработка внешних компонент Сканер штрих-кода v8 1cv8.cf Абонемент ($m)

Предназначена для создания QR-code с указанием процента восстановления потерянных данных. Строка кодирования может содержать все печатаемые символы, в том числе и кириллические. Для работы не требуется внешняя компонента или шрифт.

2 стартмани

10.07.2018    10174    15    bobank    6    

Внешняя компонента для ping'а

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента для выполнения ping'а из 1С:Предприятия 8.

1 стартмани

04.07.2018    9543    5    frkbvfnjh    24    

Снимок экрана для 1С Промо

Универсальные обработки Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

08.02.2016    26220    32    linkforget    11    

JVM Native API плагин - для запуска в 1С плагинов написанных на Java

Разработка внешних компонент v8 Абонемент ($m)

Запускаем виртуальную машину Java в 1С. Собрана внешняя компонента которая позволяет запускать виртуальную машину java в среде 1С. Позволяет как передавать параметры в java - так и получать уведомление через externalevent. Предпосылкой создания являлся тот факт, что есть много готового функционала которого не хватает в 1С. Язык сpp - довольно сложен для быстрой разработки, и теперь возможно использовать готовые сборки java классов (так называемые jar-файлы) для использования в 1С.

1 стартмани

20.06.2018    10124    26    minimajack    67    

Вызов методов 1С из внешней компоненты, выполненной по технологии COM на C++

Разработка внешних компонент v8 Абонемент ($m)

Пример работы с объектами и методами 1С из внешней компоненты, разработанной по технологии COM на С++.

1 стартмани

04.06.2018    7577    4    le_    0    

Tool1CD: отрежем донорскую почку

Сервисные утилиты Разработка внешних компонент v8 Розница Абонемент ($m)

Ваша база мертва? Что ж, кое-что в ней ещё теплится.

1 стартмани

15.05.2018    17717    23    baton_pk    13    

Native API компонента для использования установленного в системе интерпретатора Python Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Компонента позволяет подключать к платформе 1С python-модули, оформленные в стиле внешней компоненты. Кроме этого, она позволяет запускать небольшие фрагменты python-кода прямо из модулей 1С. На данный момент поддерживаются платформы 8.2 — 8.3 x86 Windows.

1 стартмани

14.05.2013    36809    69    Принт    31    

Внешняя компонента Native для создания штрих кода (GS1 DataBar Expanded, GS1 DataBar Expanded Stacked и другие)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

В связи с внедрением ГИС Меркурий потребовалось внешняя компонента, которая создает штрихкод и отдает 1С. ВК создана на основе библиотеки zint www.sourceforge.net/projects/zint.

1 стартмани

27.04.2018    15997    197    artmaks1988    87    

Работа с любыми сканерами документов в 1С c помощью внешней компоненты от vintasoft.com

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Универсальная обработка для сканирования изображений на любых сканерах (поточных, планшетных) средствами ActiveX от компании Vintasoft.

1 стартмани

29.03.2018    7627    3    Dach    0    

Печать на сервере 1с. DLL для 1С, способная печатать картинки и pdf файлы в серверном контексте (например, при работе веб-сервиса)

Разработка внешних компонент v8 Россия Абонемент ($m)

Не знаю, пригодится кому или нет, писалось для себя, т.к  возникла необходимость печатать на принтере этикеток sscc напрямую с ТСД  через web - сервис. Как известно, веб сервис в 1С работает только в серверном контексте и, к сожалению, разработчики платформы пока не позаботились о возможности вызывать метод  при таких условиях. 

1 стартмани

13.03.2018    8627    23    evgeny43    8    

Распознаем штрих-коды QR, EAN-13, Code 128 с помошью 1С и веб камеры Промо

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Внешняя компонента, поможет распознать штрих-код, используя обычную веб камеру. Умеет работать с UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 128, QR Code, Interleaved 2 of 5, Codabar, RSS-14, Data Matrix, PDF 417, Aztec, MaxiCode.

1 стартмани

31.10.2012    74919    183    shakmaev    84    

Разработка игр на языке 1С с использованием Active-X компоненты (собственная разработка)

Разработка внешних компонент v7.7 v8 Россия Абонемент ($m)

Написанная Active-X компонента встраивается на форму обработки 1С (тестировалось на 1С 8.0, 8.1, 8.2, 8.3 не управляемые формы, 1С 7.7.). Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов - фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра "Бита".

5 стартмани

04.01.2018    13319    2    protexprotex    34    

Active-X компонента для получения видео-данных с Web-камеры, IP-камеры для 1С 8.3, 1С 8.2, 1С 8.1, для рисования на форме

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Active-X компонента встраивается непосредственно на форму 1С (тестировалось на 1С 8.3, 1С 8.2, 1С 8.1 - неуправляемые формы), реализованы методы подключения к Web-камеры (интерфейс VFW), к IP-камере по http-запросам, отображение на форме 1С потокового видео, снятие скрина и сохранение в файл на диск. Приложена обработка реализующая подключение и работы с ocx - компонентой. Тестировалось на win 7

4 стартмани

13.12.2017    12326    24    protexprotex    48    

ЭЦП по гостам Украины в 1С - Внешняя компонента BilboSign.dll

Разработка внешних компонент Защита и шифрование v8 1cv8.cf Украина Абонемент ($m)

Причиной данной разработки послужило отсутствие на данный момент криптопровайдера ЭЦП, который может работать по гостам Украины и использоваться в 1С. Для этого разработана внешняя компонента по технологии NativeAPI.

1 стартмани

11.12.2017    10780    15    Zahary    5    

Удаленное управление через Skype Промо

Разработка внешних компонент Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

Удаленное управление 1С через Skype. Со стороны клиента для работы нужен только Skype. Со стороны сервера любой компьютер с 1С.

1 стартмани

09.02.2014    41580    13    moolex    29    

Внешняя компонента симуляции нажатий клавиатуры и мыши (в т.ч. сворачивание/разворачивание динамических списков)

Разработка внешних компонент v8 Абонемент ($m)

Данная ВК позволяет использовать в ОС Windows начиная с 2000 функцию WinApi - SendInput(). А прилагающаяся обертка на 1С под нее позволяет делать это комфортно и просто. Внешняя компонента была написана, прежде всего, для сворачивания/разворачивания группировок в динамических списках.

1 стартмани

18.10.2017    12230    10    🅵🅾️🆇    26    

Отправка сообщений

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента и сервер отправки сообщений клиентам с сервера / от других клиентов.

1 стартмани

16.10.2017    10151    9    eugenevk    5    

Обработка изображений

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Компонента обработки изображений.

1 стартмани

04.10.2017    10154    22    eugenevk    17    

Внешняя компонента - Запись и воспроизведение .wav файлов. Обработка-иллюстратор. Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Обработка иллюстрирует использование внешней компоненты MMLibrary для записи и воспроизведения звуковых wav файлов. Компонента разработана по технологии Native.

1 стартмани

01.03.2014    17333    20    vozhd    7    

Компонента формирования штрихкода

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Компонента формирования штрихкодов по технологии NativeAPI. Разработана как альтернатива стандартной компоненте 1С.

1 стартмани

04.10.2017    9606    27    eugenevk    19