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

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

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

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
23
.zip 804,28Kb 23 Скачать
Внешняя компонента MyLib с исходным кодом

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. acanta 06.10.19 00:26 Сейчас в теме
Правильно ли я понимаю, что пауза в вашей компоненте может быть использована как аналог модального вопроса ?
2. vdv2701 91 06.10.19 04:33 Сейчас в теме
Да, правильно. Если на клиенте включить паузу, то определенное время интерфейс пользователя будет заблокирован.
3. gorenski 362 07.10.19 05:45 Сейчас в теме
Хорошая штука, из минусов - разве что название MyLib не отражает сути ))
4. serpent 66 07.10.19 11:00 Сейчас в теме
А для работы на НЕ терминальном сервере? наверное не подойдет?
Нужен IP в метод NotifyPort() ??
5. vdv2701 91 07.10.19 17:17 Сейчас в теме
Да, если работа с базой 1С идет по локальной сети, например, а не в терминале, то метод NotifyPort() нужно доработать. Исходники есть, доработки несложные, добавить параметр IP.
6. EVKash 14 10.10.19 08:28 Сейчас в теме
(5) Из минусов видится, что если вдруг порт занят, то мы увидим просто "Компонента MyLib не подключена!".
Не очень хорошо делать жесткую привязку к сеансу.
Кстати... что вернет MyLib.OpenPort() в таком случае? Ошибку?
И открытые порты я бы куда-нибудь в РС записывал. При подключении - обновлять.
Из пожеланий - доработать под разные IP...
7. vdv2701 91 10.10.19 11:19 Сейчас в теме
Этот механизм назначения портов около 3 недель на рабочей базе, пока проблем не было, буду решать по мере поступления. Обычно служебные порты не превышают 1024, поэтому вероятность пересечения с каким-то служебным портом очень мала. Остальные ограничения этого механизма описаны в статье.
Да, если порт занят, то MyLib.OpenPort() в свойстве компоненты Status вернет номер ошибки, но в статье этот случай не рассматривается.
8. Cyberhawk 131 30.10.19 13:06 Сейчас в теме
(7)
вероятность пересечения с каким-то служебным портом очень мала
Учитывая, что:
- номер сеанса в большинстве типовых инфобаз через доволно короткое время начинает измеряться сотнями, тысячами и десятками тысяч
- кластер в типовом исполнении занимает порты 1540-1591
- количество портов ограничено 2^16 (максимальный номер, таким образом, равен 65535)
, то конфликты и сюрпризы неизбежны.
Каждый порт-кандидат рекомендуется запрашивать у самой ОС, тогда она гарантированно выдаст валидный и незанятый.
9. vdv2701 91 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 91 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,ВыборкаДетальныеЗаписи.Порт);
akR00b; Yulka_Pentagramma; +2 Ответить
17. bavkyz 3 28.02.20 18:43 Сейчас в теме
Кто воспользовался гитом, все получилось?
Yulka_Pentagramma; +1 Ответить
18. Yulka_Pentagramma 01.03.20 11:55 Сейчас в теме
(17) Спасибо Огромнейшее!!!, получилось)

Осталось разобраться как это работает)))
31. jdan 8 05.11.20 08:39 Сейчас в теме
(17Добрый день!
Не могли бы уточнить как использовать параметр IP , где его нужно добавить на примере:

MyLib.NotifyPort(Порт,"MyLib.Port: " + MyLib.LocalPort,Событие,Данные);
Спасибо!
19. Yulka_Pentagramma 01.03.20 14:13 Сейчас в теме
Подскажите пожалуйста... скачала Вашу компоненту, пытаюсь настроить. Плохо получается... Платформа 6.3.16.1063.

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

Вставила.


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

Добавила.

но, ПриНачалеРаботыСистемы - это на клиенте, а МодульВзаимодействия - на сервере. из ПриНачалеРаботыСистемы - не могу обратиться к МодульВзаимодействия. А если доставить галку "Клиент", Тогда пользователей базы не вижу... вынести их в отдельную функцию?
20. Yulka_Pentagramma 01.03.20 14:26 Сейчас в теме
перенесла в процедуру ПередНачаломРаботыСистемы - всё работает. Только из общего модуля МодульВзаимодействия не видно переменной MyLib...
21. vdv2701 91 01.03.20 17:40 Сейчас в теме
Постараюсь подготовить в ближайшее время реализацию примера из публикации, чтобы небыло недопониманий.
22. vdv2701 91 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 91 02.03.20 07:30 Сейчас в теме
(23) Для управляемых форм есть типовая "СистемаВзаимодействия".
Вы наверное невнимательно читали публикацию, писал уже про нее. На инфостарте можете найти дополнительную информацию по применению этой системы, зачем изобретать велосипед.
25. Yulka_Pentagramma 02.03.20 12:35 Сейчас в теме
(24) я внимательно читала, просто СистемаВзаимодействия мне не по карману. Вот и выкручиваюсь...
29. jdan 8 05.11.20 07:02 Сейчас в теме
(25)Извините пож. у Вас получилось реализовать на УФ ?
30. Yulka_Pentagramma 05.11.20 08:27 Сейчас в теме
(29) здравствуйте. Система взаимодействия оказалась бесплатной. С её помощью я оповещаю клиента о событиях сервера. И даже чат работает)
rolin555; +1 Ответить
34. MikhailDr 02.06.21 08:06 Сейчас в теме
(30) Она бесплатна? Где вы ее взяли? Или у вас КОРП?
27. QuirkyKot 10 03.08.20 09:45 Сейчас в теме
Добрый день,
Данная компонента подойдет для мобильной платформы?
28. vdv2701 91 04.08.20 08:57 Сейчас в теме
(27) На мобильной платформе не тестировалась компонента. Если есть желание, то в комментариях выложили уже ссылку на Гит, можете потестировать бесплатно. Отпишитесь потом пожалуйста, как все прошло.
32. MikhailDr 01.06.21 16:21 Сейчас в теме
Подскажите пожалуйста. У меня стоит задача:

С сайта приходит сообщение с идентификатором документа, именем пользователя который отправил сообщение и именем компьютера на котором он это сделал. Мне необходимо после прихода сообщения открыть форму документа на том компьютере и у того пользователя, который отправил сообщение с сервера.

Я могу решить эту задачу с помощью вашей компоненты?
33. vdv2701 91 01.06.21 23:08 Сейчас в теме
35. MikhailDr 02.06.21 08:11 Сейчас в теме
(33) Я не сразу заметил, компонента под обычные формы. У меня УФ. Подскажите под УФ надо саму компоненту менять? Я в c++ не разбираюсь, доработать саму компоненту не смогу.
36. vdv2701 91 03.06.21 00:10 Сейчас в теме
Методика написания внешних компонент не зависит от того, в каких формах эта компонента будет использоваться: в управляемых или обычных. Поэтому переписывать код компоненты под управляемые формы нет смысла. У вас изменится только методика подключения компоненты в управляемых формах.
37. MikhailDr 03.06.21 11:39 Сейчас в теме
38. 4361fmv 58 30.10.21 10:51 Сейчас в теме
Добрый день.
Поддержу вопрос. Где указывается IP адрес. В примере по ссылке не нашел!

Спасибо
39. 4361fmv 58 30.10.21 10:52 Сейчас в теме
40. vdv2701 91 23.11.21 10:11 Сейчас в теме
Это вопрос к автору ссылки GIT, т.е. к bavkyz.
Оставьте свое сообщение

См. также

Разработка внешней компоненты по технологии Native API. Мониторинг файловой системы в 1С

Разработка внешних компонент Платформа 1С v8.3 Россия Абонемент ($m)

Пример разработки внешней компоненты по технологии Native API для мониторинга выбранной папки файловой системы (изменение, переименование, удаление) файлов.

1 стартмани

12.03.2023    3112    2    binx    3    

41

Конвертор из PDF

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Native компонента для рендеринга PDF в картинки, и (или) извлечения текста из PDF файлов.

2 стартмани

25.01.2023    1804    13    bmk74    8    

21

Внешняя компонента JSON-валидатор

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Внешняя компонента под ОС семейства windows, реализующая функционал по проверке соответствия json-пакета заданной схеме ("Валидация").

1 стартмани

09.01.2023    1700    2    Prometeus2011    2    

16

Внешняя компонента для подключения 1С к однофазным электросчетчикам Меркурий

Разработка внешних компонент Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя компонента выполнена по технологии Native API для 1С 8.3, и предназначена для сбора и документирования данных от однофазных счетчиков Меркурий 200, 201, 203 (кроме Меркурий 203.2TD), 206 Посредством интерфейсов RS-485, CAN.

1 стартмани

11.08.2022    2486    5    user1779098    4    

11

Пишем внешнюю компоненту для 1С, NativeAPI на С++, для ОС Linux, с использованием Qt Creator

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

В статье рассмотрен процесс создания внешней компоненты для 1С в среде Qt Creator для операционной системы Linux (ubuntu, debian, mint и им подобных). На примере компоненты для сбора данных от внешней аппаратуры и сохранение их в базе, посредством 1С. В качестве внешней аппаратуры в данном примере будем использовать Arduino UNO.

1 стартмани

13.05.2022    7375    4    user1779098    34    

61

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Делаем табло в обозревателе из 1Ски с нуля за полчаса. Без бутстрапов, реактов и ангуляров. Жизнетрюки от kuzkov.info

Разработка внешних компонент WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

02.05.2022    8018    124    Steelvan    0    

66

Внешняя компонента для работы с Modbus TCP/IP

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя компонента для работы с Modbus устройствами по протоколу TCP/IP.

1 стартмани

08.04.2022    3777    32    tav_74    9    

6

Внешняя Native API компонента совместно с функционалом фреймворка Qt

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

В данном примере реализована интеграция внешней компоненты, написанной с использованием технологии Native API и фреймворка Qt.

1 стартмани

20.02.2022    5393    8    tav_74    2    

17

Внешняя компонента для работы с роутерами Микротик (RouterOS API)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка для УФ и тестовая конфигшурация, с включенной в нее ВК Native для работы с RouterOS (Микротик).

5 стартмани

24.12.2021    4381    4    ACCuCTEHT    11    

5

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

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Перехват нажатия клавиш в 1С реализован с привязкой к фокусу формы. Если форма (или главное окно процесса 1С) теряет фокус, то перехват перестает работать. Чтобы решить эту проблему, была разработана соответствующая внешняя компонента.

1 стартмани

29.11.2021    7603    19    Prometeus2011    14    

36

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Внешняя компонента Image Magick для базовых операций над картинками

Разработка внешних компонент Работа с интерфейсом Платформа 1С v8.3 Россия Абонемент ($m)

Внешняя компонента Image Magick для базовых операций над картинками. Реализованы функции: Rotate, Flip, Flop, Enhance, Sharpen, Oil, AutoOrient

1 стартмани

29.08.2021    5462    18    ldmonster    8    

5

Шифрование по алгоритму RSA. Внешняя библиотека (*.dll)

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Абонемент ($m)

Внешняя библиотека для шифрования данных в 1С по алгоритму RSA открытым ключом. Открытый ключ задаем сами, и передаем в качестве параметра.

10 стартмани

07.07.2021    8153    17    itserve    20    

5

Разъяснение внешних компонент

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Более пятилетки назад, еще в 2015 году я написал свою внешнюю компоненту на Visual Basic 6. По сути, это была простая обертка для доступа к функция DLL. Потом написал еще одну обертку уже для другой DLL, от другого оборудования. На этом моё писательство внешних компонент и ограничилось. И вот в 2020 году существенно изменилось SDK оборудования, для которого было написано SDK. А Visual Basic прекратил свое существование. На нем еще можно писать внешние компоненты, но уже только под 32 разряда. Пришлось искать новые средства для разработки, поддерживающие 64-разрядные платформы. И на этом пути пришлось потратить более 6 часов для выбора инструмента и его настройки.

1 стартмани

17.06.2021    8829    5    fixin    6    

11

Внешняя компонента для работы с postgresql

Разработка внешних компонент Платформа 1С v8.3 Россия Абонемент ($m)

Внешняя компонента для работы с сервером postgresql. Использует библиотеки libpqxx и libpq. Была написана для построения отчета по телефонии, так как стандартное подключение внешних источников данных по ODBC работало очень медленно.

1 стартмани

22.04.2021    5164    2    Ma_X_X    5    

5

Внешняя компонента для работы с SQL запросами

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Уважаемые коллеги, отдаю Вам "на растерзание" (для тестирования) внешнюю компоненту для общения 1C с SQL посредством запросов (драйвер ODBC 3.x).

1 стартмани

03.04.2021    6287    0    ivan1703    9    

5

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт

Эквайринг Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт, приведены методы и функции по работе с данной компонентой.

1 стартмани

09.03.2021    9362    38    artemua    8    

7

Внешняя компонента: Android tools

Мобильная разработка Разработка внешних компонент Платформа 1С v8.3 Мобильная платформа Абонемент ($m)

Несколько дополнительных функций для мобильного приложения\клиента под Android. Размер архива внешних компонент под архитектуры ARM и x86 - 390KB.

1 стартмани

12.01.2021    12939    36    KAV2    46    

15

Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)

Разработка внешних компонент Мобильная разработка Платформа 1С v8.3 Абонемент ($m)

Используя данный драйвер, можно без единой строки кода, просто установив на ТСД мобильный клиент 1С, сразу начать подбирать товары в документах вашей учётной системы. А, адаптировав нужные формы под небольшой размер экрана ТСД, можно просто создать полноценное рабочее место для выполнения операций с помощью ТСД, не прибегая к стороннему софту. Если же на складе плохая связь (или её нет вовсе), то можно использовать возможности мобильного клиента в автономном режиме (потребуется доработка вашей конфигурации). Драйвер также можно использовать и для Android приложения на мобильной платформе. В результате чего можно обойтись без ненужных полей ввода и клавиатуры «на пол-экрана».

3 стартмани

09.10.2020    48629    356    ltfriend    210    

103

Внешняя компонента на C# для парсинга страниц через Phantom JS на сервере 1С х32,х64

Инструментарий разработчика Разработка внешних компонент WEB-интеграция Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PhantomJS - это браузер без окна, используемый для автоматизации взаимодействия с веб-страницами. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, снимки страницы, эмуляции поведение пользователя, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в автономной системе, такой как среда непрерывной интеграции . PhantomJS основан на WebKit, что делает его похожей на Safari и Google Chrome средой просмотра. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD.

1 стартмани

06.08.2020    11048    8    DrZombi    7    

22

Отрубаем зависшие на сервере процессы

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вы любите COM объекты? Я их просто обожаю! Практически все, чего не может 1С, можно доделать ими. Но есть у них небольшой косячок: иногда они зависают и висят, пока не отрубишь их через диспетчер задач или до перезагрузки, жрут память и в конце концов перестают запускаться. Что делать? Рубить!

1 стартмани

28.07.2020    8780    3    zarankony    3    

7

Готовые переносы данных из различных конфигураций 1C Промо

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

Универсальная обертка для использования NATIVE компонент на платформе 1С 7.7, 8.0 и 8.1

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Используете 1С 7.7, 8.0 или 8.1 и вас раздражает, что под вашу 1С уже не выпускаются современные компоненты. А хотелось бы?

1 стартмани

07.07.2020    12003    10    karpik666    5    

15

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

Разработка внешних компонент Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

22.06.2020    12025    18    SanyMaga    23    

18

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

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

25.03.2020    19828    172    berezdetsky    51    

27

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

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

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

2 стартмани

21.03.2020    9144    14    Dmitrij-2    28    

6

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

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

4 стартмани

02.02.2020    21610    76    Johny_v    19    

33

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

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

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

3 стартмани

03.01.2020    14707    48    Denr83    0    

20

Вставка картинки из буфера обмена (на выбор: JavaScript / внешняя компонента / штатно)

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

Вставка картинки из буфера обмена с помощью JavaScript в поле HTML в web-клиенте, с помощью внешней компоненты в тонком/толстом клиенте и путем преобразования данных картинки формата Base64 из поля HTML в любом клиенте, начиная с платформы 8.3.16. Механизм протестирован на платформах 8.2 и 8.3 Для запуска опубликованной конфигурации требуется платформа релиза не ниже 8.3.14.

1 стартмани

05.12.2019    13779    13    Andreyyy    10    

6

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

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

02.12.2019    12663    5    starovton    13    

11

Внешняя компонента 1С Native x32/x64: отправка UDP сообщения

Разработка внешних компонент Платформа 1С v8.3 Россия Абонемент ($m)

Компонента предназначена только для отправки текстовых UDP сообщений. Работает как на клиенте, так и в серверных вызовах в любой разрядности Windows платформы.

1 стартмани

05.11.2019    9318    24    von_de    6    

5

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

Разработка внешних компонент Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

21.10.2019    20619    17    ripreal1    34    

66

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Внешняя компонента для работы с драйвером "Атол v.10". 1С:8.3

Разработка внешних компонент Кассовые операции Платформа 1С v8.3 Абонемент ($m)

Внешняя компонента, для работы с драйвером «Атол v.10», посредством JSON-заданий.

1 стартмани

16.07.2019    24848    47    gortrex    11    

8

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

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

26.06.2019    13996    38    Bww    26    

7

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

Разработка внешних компонент Печатные формы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

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

2 стартмани

22.05.2019    20938    63    MGemini    3    

16

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

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

Разработка внешних компонент Телефония, SIP Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

19.03.2019    16049    30    xxxAndricxxx    14    

10

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

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

28.02.2019    15155    22    xxxAndricxxx    5    

15

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

Разработка внешних компонент Кассовые операции ККМ Платформа 1С v8.3 1С:Розница 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

30.12.2018    37009    188    Matveymc    31    

28

Внешняя компонента для считывателя карт ACS 122/1281 (БПО)

Разработка внешних компонент Ридер магнитных карт Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Внешняя компонента для считывателя бесконтактных карт ACS 122/12 для подсистемы подключаемого оборудования.

1 стартмани

11.12.2018    14684    89    eugenevk    37    

7

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

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

16.11.2018    32856    160    nomadon    74    

31