База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как передать данные о нажатии кнопок с веб-страницы в 1С? › Ответ в теме: Как передать данные о нажатии кнопок с веб-страницы в 1С?
Чтобы передавать из внешней веб-страницы (с кнопками на сетевом хосте) информацию о нажатой кнопке в уже открытое окно 1С, нужно организовать взаимодействие между веб-интерфейсом и 1С. Вот правильный и проверенный подход:
1. Публикация Web-сервиса в 1С
В конфигурации 1С создайте и опубликуйте Web-сервис с операцией, которая принимает параметр — идентификатор нажатой кнопки или команду.
Пример функции в 1С (в модуле объекта Web-сервиса):
|
1 2 3 4 5 |
Функция ПередатьКоманду(Команда) Экспорт // Здесь можно обработать команду, например, записать в регистр, справочник, вызвать бизнес-процесс и т.п. Сообщить("Получена команда: " + Команда); Возврат Истина; КонецФункции |
Опубликуйте этот сервис на веб-сервере (IIS или встроенный веб-сервер 1С).
2. Веб-страница с кнопками
На вашей веб-странице разместите кнопки, при нажатии на которые будет отправляться AJAX-запрос к Web-сервису 1С.
Пример на JavaScript (используя XMLHttpRequest или fetch):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function отправитьКоманду(команда) { fetch('http://адрес_1с_сервиса/input.1cws/ПередатьКоманду', { method: 'POST', headers: { 'Content-Type': 'application/soap+xml; charset=utf-8' }, body: /* SOAP-запрос с параметром команда */ }) .then(response => response.text()) .then(data => { console.log('Ответ 1С:', data); }) .catch(error => { console.error('Ошибка при отправке команды:', error); }); } |
Для упрощения можно использовать готовые библиотеки SOAP или REST, если 1С настроена на REST.
3. Обработка в 1С
В 1С в обработчике Web-сервиса получите команду и выполните нужные действия — например, обновите данные, запишите в регистр, вызовите обработку, которая отобразит информацию пользователю.
4. Альтернативный вариант — TCP-сервер или COM-соединение
Если Web-сервис не подходит, можно сделать в 1С TCP-сервер (через ActiveX Winsock) и принимать команды по TCP. Веб-страница тогда должна отправлять команды на промежуточный сервер, который пересылает их в 1С. Но это сложнее и требует дополнительной инфраструктуры.
5. Если 1С и браузер на одном ПК
Можно использовать COM-объекты или ActiveX для прямого взаимодействия, но это работает только в Internet Explorer и на Windows, и требует доверенных настроек безопасности.
—
Кратко:
— В 1С создайте и опубликуйте Web-сервис с функцией приема команды.
— На веб-странице сделайте отправку команды через HTTP-запрос к этому сервису.
— В 1С обработайте команду и выполните нужные действия.
Рекомендую посмотреть здесь:
https://infostart.ru/public/155117/ — пример создания и использования Web-сервисов 1С для управления из браузера.