Генерируем ВнешнееСобытие из внешнего приложения/скрипта web запросом

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

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

Простая внешняя компонента, которая позволяет генерировать внешние события в 1С:Предприятие из внешнего приложения/скрипта web запросом.

Описание
Компонента создана по технологии Native API и представляет собой web сервер, который принимает GET запросы и вызывает соответствующие функции платформы.
В качестве основы использовались статья A Simple Webserver in C++ for Windows, а также шаблон внешней компоненты с диска ИТС.
В компоненте реализован вызов следующих функции интерфейса IaddInDefBase:

    • ExternalEvent
    • CleanEventBuffer
    • GetEventBufferDepth
    • SetEventBufferDepth


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

Поддерживаемые ОС

  • Linux x32, x64 - толстый клиент, тонкий клиент. 
  • Windows x32, x64 - толстый клиент, тонкий клиент, веб-клиент (Internet Explorer).

Примерный алгоритм использования


    • В 1С:Предприятие создается экземпляр компоненты
    • Во внешнее приложение/скрипт передаются порт прослушивания, ключ и ip адрес, если приложение расположено на другом сетевом хосте.
    • Из внешнего приложения/скрипта выполняются соответствующие веб-запросы.

 

Описание интерфейса компоненты

Создание экземпляра компоненты
Имя класса для создания объекта компоненты – WebExtEvent.

Пример:
КомпонентВнСоб = Новый ("AddIn.MyComp.WebExtEvent");
В процессе создания компоненты запускается web сервер, который слушает http запросы. Порт для прослушивания выбирается автоматически. После создания компоненты он доступен через свойство Порт. Также, во время создания экземпляра формируется случайный ключ, значение которого необходимо использовать как параметр при выполнении запросов. Ключ доступен через одноименное свойство.

Свойства

Порт – порт прослушивания веб-сервера. Формируется автоматически при создании экземпляра компоненты.
Ключ – строка, значение которой используется как параметр в веб запросах. Если значение параметра key в запросе и значение свойства Ключ не совпадают – соответствующая функция не будет выполнена. Может быть изменено в процессе работы.

Методы
Все методы возвращают результат в виде plain текста. Доступ к результатам можно получить через свойство Content.

ExternalEvent – Создает новое внешнее событие и помещает его в буфер.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
source –  источник события. Если параметр не указан, будет передана пустая строка.
message – сообщение. Если параметр не указан, будет передана пустая строка.
data – данные. Если папаметр не указан, будет передана пустая строка.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/ExternalEvent?key=yourkey&source=yoursource&message=yourmessage&data=yourdata


CleanEventBuffer – очищает буфер событий.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/CleanEventBuffer?key=yourkey


GetEventBufferDepth – возвращает размер буфера сообщений
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
Возвращаемое значение
Количество событий, которое может быть помещено в буфер событий. При ошибке возвращает 0.
Пример:
http://yourhost:yourport/GetEventBufferDepth?key=yourkey


SetEventBufferDepth – устанавливает размер буфера событий.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
depth – новый размер буфера событий. Строка, представляющая целое число.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/SetEventBufferDepth?key=yourkey&depth=yourdepth

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

Наименование Файл Версия Размер
AddInNative.zip
.zip 389,70Kb
09.06.15
33
.zip 1.0.1 389,70Kb 33 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. mdSerg 02.02.15 17:54 Сейчас в теме
Т.е. чтобы обратиться из внешнего приложения, надо сначала запустить 1С , которая вызовет эту компоненту?
Не понял смысла компоненты - если надо запускать 1С?
Что мешает напрямую обратиться к веб-сервису 1С?
Приведите пример использования, пожалуйста.
2. Kabz 76 03.02.15 00:13 Сейчас в теме
Я думаю смысл использование дерганье тонкого ,веб клиента (формы) для передачи данных , с веб сервиса ты данные на форму просто так не передать.
3. blackhole321 1138 03.02.15 09:23 Сейчас в теме
Kabz (2)
Да, именно так.
MdSerg (1)
В качестве примера могу привести библиотеку "Звонки из Lync" http://infostart.ru/public/322875/. В ней взаимодействие с Lync реализовано на PowerShell. И все было бы хорошо, однако необходимо передавать информацию о звонке в клиент 1С:Предприятие. Можно использовать обработчик ожидания и периодически проверять наличие звонков, а можно при наступлении звонка вызывать ВнешнееСобытие, написав примерно следующий код:
Invoke-WebRequest -Uri 'http://localhost:yourport/ExternalEvent?key=yourkey&source=yoursource&message=yourmessage' и обработать его в клиенте.
В общем, область применения примерно такая же как и для внешних компонент с той лишь разницей, что это можно делать из внешнего скрипта/приложения.
4. mdSerg 08.11.15 21:01 Сейчас в теме
Т.е. взаимодействие непосредственно с клиентом 1С, а не с сервером? (это полезно)
ВЕБ-Сервер д.б. установлен на клиентском компьютере?
5. blackhole321 1138 09.11.15 12:34 Сейчас в теме
(4) mdSerg,
Добрый день.
Да, с клиентом 1С.
Веб-сервер - это и есть внешняя компонента. Устанавливается на клиенте штатным образом.
6. dablack 19.05.16 00:01 Сейчас в теме
Спасибо автору, вроде то, что надо, но немного насторожил момент, что адрес и ключ присваиваются автоматически при запуске.
А нет возможности их задать руками?
Мне необходимо организовать, что то вроде сервера печати. С мобильных приложений поступает задание на печать документа с таким то идентификатором.
И в случае с автоматическим назначением портов мобильному приложению придется перед каждым заданием на печать запрашивать текущий порт и ключ у веб-сервиса сервера 1С например (вдруг после прошлого задания на печать клиент 1с с запущенной ВК перезапустился....)
А если порт всегда один и тот же, то я бы смог сразу из мобильного приложения отправлять запрос на нужный ip:port..
В любом случае после долгого безрезультатного поиска какого нибудь мини веб-сервера который работал сам по себе в виде службы и в который можно было бы отправлять запросы POST запросы с двоичными данными и чтобы он их отправлял на печать на нужный принтер, Ваш продукт очень даже пригодится. Спасибо!
7. blackhole321 1138 19.05.16 16:49 Сейчас в теме
(6) dablack,
Ключ можно задать руками. Порт только для чтения т.к. он выбирается динамически из списка свободных tcp портов.
Я правильно понимаю, что Вы хотите отправлять запросы на печать клиенту 1С на компьютере пользователя?
8. dablack 19.05.16 18:27 Сейчас в теме
Да, все верно, именно так.
9. blackhole321 1138 19.05.16 18:47 Сейчас в теме
(8) dablack,
Ну Вам все равно необходимо каким-то образом получать список доступных хостов, с которых можно производить печать. В таком случае можно при старте передавать информацию о хосте/порте/ключе на сервер 1С и периодически обновлять эту информацию. Мобильное устройство, считав информацию использует ее до момента возникновения ошибки, при попытке отправить запрос. При возникновении ошибки информация о доступных хостах/портах/ключах считывается заново.
10. dablack 19.05.16 19:07 Сейчас в теме
Все таки мне гораздо удобнее было бы работать со статическим портом.
Файл скачал, но прошу прощения, а вы исходниками не поделитесь? Я думаю сам смогу разобраться даже со знаниями в С++ близкими к нулю где проставить порт. А то помимо печати есть еще мысли где я смогу применить данную компоненту и опять же порт очень хотелось бы статический... В любом случае спасибо!
11. dablack 04.10.16 20:58 Сейчас в теме
Насколько реально сделать так чтобы ExternalEvent возвращал не просто True/False а нечто другое (результат работы какой то либо функции) ?
12. blackhole321 1138 05.10.16 18:49 Сейчас в теме
(11) dablack, Эта функция помещает событие в очередь, вызывая одноименную функцию платформы. Функция платформы возвращает тип Boolean, где возвращаемое значение - true, если событие добавлено в очередь и false, если произошла какая либо ошибка (см. описание интерфейса по ссылке в публикации). Соответственно получить какие-либо значения результатов вряд ли возможно. Для выполнения каких-либо действий на сервере 1С предприятие с последующим возвратом значений etc., Вы можете использовать web-сервисы.
Если не секрет, чем вызвана необходимость вызывать исполннение кода с последующим возвратом результатов именно на клиенте?
13. dablack 10.10.16 20:56 Сейчас в теме
(12) То что в данный момент возвращает только boolean это я знаю и этим пользуюсь. Не секрет, вариантов очень много для чего есть необходимость такого прямого GET запроса и получения ответа. Например, складские работники перемещаются по складу с терминалами и сканируют шк адреса ячеек, шк непосредственно товара и в случае (как сейчас и есть) обращения к http сервисам базы, на каждый "пик" проходит аутентификация, инициализация модуля сеансов и т.д. а только после всего это возвращаются нужные данные. Т.е. достаточно большие накладные расходы. Если бы ваша компонента умела возвращать не только true/false то для меня бы это была отличная альтернатива - обращаться к постоянно "взведенному" веб серверу. Да конечно вроде в 8.3.9. реализован механизм повторного использования сессии, но попробовать на тесте еще не успел, да и не очень пока хочется продакш базу переводить на свежую платформу из-за пары фичь.
p.s. очень не хватает все таки возможности задать порт руками) приходиться лишний http запрос делать на получение текущего порта...
14. blackhole321 1138 11.10.16 21:24 Сейчас в теме
(13) dablack, Ну если использование штатных http сервисов категорически не устраивает - остается написать их самостоятельно :)

1. Создайте насервере 1С тестовую информационную базу
2. Добавьте в нее общий модуль, с возможностью доступа из внешнего соединения
3. Добавьте в модуль следующий код:


Функция МойМетод1() Экспорт
	Возврат "Вызов метода МойМетод1";
КонецФункции

Функция МойМетод2() Экспорт
	Возврат "Вызов метода МойМетод2";
КонецФункции

Функция МойМетод3() Экспорт
	Возврат "Вызов метода МойМетод3";
КонецФункции
Показать


4. Зарегистрируйте COM компонент, если он не был зарегистрирован ранее
5. Если Вы используете 64 битную систему - создайте для COM объекта COM+ приложение

6. Создайте скрипт PowerShell примерно следующего содержания:

# Инициализируем подключение к 1С

$Коннектор1С = New-Object -ComObject V83.ComConnector

$СтрокаПодключения =  "srvr='ИмяМоегоСервера'; ref='ИмяМоейБазы';"
$Соединение1С = $Коннектор1С.Connect($СтрокаПодключения);
$МойОбщийМодуль = [System.__ComObject].InvokeMember("МойОбщийМодуль",[System.Reflection.BindingFlags]::GetProperty,$null,$Соединение1С,$null)

# Инициализируем web-сервер

$ВебСлушатель = New-Object System.Net.HttpListener

$ВебСлушатель.Prefixes.Add("http://localhost:8080/Method1/")
$ВебСлушатель.Prefixes.Add("http://localhost:8080/Method2/")
$ВебСлушатель.Prefixes.Add("http://localhost:8080/Method3/")

$ВебСлушатель.AuthenticationSchemes = 'Anonymous'    
$ВебСлушатель.Start() 

# Получаем и обрабатываем web-запросы

while ($ВебСлушатель.IsListening)
{
    $Контекст = $ВебСлушатель.GetContext()
	$UrlЗапроса = $Контекст.Request.Url
	$Ответ = $Контекст.Response
    
    $ИмяМетода1С = ""

    if ($UrlЗапроса.AbsoluteUri.EndsWith("Method1", [System.StringComparison]::InvariantCultureIgnoreCase))
    {
        $ИмяМетода1С = "МойМетод1" 
    }
    elseif ($UrlЗапроса.AbsoluteUri.EndsWith("Method2", [System.StringComparison]::InvariantCultureIgnoreCase))
    {
        $ИмяМетода1С = "МойМетод2"
    }
    elseif ($UrlЗапроса.AbsoluteUri.EndsWith("Method3", [System.StringComparison]::InvariantCultureIgnoreCase))
    {
        $ИмяМетода1С = "МойМетод3"
    }

    $Результаты = [System.__ComObject].InvokeMember($ИмяМетода1С,[System.Reflection.BindingFlags]::InvokeMethod,$null,$МойОбщийМодуль, $null)
    
    # Возвращаем результат
    $Буфер = [System.Text.Encoding]::UTF8.GetBytes($Результаты)
	$Ответ.ContentLength64 = $Буфер.Length
	$Ответ.AppendHeader("Content-Type","text;charset=utf-8")
	$Ответ.OutputStream.Write($Буфер, 0, $Буфер.Length)
    $Ответ.Close()
 }

Показать


7. Замените в строке подключения значения базы и сервера на свои. При необходимости добавьте имя пользователя и пароль.
8. Сохраните скрипт и запустите его.
9. В браузере в строку адреса введите:
http://localhost:8080/Method1
http://localhost:8080/Method2
http://localhost:8080/Method3
Соответственно должны будут появиться результаты вызова соответствующих функций общего модуля.

Если устраивает производительность - добавляете многопоточность, передачу параметров и обработку ошибок
mi1man; artbear; +2 Ответить
15. soal 12.10.17 12:29 Сейчас в теме
Очень понравилась разработка. Стабильно работает на винде. Только не хватает задания конкретного порта для регистрации. Комп конечного пользователя за роутером, конкретный порт можно пробросить, а пробрасывать все порты на роутер - открыть широко дверь всем с инета - не айс.
16. blackhole321 1138 12.10.17 12:51 Сейчас в теме
(15) Это некий компромисс, т.к. порт может быть занят другим приложением/сервисом. Как пример - Вы запустили несколько экземпляров клиента 1С. Такого рода проблему можно решить написав что-то типа reverse proxy. После загрузки компонента, происходит регистрация на proxy и отправка ID клиенту, соответственно наружу выставляется один порт. Клиент посылает запросы с указанием ID на один порт, прокси пересылает данные по нужному адресу/порту в соответствии с ID.
18. soal 12.10.17 17:24 Сейчас в теме
(16) Порт может быть занят - вернуть ошибку "порт занят", или еще лучший вариант - если порт занят, запустить на свободном порту, а в коде можно будет проверить равен ли фактический порт заданному и уже решать в алгоритме, что дальше делать - отключаться или продолжать работу. В моем случае нужно будет отключиться и сообщить клиенту чтобы он проверил/освободил порт, либо пробросил новый порт (на который удалось подключиться) и указал его в настройках.
(17) reverse proxy - это уже перебор. Клиент с ноутбуком сидит, через wi-fi роутер. Поднимать ему на ноутбуке еще прокси чтобы ретранслировать запросы самому на себя по динамическому порту - это уже похоже на извращения )
Реально "предпочитаемый порт" добавит функциональной применимости Вашей компоненте в разы. Простой пример "проверь свои задачи". Вместо обработчика ожидания, который сейчас дергает мне сервер раз в минуту на предмет "а не появилось ли новых задач", можно было бы "по факту" оповестить клиента и "заставить его" открыть форму задачи сразу после ее записи в базе. Проблема с теми, кто сидит дома через веб-сервис. Сюда же еще проблема с тем, что работает только в MSIE, у нас большинство пользуют firefox и chrome, но это хотя бы решается установкой тонкого клиента.
19. blackhole321 1138 12.10.17 21:40 Сейчас в теме
(18)
Несомненно, отчасти Вы правы, но лишь отчасти. Ваш подход применим для частного случая, когда запущен один экземпляра клиента 1С.
В случае если пользователь запустит несколько экземпляров или за роутером окажется несколько компьютеров, Ваш подход заставит пользователя совершить кучу действий. И хорошо, если пользователь достаточно квалифицирован, чтобы проделать все то, что Вы описали. И тут уже вопрос вкуса, что более правильно, заставлять пользователя иногда перенаправлять и сравнивать порты или один раз произвести настройку, скажем запуска скрипта при старте компьютера, пробросить порт на роутере и установить тонкого клиента.
Относительно работы только в IE - нельзя об'ять необ'ятное :). Запустить веб-сервер в отдельном потоке внутри компоненты 1С, в браузере, чтобы работало стабильно, требует некоторых усилий :) Скажем закрытие слушателя с последующим открытием на другом порту приводит к исключению, хотя в консольном приложении или обычной библиотеке все работает нормально.
Так,что как я написал выше - это некий компромисс
20. soal 13.10.17 12:57 Сейчас в теме
(19) Запускать на заданном порту не при создании компоненты, а командой StarsServ(port), получающей порт в параметре, если порт занят (отсутствует в списке свободных портов), запустить на свободном порту, а в коде можно будет проверить равен ли фактический порт заданному и уже решать в алгоритме, что дальше делать - отключаться или продолжать работу" - никаких действий от пользователя не надо и сервер гарантированно стартонёт.
Это тоже компромисс, который, тем не менее, повысит применимость компоненты. Тут же выше подобные вопросы уже были (10). Без задания приоритета при назначении порта - эта компонента только игрушка, а для создания стабильного рабочего решения бесполезна.
21. dablack 09.01.18 13:14 Сейчас в теме
Добрый день. Юрий, но может у вас получиться сделать возможность назначать порт при создании компоненты ? Реально рандомный номер порта очень мешает. Вариант предложенный в (20) всех устроит. Или поделитесь/продайте исходники мы сами поправим). Вариант с PowerShell не подходит.
Спасибо.
22. blackhole321 1138 09.01.18 15:56 Сейчас в теме
(21)Поищу исходники, но это все пробовалось :) 1С начинает валиться с ошибками, хотя вроде никаких предпосылок. Я поэтому и написал, что это компромиссный вариант
17. blackhole321 1138 12.10.17 15:07 Сейчас в теме
(15) В качестве иллюстрации и отправной точки можете попробовать нижеследующий скрипт PowerShell:

# Инициализируем web-сервер

$ВебСлушатель = New-Object System.Net.HttpListener

# По этому url регистрируем порт
# Запрос на регистрацию: http://localhost:8080/НомерПорта
$ВебСлушатель.Prefixes.Add("http://localhost:8080/")

# По этому url принимаем внешние запросы
# Необходимо запускать с правами администратора или настроить через netsh
$ВебСлушатель.Prefixes.Add("http://*:9090/")

$ВебСлушатель.AuthenticationSchemes = 'Anonymous'    
$ВебСлушатель.Start() 

# Порт, который слушает клиент 1С 
$port = 0

# Получаем и обрабатываем web-запросы

while ($ВебСлушатель.IsListening)
{
    $Контекст = $ВебСлушатель.GetContext()
    $UrlЗапроса = $Контекст.Request.Url
    $Ответ = $Контекст.Response
    
    $Результаты = ""

    if ($UrlЗапроса.Port -eq 8080)
    {
        # Регистрируем порт клиента
        $port = $UrlЗапроса.AbsolutePath.ToLower().Replace("/", "")

    }
    elseif ($UrlЗапроса.Port -eq 9090)
    {
        # Формируем строку запроса к клиенту 1С
        $UriЗапросаК1С = "http://localhost:" + $port + $UrlЗапроса.PathAndQuery
        
        # Выполняем запрос. Invoke-Webrequest не доступна в PowerShell 2
        $РезультатыЗапросаК1С = Invoke-WebRequest -Uri $UriЗапросаК1С

        $Результаты = $РезультатыЗапросаК1С.Content

    }
    
    # Возвращаем результат
    $Буфер = [System.Text.Encoding]::UTF8.GetBytes($Результаты)
    $Ответ.ContentLength64 = $Буфер.Length
    $Ответ.AppendHeader("Content-Type","text;charset=utf-8")
    $Ответ.OutputStream.Write($Буфер, 0, $Буфер.Length)
    $Ответ.Close()
 }

Показать


Он запускается на локальной машине, где работает клиент 1С. Запускать надо с правами администратора или разрешить слушать определенный порт обычному пользователю при помощи netsh
Регистрация порта - отправка из 1С веб-запроса http://localhost:8080/НомерПорта
На порт 9090 пробрасываете внешние запросы
Поддерживается только один клиент.
23. kvadrat2 29 08.02.20 16:17 Сейчас в теме
Что-то не удаётся нам запустить эту компоненту на платформе x64... Платформа молча её не подключает, хотя на х32 всё довольно просто.
И ещё, было бы не плохо если бы вы выложили пример листинга кода с использование компоненты. Это бы упростило её встраивание в дальнейшем. Копипаст рулит.
24. kvadrat2 29 08.02.20 16:49 Сейчас в теме
(23) Может кому понадобится:
&НаКлиенте
Перем ОбъектКомпоненты;

&НаКлиенте
Процедура ПодключитьВК(Команда)     // Синхронный вызов
	рез = ПодключитьВнешнююКомпоненту("C:\temp_c\1\WebExtEvent10.dll","MyComp",ТипВнешнейКомпоненты.Native);
	
	Если рез Тогда
	
		ОбъектКомпоненты=Новый("AddIn.MyComp.WebExtEvent"); 
		Сообщить("Ссылка: ");
		Сообщить("http://127.0.0.1:"+Формат(ОбъектКомпоненты.Порт, "ЧГ=0")+"/ExternalEvent?key="+ОбъектКомпоненты.Ключ
		          +"&source=yoursource&message=yourmessage&data=yourdata");
		
	Иначе
		
		Сообщить("Найн");
	
	КонецЕсли; 
	
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	Сообщить("Событие: Источник " + Источник + " Событие: "  + Событие + " Данные: " + Данные);
КонецПроцедуры
Показать
25. blackhole321 1138 08.02.20 18:06 Сейчас в теме
(23)Посмотрел манифест. Я так понимаю - Вы имеете ввиду x64 клиент 1С. Да, скомпилировано только под x32, соответственно работать будет только под x32 клиентом.
С клиентом x32 и ОС x64 работать должно бы. Если не так - дайте знать
26. kvadrat2 29 08.02.20 18:22 Сейчас в теме
(25) Да на 32х разрядном клиенте работает, но это не очень хороший вариант. Мы подразумеваем х64 клиент. Даже не знаю как будем выкручиваться, т.к под х64 даже оборудование настраивали.. Не хотелось бы на х32 переходить из-за только этой компоненты... Есть вариант скомпилировать под х64?
27. blackhole321 1138 08.02.20 18:26 Сейчас в теме
(26)Поищу исходники под Windows, под linux нашел, но для Linux компилировал и под x32 и под x64
28. kvadrat2 29 08.02.20 18:27 Сейчас в теме
29. blackhole321 1138 08.02.20 18:29 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

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

4 стартмани

02.02.2020    1932    8    Johny_v    3       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Разработка внешних компонент

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

3 стартмани

03.01.2020    1525    11    Diana.dedov.91    0       

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

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

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

1 стартмани

05.12.2019    1274    Andreyyy    1       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

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

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

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

10 стартмани

02.12.2019    1533    1    starovton    5       

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

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

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

1 стартмани

28.10.2019    3922    5    Grigoriy251    3       

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

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

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

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

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

1 стартмани

21.10.2019    5094    1    ripreal1    16       

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

Инструменты и обработки Программист Архив с данными v8 Windows Абонемент ($m) Разработка внешних компонент

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

1 стартмани

06.10.2019    4810    9    vdv2701    17       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

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

Инструменты и обработки Программист Архив с данными v8 УТ10 Россия Windows Абонемент ($m) Разработка внешних компонент

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

1 стартмани

29.07.2019    1835    3    axae    0       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

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

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

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

1 стартмани

26.06.2019    2897    4    Bww    6       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) 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    4794    22    MGemini    2       

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

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

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

1 стартмани

19.03.2019    4228    7    xxxAndricxxx    10       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

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

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

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

1 стартмани

28.02.2019    3736    6    xxxAndricxxx    1       

Внешняя компонента для ping (под win)

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Разработка внешних компонент

Цель: выполнение ping из 1С без использования команд системы. Может быть полезна разработчикам для проверки доступности компьютеров.

1 стартмани

05.01.2019    3374    2    milut    0       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

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

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

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

1 стартмани

30.12.2018    13396    106    Matveymc    20       

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

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

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

1 стартмани

11.12.2018    3926    21    eugenevk    25       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

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

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

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

1 стартмани

16.11.2018    8341    49    nomadon    30       

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

Инструменты и обработки Программист Архив с данными v8 Абонемент ($m) Разработка внешних компонент

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

1 стартмани

12.11.2018    8204    25    KAV2    59       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

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

Инструменты и обработки Программист Архив с данными v8 Россия Windows Абонемент ($m) Разработка внешних компонент

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

1 стартмани

16.10.2018    4712    3    ripreal1    9       

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

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

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

5 стартмани

19.09.2018    10140    15    TSSV    14       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Разработка внешних компонент WEB

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

1 стартмани

01.08.2018    15665    149    RSConsulting    14       

Подборка программ для взаимодействия с ЕГАИС Промо

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

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

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

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

1 стартмани

17.07.2018    12453    75    nomadon    45       

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

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

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

2 стартмани

10.07.2018    8287    14    bobank    6