Обмен с базой клиента, куда пускают только по RDP
Доступ к базе есть, но через удаленный рабочий стол: ни портов, ни VPN, ни прав на сервере. Разбираем, как отдать данные наружу в таких условиях.
Задача
Клиент согласен на доработку, но доступ к базе дает только через удаленный рабочий стол: заходите под своей учеткой, работаете в 1С, файлы наружу не выносите. Ни VPN, ни проброса портов, ни доступа к серверу СУБД, ни прав администратора на машине.
А задача внешняя: отдать остатки на сайт, статус заказа в личный кабинет или данные в приложение. И все это надо сделать, не выходя за рамки, которые вам поставили.
Как это решают обычно
Работать руками. Зашли в RDP, сформировали отчет, выгрузили в Excel, переслали. Так делают годами, и это работает ровно до первого вопроса "а посвежее нельзя".
Попросить публикацию. Правильный путь: база публикуется на веб-сервере, дальше HTTP-сервисы или OData. Но публикация требует и веб-сервера, и белого IP, и согласия службы безопасности - тех самых вещей, которых в этой истории нет.
COM-соединение с той же машины. Скрипт кладется в сеанс RDP и ходит в базу локально. Работает, но живет плохо: перезапуск сервера, обновление платформы, смена разрядности компонента - и связь рассыпается, а узнаете вы об этом от клиента.
Файлы через сетевую папку. Обработка по расписанию кладет выгрузку в папку, забирает ее другой скрипт. Данные вчерашние, звеньев два, и оба вне вашего контроля.
Как быстрее
Обработка открывается в 1С прямо внутри RDP-сессии - как обычный внешний файл, без установки в конфигурацию и без прав администратора на машине. Дальше она сама обращается к сервису по исходящему HTTPS и выполняет задания внутри базы.
Наружу при этом не открывается ничего: ни портов, ни публикации, ни доступа к серверу. Формально вы остаетесь ровно в тех рамках, которые вам дали: работаете в базе через RDP, как и договаривались.
| Номенклатура | Склад | Остаток | Резерв |
|---|---|---|---|
| Кран шаровой 1/2 | Основной | 148 | 20 |
| Фильтр грубой очистки | Основной | 36 | 0 |
| Счетчик воды СГВ-15 | Транзитный | 0 | 0 |
Как это сделать
1. Зарегистрируйтесь в кабинете, получите ключ, скачайте обработку под платформу клиента.
2. В сеансе RDP откройте обработку в 1С, вставьте ключ, включите обмен.
3. Ваше приложение обращается к API сервиса по ключу и получает данные.
4. Права ограничьте пользователем 1С, под которым запущена обработка: наружу уйдет только то, что видно этому пользователю.
Что стоит знать заранее
Главное ограничение честное: пока сеанс открыт, база на связи; закрыли RDP - обмен прекратился. Для постоянной работы нужна договоренность с клиентом: либо сеанс, который не закрывают, либо запуск обмена регламентным заданием на сервере 1С, если такие права дадут.
Согласуйте подключение с клиентом письменно. Технически вы ничего не открываете наружу, но данные его базы уходят во внешний сервис, и узнавать об этом постфактум он не должен.
Имена объектов в доработанной конфигурации свои: первый запрос проверяйте на живой базе, а не по типовой документации.
Не уверены, как подключается именно ваша база - в 1С:Фреш, в аренде, своя серверная или файловая? Выберите свой случай на главной: покажем, что мешает и что меняет мост.