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

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

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

обработка web IP API Apache REST 1C HTTP сервис клиент статистика

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

Не судите строго, пишу первый раз. Хотя и были попытки до этого, но так не разу не опубликовал.

И так есть самописная конфигурация на Платформе 8.3 с кусками БСП, в ней реализован некий web сервис для клиентов компании.

В web сервисе есть графический интерфейс для работы из браузера и rest api.

Была поставлена задача определять IP адрес клиента в независимости от того как он подключился к сервису.

Помогли в решении эти посты:

//infostart.ru/public/1159393/

//infostart.ru/public/1157609/

//infostart.ru/public/338126/

И так у нас два варианта подключения. Начнем пожалуй с самого простого и быстрого получить IP при подключении через REST API.

Клиент получает данные через HTTP запросы, обращается к 1С базе через web сервер Apache.

Apache знает IP клиента, и мы можем поместить это адрес в некую переменную.

Для этого нам нужно:

в файле конфигурации Apache раскомментировать строки

#LoadModule headers_module modules/mod_headers.so
#LoadModule ssl_module modules/mod_ssl.so

добавить строки

# Проброс ip адреса клиента для http-сервисов 1С в заголовке client_ip_addr
RequestHeader append client_ip_addr "%{REMOTE_ADDR}s"

во все вызовы HTTP методов в базе 1С внедрить код, получающий ip клиента от Apache. В нашем случаи мы делаем так. Главное это как видите получения IP изи Заголовка http запроса.

Попытка
     ipКлиентаОпределен = ПараметрыСеанса.IpКлиента;
Исключение
     ПараметрыСеанса.IpКлиента = Запрос.Заголовки.Получить("client_ip_addr");
КонецПопытки;

И мы сохраняем в параметры сеанса, так как пока сеанс жив то нет смысла обновлять IP.

С эти всё оказалось просто. Но есть второй случай когда клиент не использует REST API, а заходит через web клиент.

Как узнать внешний IP клиента?

Мы решили так, пусть клиент сам нам скажет свой IP.

Но просить его писать это в поле ещё и смотреть в интернете было бы странно.

Значить это должно сделать за него 1С.

Решение приведенное ниже не является красивым, и работает не во всех 100% случаев (об этом ниже).

Клиент 1С сам по себе не имеет информации о настройках сетевой карты машины, на которой он исполняется, и даже если получит эту информацию - она может ничего не сказать о внешнем ip-адресе.
Очевидным решением является "спросить" у общедоступных сервисов наш ip-адрес с использованием HTTP-подключения например к ресурсу https://json.geoiplookup.io/api.
Но это невозможно сделать для web-клиента, т.к. методы работы с HTTP недоступны на web-клиенте

Значит нужно какое-то другое решение, и таким решением будет отображение поля HTML документа с js, а из js можно вызвать get https://json.geoiplookup.io/api.
Нюанс: просто создать HTML-документ недостаточно: js внутри него не отработает, также просто создать и не отображать форму не выйдет - js в поле HTTP-документа запускается только при отображении, в этом и состоит "некрасивость" решения - пользователю придется лицезреть запуск этой формы.

Если сделать пару допущений, то станет ясно, что все не так плохо:

Допущение №1 - скорость выполнения обработки достаточно высокая, чтобы пользователь ее не заметил В толстом и тонком клиенте выполнение такой обработки будет почти мгновенным и пользователем (вероятно) останется незамеченным. Что же до web-клиента? там все медленно!

Допущение №2 - такую обработку имеет смысл запускать при старте приложения и в этот момент можно ее чем-нибудь прикрыть Можно запустить свое лого на web-страничке во время загрузки web-клиента и отображения окна обработки.

 

  • Первое что понадобится - место где мы будем хранить полученную информацию, в нашем случае это параметр сеанса IpКлиента.
  • Второе - сама обработка
    Создаем обработку, и форму в ней (на самом деле подойдет любой вид форм).
    На форму добавляем строковый реквизит "HTMLДокумент", в элементах задаем ему вид Поле HTML документа
    и целочисленный реквизит "ПопытокПолученияIPСделано", он будет хранить информацию о том как долго длится попытка получения ip-адреса.
    Код модуля формы:

 

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Попытка
		// синхронный запрос GET
		HTMLДокумент = "
		|<!DOCTYPE html>
		|<html>
		|	<head>
		|		<meta charset='UTF-8'>
		|		<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script>
		|	</head>
		|	<body></body>
		|	<script>
		|		function httpGet(theUrl) {
		|			var xmlHttp = new XMLHttpRequest();
		|			xmlHttp.open( 'GET', theUrl, false ); // false for synchronous request
		|			xmlHttp.send( null );
		|			return xmlHttp.responseText;
		|		}
		|		
		|		getIp = function() {
		|			try {
		|				responseText = httpGet('https://api.ipify.org/?format=json');
		|				JSONresponce = JSON.parse(responseText);
		|				$('body').text(JSONresponce.ip);
		|			} catch(ex) {
		|				try {
		|					responseText = httpGet('https://ipinfo.io/json');
		|					JSONresponce = JSON.parse(responseText);
		|					$('body').text(JSONresponce.ip);
		|				} catch(ex) {
		|					try {
		|						responseText = httpGet('https://www.cloudflare.com/cdn-cgi/trace?format=json');
		|						JSONresponce = JSON.parse(responseText);
		|						$('body').text(JSONresponce.ip);
		|					} catch(ex) {
		|						$('body').text('Блокирован');
		|					}
		|				}
		|			}
		|		};
		|		
		|		$(document).ready(function() {
		|			getIp();
		|		});
		|	</script>
		|</html>";
	Исключение
	КонецПопытки;
	
	// синхронное получение получает пустой ip т.к. js исполняется в отдельном потоке
	// асинхронное получение/ожидание
	ПодключитьОбработчикОжидания("ПопытатьсяПолучитьСодержаниеHTML", 1, Ложь);
КонецПроцедуры


&НаКлиенте
Процедура ПопытатьсяПолучитьСодержаниеHTML()
	Страница = Элементы.HTMLДокумент.Документ;
	Попытка
		ПопытокПолученияIPСделано = ПопытокПолученияIPСделано + 1;
		Если ЗначениеЗаполнено(Страница.body.innerHTML) Тогда
			ip = Страница.body.innerHTML;
			
			ОтключитьОбработчикОжидания("ПопытатьсяПолучитьСодержаниеHTML");
			СохранитьКлиентскийIPВПараметрыСеанса(ip);
			ЭтаФорма.Закрыть();
		КонецЕсли;
	Исключение
	КонецПопытки;
	
	// если попытки получения неудачны - закончить
	Если ПопытокПолученияIPСделано > 3 Тогда
		ОтключитьОбработчикОжидания("ПопытатьсяПолучитьСодержаниеHTML");
		ЭтаФорма.Закрыть();
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура СохранитьКлиентскийIPВПараметрыСеанса(ip)
	ПараметрыСеанса.IpКлиента = ip;
КонецПроцедуры

 

ПриОткрытии() устанавливается тело HTML-документа с js, в js происходит попытка получения ip-адреса из одного из трех сервисов последовательно.
Если в браузере используется блокировщик - адреса ресурсов могут быть недоступны, в связи с чем получение ip-адреса ни из одного из ресурсов может не произойти, необходимо будет искать сервис, не находящийся в базе блокировщиков.
При успехе исполнения ip-адрес записывается в тело документа.

Каждую секунду в течение 3 секунд происходит асинхронная попытка получения текста HTML-документа (процедура ПопытатьсяПолучитьСодержаниеHTML()), в случае успеха происходит запись полученного значения в параметр сеанса.
После успеха или неуспеха форма закрывается.

  • Третье - время ее запуска. В нашем случае это модуль приложения, ПриНачалеРаботыСистемы().
    При начале работы системы запускаем обработку, активируем начальную страницу в попытке скрыть процесс работы обработки
    Процедура ПриНачалеРаботыСистемы()
    	
    	// СтандартныеПодсистемы
    	СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();
    	// Конец СтандартныеПодсистемы
    	
    	// определение ip-адреса клиента
    	ОткрытьФорму("Обработка.УстановкаIpКлиентаВПараметрыСеанса.Форма.Форма");
    	// активизировать главное окно
    	ОкнаПриложения = ПолучитьОкна();
    	Для Каждого Окно Из ОкнаПриложения Цикл
    		Если Окно.НачальнаяСтраница = Истина Тогда
    			Окно.Активизировать();
    		КонецЕсли;
    	КонецЦикла;		
    КонецПроцедуры

Вот и всё. Теперь мы почти всегда знаем, с какого IP к нам подключался клиент.

Надеюсь, в статье всё понятно. Ждём комментариев.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kolabaister 2 03.07.20 16:08 Сейчас в теме
Когда я столкнулся с подобной задачей, решить ее без костыля не удалось. Там делалось что то вроде get api, соответственно ничего выполнить на стороне клиента нельзя.
В итоге был сделан прокси-сервис, который берет на себя задачи контроля доступа, блокировки и вот этого вот всего. А сервис в свою очередь обращается к базе, и соединение уже идет как доверенное. Если бы в базу потребовалось передать ip обратившегося, я бы просто добавил параметр к запросу, модифицировав его сервисом.

К вопросу про блокировщики рекламы - такая проблемка тоже была в свое время, в другом проекте. Был поднят в домене сторонний мини-сервис, единственной задачей которого было отдавать ip адрес обратившегося в зашифрованном виде. Приложение расшифровывало его и получало гарантированно доверенный
4. IMihalev 7 06.07.20 05:06 Сейчас в теме
(1) Хорошая идея про собственный Whois надо подумать над этим, но придётся его стратифицировать, если блокировку антивирус делает.
6. kolabaister 2 06.07.20 08:26 Сейчас в теме
(4)Ну, не совсем. Если сервис находится на домене компании, то если антивирус его заблокирует это будет меньшая из проблем.
7. IMihalev 7 07.07.20 02:48 Сейчас в теме
(6) Ну пока у нас 100% идентификация клиентов. Если начнутся проблемы, то мы попробуем реализовать свой Whois. Большое спасибо за идею.
2. serg33rus 03.07.20 19:07 Сейчас в теме
Я может что-то путаю, но насколько я помню, в 17 платформе это штатная возможность.
Точно
"Реализована возможность определения IP-адреса компьютера, который начал сеанс работы с информационной базой. IP-адрес может быть определен не всегда и не для всех режимов работы.
Реализовано свойство IPАдресКлиента для объектов АдминистрированиеСеанс и СеансИнформационнойБазы.


Источник: https://dl04.1c.ru/content/Platform/8_3_17_1032/1cv8upd_8_3_17_1032.htm#6485437a-fb18-11e9-8371-0050569f678a"
3. kolabaister 2 03.07.20 22:16 Сейчас в теме
(2)Да, в апреле 20 года появилось.
5. IMihalev 7 06.07.20 05:08 Сейчас в теме
(2) Нам не нужен ip компьютера клиента, нам нужен внешний(реальный) ip в интернете. А платформа локальный выдаёт.
8. 7OH 32 07.07.20 15:06 Сейчас в теме
(5) а если отдел через роутер работает, как выходите из ситуации ?
Оставьте свое сообщение

См. также

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

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

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

10.03.2016    55361    Serginio    33    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    2010    YPermitin    12    

Загрузка или обновление файла на гугл диске

Практика программирования Файловые протоколы обмена, FTP WEB v8 1cv8.cf Бесплатно (free)

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

06.08.2020    482    pavelpribytkin96    0    

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

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

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

08.07.2020    1473    malikov_pro    6    

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

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

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

10.03.2017    25669    ruha    14    

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

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

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

02.07.2020    5475    malikov_pro    0    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    1423    malikov_pro    0    

Вариант использования документа "Операция по Яндекс.Кассе" для других сервисов по оплате через интернет

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

В статье рассмотрю организацию эквайринга в УТ 11.4 и доработки для создания заказов на оплату к стороннему сервису, как пример Сбербанк.

24.06.2020    864    malikov_pro    3    

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии Промо

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

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    76650    152    igo1    53    

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

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

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

23.06.2020    2560    malikov_pro    7    

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

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

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

21.05.2020    6503    CyberCerber    14    

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

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

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

20.05.2020    2871    platonov.e    25    

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

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

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

11.04.2013    40949    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    2493    osivv    3    

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

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

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

13.05.2020    1884    osivv    0    

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

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

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

12.05.2020    3168    zhichkin    19    

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

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

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

03.06.2013    30284    anig99    6    

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

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

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

28.04.2020    3736    osivv    23    

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

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

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

27.04.2020    5518    nbeliaev    22    

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

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

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

24.04.2020    2159    capitan    15    

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

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

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

21.04.2020    7014    RPGrigorev    2    

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

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

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

20.04.2020    3703    RPGrigorev    0    

Ошибка инициализации модуля: HTTPСервис

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

Решение проблемы "Ошибка при работе с HTTP сервисом 500. Ошибка инициализации модуля".

13.04.2020    2579    VipDim    10    

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

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

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

01.04.2020    3135    Alejandro_V    6    

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

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

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

31.03.2020    11915    informa1555    28    

Коронавирус COVID-19. Статистика по странам

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

В связи с COVID-19 люди поделились на две категории: те, кто осознал, и те кто ЕЩЕ не осознал. Единственное наше преимущество перед Коронавирусом заключается в том, что информация распространяется быстрее, чем расползается "невидимка".

25.03.2020    5995    Evgen.Ponomarenko    60    

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

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

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

18.02.2020    5673    Yashazz    1    

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

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

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

12.02.2020    4479    gamletspb    3    

Анализ работы внешней обработки сервиса МодульКасса применительно к задаче фискализации чеков при доставке

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

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

11.02.2020    2582    malikov_pro    0    

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

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

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

22.01.2020    3069    malikov_pro    5    

Двусторонний обмен с поставщиком через интернет-магазин для реализации товаров с ответственного хранения (с 01.02.2020 "Партии" не используются)

Файловые протоколы обмена, FTP WEB v8 УНФ Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Рассмотрены реализация двустороннего обмена данными с использованием API-сервиса сайта поставщика при продаже товаров со склада ответственного хранения, алгоритм движения товаров и обмена документами на примере конфигурации 1С: УНФ у партнера, который взаимодействует с поставщиком "ООО Пауэр-Интернэшнл-шины" - одним из крупнейших в России поставщиков автомобильных шин и дисков.

16.01.2020    4274    chkurs    0    

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

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

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

01.12.2019    6055    VKislitsin    9    

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

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

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

24.11.2019    4297    ohyen    0    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    7878    Sibars    19    

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

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

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

15.11.2019    4256    xxxAndricxxx    6    

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

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

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

14.11.2019    6938    xxxAndricxxx    21    

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

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

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

14.11.2019    3406    malikov_pro    0    

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

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

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

13.11.2019    8150    user665435_al.windstorm    15    

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

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

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

06.11.2019    5881    AVR    0    

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

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

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

14.10.2019    11158    uno-c    25    

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

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

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

12.09.2019    20825    YPermitin    26    

Свой веб интерфейс к 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    11026    Fragster    9    

Вывод отчетов из Штрих-М Торговое предприятие 5 на кассовое ПО Кассир 5 через веб-сервис

Розничная торговля WEB Розничная торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

Универсальный механизм вывода отчетов товароучетной системы Штрих-М Торговое предприятие в кассовое ПО Кассир 5 посредством веб-сервиса.

14.08.2019    6099    Van2507    1    

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

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

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

12.08.2019    8735    Yashazz    15    

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

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

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

08.08.2019    8126    Sedaiko    1