Проброс IP-адреса клиента в http-сервис 1С. Реализация для IIS

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

Разработка - Системная интеграция - Интеграция с WEB

Настраиваем веб-сервер IIS для передачи в 1С IP-адреса клиента, вызвавшего http-сервис. Разбираемся с этим же вопросом при использовании фронтэнд вебсервера на примере nginx.

На прошлой неделе была опубликована заметка "Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)". Судя по "звездопаду", обрушевшемуся на неё, тема определения в приложении IP-адреса клиента является насущной для сообщества.

В упомянутой статье дан рецепт проброса клиентского IP-адреса в 1С (равно как и в любое другое приложение) с помощью кастомного http-заголовка для веб-сервера Apache.

В комментариях было задано два вопроса, оставшихся без ответа:

1. А как быть если перед сервером стоит какой-нибудь прокси, например фронтенд веб-сервер nginx?

2. Как сделать подобное для веб-сервера IIS, если это вообще возможно?

Постараюсь ответить на первый и предложить свое решение для второго. Развёрнуто и с картинками. Итак: 

Фронтенд веб-сервер

Если впереди стоит фронтенд веб-сервер, например nginx, то задача решается совсем просто. Не понадобится даже использование решения, предлагаемого в вышеупомянутой статье.

Всё, что требуется, это донастроить фронтенд сервер, включив в его настройках заполнение заголовка X-Forwarded-For, который является дефакто-стандартом для передачи реального IP-адреса исходного запроса.

После включения заголовка X-Forwarded-For на фронт-сервере, этот заголовок будет доступен как в рабочем веб-сервере, так и в коде 1С. То есть мы можем обрабатывать его и извлекать необходимый IP-адрес.

Для nginx эта настройка будет выглядеть так:

proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
 
 Выдержка справки nginx

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html

Встроенные переменные

В модуле ngx_http_proxy_module есть встроенные переменные, которые можно использовать для формирования заголовков с помощью директивы proxy_set_header:

$proxy_host
имя и порт проксируемого сервера, как указано в директиве proxy_pass;
$proxy_port
порт проксируемого сервера, как указано в директиве proxy_pass, или стандартный порт протокола;
$proxy_add_x_forwarded_for
поле заголовка запроса клиента “X-Forwarded-For” и добавленная к нему через запятую переменная $remote_addr. Если же поля “X-Forwarded-For” в заголовке запроса клиента нет, то переменная $proxy_add_x_forwarded_for равна переменной $remote_addr.

 

Проброс IP-адреса клиента на веб-сервере IIS

Для того, чтобы реализовать кастомный заголовок, содержащий IP-адрес клиента, на веб-сервере IIS, понадобится установить модуль URL Rewrite. Скачать его можно на официальном сайте: https://www.iis.net/downloads/microsoft/url-rewrite.

Модуль предназначен для версий IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10

Скриншоты примеров сделаны на инсталляции с версией IIS 7.5.

После установки иконка модуля появится в секции IIS при  выделенном в левой панели сайте.


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

Выделяем Default Web Site и в средней панели даблкликом открываем модуль URL Rewrite.

В правой панели жмем ссылку "View Server Variables...".

Там же, в правой панели жмем "Add..." и пишем желаемое название заголовка с префиксом "HTTP_" (обязательно в верхнем регистре). У меня http-заголовок будет называться Client-IP-Address, поэтому моя переменная зовется "HTTP_Client-IP-Address"
Префикс "HTTP_" обеспечит нам создание нового http-заголовка.

После создания переменной, возвращаемся к списку правил, нажав в правой панели на ссылку "Back to rules".

Создаем новое правило нажатием на ссылку "Add Rule(s)..." и выбираем "Blank rule" в категории "Inbound rules"

Даем нашему правилу какое-нибудь содержательное название. У меня это будет "Add Client-IP-Address header".

В секции Match URL выбираем Matches the Pattern, Regular Expressions и указываем выражение, которому должен соответствовать URL для того, чтобы наше правило сработало. Нам нужно, чтобы оно работало для всех URL, поэтому в поле Pattern пишем ".*"

Секция Conditions в этом правиле нам не нужна, пропускаем её.

В секции Server Variables добавляем запись. В форме записи выбираем ранее созданную переменную "HTTP_Client-IP-Address", а в качестве значения указываем "{REMOTE_ADDR}" - серверную переменную, содержащую IP-адрес, с которого поступил запрос.

В секции Action выберем None и сохраним правило, нажав в правой панели ссылку "Apply"
Перезагружать или перезапускать что-либо нет необходимости. Правило начинает действовать сразу после применения.

Проверяем. Для проверки вызываю из браузера HTTP-сервис типовой Бухгалтерии https://<Хост:Порт>/<ОпубликованнаяИБ>/ru_RU/hs/api/v1/kpi/

Ура, работает! Мы получили в 1С созданный нами заголовок "Client-IP-Address" и он содержит IP-адрес, с которого я выполнял проверку.

Вместо выполнения всех вышеописанных интерактивных действий можно разместить в корне файлового расположения дефолтного сайта ("C:\inetpub\wwwroot", если не менялись настройки по умолчанию) файл web.config со следующим содержанием. Или добавить в секцию <system.webServer> файла, если он уже существует.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Add Client-IP-Address header">
                    <match url=".*" />
                    <serverVariables>
                        <set name="HTTP_Client-IP-Address" value="{REMOTE_ADDR}" />
                    </serverVariables>
                    <action type="None" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

 

Но, пожалуй, это еще не всё.

Используем заголовок X-Forwarded-For

Научим наш веб-сервер заполнять IP-адрес клиента в зависимости от того, есть ли в запросе заголовок  X-Forwarded-For. Этот заголовок мы получим как результат настройки собственного фронтенд-вебсервера, или если запрос прошел через какие-то сторонние прокси-серверы до попадания на наш веб-сервер.

В общем случае, в заголовке X-Forwarded-For может быть список IP-адресов, разделенный запятыми. При прохождении запроса через цепочку прокси-серверов, каждый сервер добавляет в этот заголовок IP-адрес источника. Таким образом, самым первым в списке будет IP-адрес клиента, инициировавшего запрос. Соответственно, нам нужен именно этот первый IP-адрес.

Доработаем правила модуля URL Rewrite на веб-сервере.

В случае, если есть заполненный заголовок X-Forvarded-For, первым IP-адресом из него нужно обновить созданный нами ранее заголовок Client-IP-Address.

Для этого в модуле URL rewrite добавим еще одно правило. Назовем его "X_Forwarded_For to Client-IP-Address header"
Секцию Match URL заполняем так же как и у первого правила. Так же поступаем и с секцией Action.

Раскрываем секцию Conditions. Значение Logical grouping можем оставить любое, т.к. у нас будет только одно условие.
Добавляем условие.
Значение Condition input: "{HTTP_X_Forwarded_For}"
Check if input string: Matches the Pattern
Pattern: "(([0-9]{1,3}\.){3}[0-9]{1,3})"

В данном условии проверяем есть ли в значении заголовка X_Forwarded_For строка, удовлетворяющая шаблону IP-адреса и сохраняем эту строку для дальнейшего использования, обрамляя её скобками.

 
 Регулярное выражение, использованное для получения IP-адреса

Регулярное выражение "(([0-9]{1,3}\.){3}[0-9]{1,3})", использованное мною в примере, не является идеальным для проверки IP-адреса, т.к. вычленит невалидное "934.448.784.432" из строки 4266934.448.784.43254325, и приведено в демонстрационных целях, чтобы не усложнять пример. Оно выделяет содержимое исходя из шаблона "три цифры - точка - три цифры - точка - три цифры - точка - три цифры"
Принимая во внимание, что вряд ли в этом заголовке будут присутствовать строки, не являющиеся IP-адресами, такое выражение вполне можно использовать. 
Сторонникам перфекционизма могу предложить такой вариант регулярного выражения, учитывающий что числа в IP-адресе не могут превышать 255:
\b((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\b


Переходим к секции Server Variables и добавляем новую строку.
Выбираем ту же переменную "HTTP_Client-IP-Address", что добавляли для первого условия.
В поле Value пишем "{C:0}", что означает использование первого совпадения из секции Conditions, т.е. полученный из заголовка IP-адрес.

В итоге получаем следующий алгоритм:

Правила срабатывают в порядке их размещения.
Первым правилом наш заголовок заполняется значением серверной переменной REMOTE_ADDR, содержащей IP-адрес клиента, от которого получен запрос.
Затем второе правило, при существовании заголовка X_Forwarded_For и условии что в его содержимом находятся удовлетворяющие выражению данные, т.е. IP-адрес, обновляет наш кастомный  заголовок.

У меня сейчас нет инсталляции с фронтенд-сервером, на которой можно было бы организовать реальную проверку, поэтому я буду использовать расширение для Chrome, позволяющее добавить к запросам такой заголовок с произвольным заполнением https://chrome.google.com/webstore/detail/x-forwarded-for-header/hkghghbnihliadkabmlcmcgmffllglin.

Для проверки вызываю из браузера тот же самый HTTP-сервис типовой Бухгалтерии https://<Хост:Порт>/<ОпубликованнаяИБ>/ru_RU/hs/api/v1/kpi/
Но теперь в http-заголовках присутствует X_Forwarded_For, заполненный значением "40.112.72.205,78.129.196.11".

Как видим, в нашем кастомном заголовке Client-IP-Address оказался первый IP-адрес из цепочки присутствующих в X-Forwarded-For.
 

Содержимое файла web.config после настройки второго правила будет иметь следующий вид:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="REMOTE_ADDR to Client-IP-Address header">
                    <match url=".*" />
                    <serverVariables>
                        <set name="HTTP_Client-IP-Address" value="{REMOTE_ADDR}" />
                    </serverVariables>
                    <action type="None" />
                    <conditions logicalGrouping="MatchAny">
                    </conditions>
                </rule>
                <rule name="X_Forwarded_For to Client-IP-Address header">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_X_Forwarded_For}" pattern="(([0-9]{1,3}\.){3}[0-9]{1,3})" />
                    </conditions>
                    <serverVariables>
                        <set name="HTTP_Client-IP-Address" value="{C:0}" />
                    </serverVariables>
                    <action type="None" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

 

Пара слов о синтаксисе URL Rewrite

На официальном сайте с документацией приведено немало примеров, но найти информацию об используемом синтаксисе оказалось непросто. Поэтому позволю себе продублировать некоторые моменты здесь.

Секция Server Variables (элемент <serverVariables>) предназначена для определения серверных переменных и http-заголовков, которые требуется установить или изменить. Действие будет произведено только если запрос отвечает шаблону, установленному в секции Match URL и выполняются условия, назначенные в секции Conditions.

В поле Value можно использовать как простую строку, так и "ссылки" на серверные переменные, http-заголовки, и обратные ссылки на результаты регулярных выражений, использованных в других секциях.

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

Имя серверной переменной указывается "как есть". В приведенном примере использовались указание серверной переменной REMOTE_ADDR - {REMOTE_ADDR}.

Для указания http-заголовка используется префикс HTTP_ 

Для указания заголовка http-ответа используется префикс RESPONSE_

Обратные ссылки на результаты работы регулярных выражений секции Conditions обозначаются {C:n}, секции Match URL - {R:n}

Более подробно - в документации: URL Rewrite Module 2.0 Configuration Reference (english).

 

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 01.12.19 17:43 Сейчас в теме
Плюсую за слово "насущной", вместо "актуальной".
Минусую за слово "кастомного", вместо "самодельного"
:)
2. -vito- 479 01.12.19 17:53 Сейчас в теме
(1) Игорь,
Вы вероятно не поверите, но сначала в черновиках было "самодельный", потом оно смешалось с "кастомным", в конце осталось только то что осталось :)
Я еще с десяток ошибок нашел после отправки статьи на модерацию (ой, а можно такое использовать?) . :)
3. sergvagner2018 01.12.19 21:14 Сейчас в теме
(2) в данном случае содержание статьи никак не пострадало.

Звезда отправлена!
maksa2005; maxopik2; -vito-; +3 Ответить
4. Sibars 311 02.12.19 06:52 Сейчас в теме
Спасибо за дополнение, однозначно, плюс)
5. Cyberhawk 118 12.12.19 09:21 Сейчас в теме
6. Luisor 24.05.20 07:26 Сейчас в теме
Спасибо за ссылку на модуль URL Rewrite
7. plastilin 8 15.06.20 22:20 Сейчас в теме
А можно остлеживать IP-адрес того кто зашел через веб-клиент?
8. -vito- 479 17.06.20 13:50 Сейчас в теме
(7) Олег, описанным в публикации способом не получится. Но можно придумать другой.
9. plastilin 8 17.06.20 14:32 Сейчас в теме
(8) походу либу пилить надо
Оставьте свое сообщение

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    54637    0    Serginio    33    

Использование Yandex Translate (Яндекс.Переводчик)

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант подключения и использования Yandex Translate.

08.07.2020    673    0    malikov_pro    4    

Когда хотим знать IP клиента...

WEB v8 Бесплатно (free)

В процессе разработки web приложения на 1С, и это не шутка))), а пожелание заказчика, возникла ситуации когда понадобилось знать, с какого IP подключался клиент.

03.07.2020    2089    0    IMihalev    8    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    4722    0    malikov_pro    0    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    25128    0    ruha    14    

Приемы описания документации API используя нотацию RAML

WEB Россия Бесплатно (free)

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

24.06.2020    773    0    malikov_pro    2    

Работа с AliExpress через API

WEB v8 Бесплатно (free)

В публикации опишу подход работы с API AliExpress и примеры кода.

23.06.2020    1811    0    malikov_pro    5    

Не программируй - вставляй и копируй. OAuth 2.0 авторизация API Google, получение токенов доступа (refresh и access token)

WEB Облачные сервисы, хостинг Бесплатно (free)

Без программирования, в несколько кликов - простой и быстрый способ трехногой авторизации по протоколу OAuth 2.0 в Google APIs. Получение refresh и первого access token для использования в HTTP-запросах из 1С к API Google. Для приложений типа "Компьютеры".

09.06.2020    2099    0    uno-c    0    

Информер для сайта , актуальные релизы 1С + Проверка подписки ИТС. Промо

WEB Администрирование данных 1С Сервисные утилиты Бесплатно (free)

Небольшой код который встраивается на сайт и выводит информацию о последних релизах конфигураций 1С

12.09.2014    40466    0    Malfarion    34    

История создания успешной системы чат-ботов на 1С

WEB v8 Бесплатно (free)

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    6002    0    CyberCerber    12    

Парсинг html страниц с выводом информации через JavaScript с использованием Selenium

WEB v8 1cv8.cf Бесплатно (free)

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

20.05.2020    2333    0    platonov.e    16    

Как разработать Web приложение и остаться 1С-ником

WEB Бесплатно (free)

Создание современных веб-приложений обходится для бизнеса дорого и требует постоянной актуализации различных фреймворков, что не всегда оправданно. Как применить инженерный подход и предоставить бизнес-пользователям доступ к данным 1С в удобном и защищенном веб-приложении на конференции Infostart Event 2019 Inception рассказал руководитель управления ИТ компании WiseAdvice Олег Филиппов.

18.05.2020    10574    0    comol    86    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    40528    0    YPermitin    34    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров

WEB v8 1cv8.cf Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.

13.05.2020    2105    0    osivv    3    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    2588    0    zhichkin    19    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

WEB v8 Россия Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

28.04.2020    3223    0    osivv    23    

Помощник работы с VirtueMart Промо

WEB Розничная торговля Розничная торговля v8 УТ10 УПП1 Россия Бесплатно (free)

Обработка для обмена данными с интернет-магазином на базе VirtueMart. Позволяет выгружать товары с изображениями и загружать заказы покупателей. Управлять интернет-магазином теперь стало просто!

19.04.2012    24047    1    salexdv    13    

Выразительный Web API

WEB v8 Бесплатно (free)

Теория разработки Web API с ожидаемым поведением, за который не будет стыдно за пределами мира 1С.

27.04.2020    4994    0    nbeliaev    22    

Хранение статистики публикаций автора сообщества Инфостарт ® (мобильное приложение И ++)

Мобильная разработка WEB v8 1cv8.cf Бесплатно (free)

Инфостарт ® достаточно удобный в плане работы со своим личным кабинетом сайт. Но программисты тем и отличаются от большинства людей, что им хочется знать больше. Поэтому появилась конфигурация 1С (она же мобильное приложение 1С) для более подробного учета статистики публикаций: рейтинг, количество просмотров, количество комментариев в динамике и в разрезах.

24.04.2020    1930    0    capitan    14    

Интеграция УАТ с топливными сервисами

WEB v8 1cv8.cf Автомобили, автосервисы Бесплатно (free)

Интеграция конфигурации Управление автотранспортом с топливными веб-сервисами.

21.04.2020    6634    0    RPGrigorev    2    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30002    0    anig99    6    

Интеграция 1С с веб-сервисами Лукойл ЛИКАРД

WEB v8 1cv8.cf Россия Бесплатно (free)

Описание интерфейса взаимодействия сервиса Лукойл- ЛИКАРД с информационной системой 1С.

20.04.2020    3302    0    RPGrigorev    0    

Как зайти на http://lkul.nalog.ru c VipNet

WEB Россия Бесплатно (free)

Для тех, кто не может пройти последний пункт "Проверка защищённого соединения с сервером Личного кабинета юридического лица" на сайте http://lkul.nalog.ru/check_cryptopro.php с применением VipNet.

19.04.2020    1986    0    Voblhned    0    

COVID-19. Динамика эпидемии

WEB v8 v8::СКД 1cv8.cf Бесплатно (free)

Весной 2020 практически все ждут, «когда же это закончится», когда эпидемия пойдет на спад. Специалисты призывают «сгладить кривую». Как понять, в какой точке мы сейчас? Данные университета Джонса Хопкинса в любой 1С.

01.04.2020    2936    0    Alejandro_V    6    

Организация удаленного доступа к корпоративной информационной системе — это просто ! Промо

Внешние источники данных Монитор заказов WEB Монитор заказов Бесплатно (free)

Хочу поделиться своим опытом создания web морды к корпоративной информационной системе на базе 1С. Необходимо организовать сбор заказов от удаленных пользователей. - Каждый пользователь видит свой набор данных, и работает со своими документами. - Доступ по логину/паролю, работа в основном с планшетов (iPad) или с десктопа. - Сервер должен находиться за пределами организации. - Себестоимость 1 пользователя не более 10$ за месяц. - Использование в основном мобильного канала связи GPRS (~100 КБ/с).

31.08.2012    28571    0    avhrst    13    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    11141    0    informa1555    21    

Пошаговая инструкция по установке веб-сервера Apache и завязка с 1С

Администрирование данных 1С Администрирование веб-серверов v8 1cv8.cf Россия Бесплатно (free)

Данная статья больше предназначена для начинающих администраторов, но «бывалые» тоже могут освежить свои знания и в этой статье в деталях расскажу, как устанавливать Apache и использовать веб-сервер для работы с 1С.

10.03.2020    5245    0    dy4amaks    9    

nsq - еще один менеджер очередей

WEB Бесплатно (free)

В статье будет описан процесс запуска nsq. Данный mq достаточно прост в использовании по сравнению с другими. Самое главное для меня в этом менеджере, это возможность отправить данные так: http://127.0.0.1:4151/pub?topic=test-messages - вполне достаточно когда 1С выступает поставщиком данных.

05.03.2020    2211    0    pallid    9    

ICQ и Jabber для 1С Промо

WEB Разработка внешних компонент Россия Бесплатно (free)

Внешняя компонента для обмена сообщениями в сети ICQ и Jabber.

29.10.2006    43743    0    Душелов    107    

Первичное взаимодействие с ФГИС МДЛП в аптечной сети на 1С 7.7 (для "чайников"!)

WEB v77::БУ 1С7:Бух Фармацевтика, аптеки Россия БУ ЕНВД Бесплатно (free)

Первичное взаимодействие с ФГИС МДЛП - Федеральной государственной информационной системой мониторинга движения лекарственных препаратов от производителя до конечного потребителя с использованием маркировки в аптечной сети на 1С 7.7 (для «чайников»!).

03.03.2020    1938    0    umbra777    1    

Получение html-кода страницы. JS из 1С

Практика программирования WEB v8 Бесплатно (free)

Получение исходника страницы, выполнение произвольного js-кода. Теперь с WebKit от 1С.

18.02.2020    5143    0    Yashazz    1    

Отладка конфигурации в режиме веб-клиента

WEB v8 Бесплатно (free)

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

12.02.2020    4095    0    gamletspb    2    

Вариант реализации работы с сервисом Dadata применительно к конфигурации УТ 11.4 и подобным

WEB v8 УТ11 Россия Бесплатно (free)

В статье описывается реализация получения данных с сервиса DaData при работе с формами справочников в конфигурации УТ 11 для дополнения информации по ФИО, ИНН, Адресу.

22.01.2020    2821    0    malikov_pro    5    

Простой пример работы с аутентификацией OpenID на IIS

Администрирование веб-серверов v8 Бесплатно (free)

OpenID, аутентификация, HTTPS, получение сертификата SSL, веб-сервер IIS, Internet Information Server, самоподписанный сертификат, самозаверенный сертификат.

26.12.2019    5136    0    budidich    15    

Получение номера ВСД по идентификатору 1С: Меркурий

Производство готовой продукции (работ, услуг) WEB v8 УТ11 Пищевая промышленность Россия Бесплатно (free)

Код парсинга веб страницы для получения номера ВСД в системе Меркурий.

24.11.2019    4043    0    ohyen    0    

Немного о интеграции с CRM AMO

WEB v8 1cv8.cf Бесплатно (free)

Немного информации о том, как настроить интеграцию с CRM AMO. Пример функций для подключения к АМО и обновления заказа. Пример на основе API авторизации.

15.11.2019    3996    0    xxxAndricxxx    6    

Ещё немного о ИНН и сервисе DaData

WEB v8 1cv8.cf Бесплатно (free)

Об использовании сервиса dadata и немного информации о возможностях получать данные по ИНН. Возможно, кому-то будет полезным.

14.11.2019    6620    0    xxxAndricxxx    21    

Вариант реализации клиента SOAP на примере получения остатков из MERLION

WEB v8 1cv8.cf Россия Бесплатно (free)

В статье приведу пример клиента к сервису SOAP, функции которого принимают несколько значений типа строка или массив строк.

14.11.2019    3208    0    malikov_pro    0    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

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

13.11.2019    7425    0    user665435_al.windstorm    15    

Проверка reCAPTCHA от Google на стороне HTTP-Сервиса

WEB v8 Россия Бесплатно (free)

Код проверяет переданный токен reCAPTCHA от Google при вызове HTTP-Сервиса. Таким образом проверяем, отправил ли данные на наш HTTP-Сервис робот или реальный пользователь.

06.11.2019    5637    0    AVR    0    

Swagger для 1С.

OneScript WEB Бесплатно (free)

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    11208    0    botokash    39    

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.)

WEB Облачные сервисы, хостинг v8 1cv8.cf Бесплатно (free)

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    10637    0    uno-c    25    

Самый примитивный HTTP-сервис в мире

WEB v8 Бесплатно (free)

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

12.09.2019    19860    0    YPermitin    26    

Работа из 1С с API PayPal

WEB v8::УФ 1cv8.cf Бесплатно (free)

PayPal - международная платежная система является очень популярной за пределами СНГ для онлайн торговли и не только. API PayPal достаточно хорошо документирован. При попытке связать 1C с PayPal пришлось столкнуться с несколькими нюансами, которыми и хотелось бы поделиться в этой статье с примерами программного кода.

08.09.2019    5065    0    da_1c    1    

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

WEB Администрирование данных 1С v8 Бесплатно (free)

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    10505    0    Fragster    9    

Совсем простой обмен HTTP, 2 функции

WEB v8 Бесплатно (free)

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    8299    0    Yashazz    15    

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение

WEB v8 1cv8.cf Бесплатно (free)

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    7837    0    Sedaiko    1    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    19363    0    Evil Beaver    33