Получение списка баз http-запросом из сети

28.03.24

База данных - Инструменты администратора БД

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Получение списка баз http-запросом из сети
.cf 27,83Kb
29 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

В статье использована информация из:

Статья на ИТСИсточник1Источник2 и ещё из многих мест.

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

На ИТС есть явное ограничение: Доступно только для лицензии КОРП. Но я так и не смог понять, в чём оно выражается. Возможно оно моральное...

Так же, как я ни пытался, не смог заставить работать через ws, только через hs, при этом про возможность работы через hs на ИТС упоминаний не нашёл.

Указанные в ИТС ограничения, например, Вызов метода WebCommonInfoBases.GetInfoBases() должен выполнять с аутентификацией, тоже оказались необязательными.

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

Надеюсь, я хоть как-то объяснил причину возникновения этой статьи.

Итак, решаемая задача.

В организации 20+ рабочих мест, 10+ баз 1С, которые требуется в том или ином списке подключать, отключать, заменять и т.д. пользователям.

 

Решение.

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

При наличии в файле 1cestart.cfg строчки InternetService=http://СерверПубликацииБаз/ИмяПубликации/hs, которая появится там после добавления этого сервиса в настройках, лончер будет пытаться получить список баз с сервера СерверПубликацииБаз и добавить его в общий.

Порядок его работы (информация взята из Источника1):

1) HEAD-запрос на адрес http://СерверПубликацииБаз/ИмяПубликации/hs/WebCommonInfoBases. Последнее подставляется платформой автоматически. На этот запрос должен прийти ответ 200, только в этом случае будет пункт 2.

2) GET-запрос на адрес http://СерверПубликацииБаз/ИмяПубликации/hs/WebCommonInfoBases. В этом запросе помимо прочего будут переданы параметры ClientID и InfoBasesCheckCode. От них, а так же от параметра Запрос.ОтносительныйURL будет строиться дальнейшая логика. На этот запрос должен прийти ответ 200 с заголовками Content-Type : application/json;charset=utf-8 и Cache-Control : no-cache и телом-JSON-строкой вида {"root":{"InfoBasesChanged":true,"URL":СервисПолученияСпискаv8i}}, где СервисПолученияСпискаv8i в моём случае тот же самый сервис, http://СерверПубликацииБаз/ИмяПубликации/hs/WebCommonInfoBases (хотя по ИТС должен быть другим и обязательно требовать авторизацию)

Если InfoBasesChanged = ЛОЖЬ, на этом всё и заканчивается, это означает, что менять список не нужно.

InfoBasesChanged = ИСТИНА, продолжаем.

3) HEAD-запрос на адрес СервисПолученияСпискаv8i (получен в п.2). На этот запрос должен прийти ответ 200, только в этом случае будет пункт 4.

4) GET-запрос на адрес СервисПолученияСпискаv8i (получен в п.2)На этот запрос должен прийти ответ 200 с заголовками Content-Type : application/json;charset=utf-8 и Cache-Control : no-cache и телом-JSON-строкой вида {"root":{"InfoBasesCheckCode":Версия,"ClientID":КодКлиента,"InfoBases":СтрокаСоСпискомБазВФорматеV8i}}

Вот, в общем то, и всё, что требуется из теории.

Практика.

Создаём http-сервис. Имя сервиса очень желательно латиницей, потому как его надо будет публиковать, а кириллица в публикации - зло. В моём случае WebCommonInfoBasesService. Важно! КорневойURL должен быть WebCommonInfoBases.

Создаём http-шаблон. Я назвал CheckNGetInfoBases. Сам шаблон /*. Т.е. он будет обрабатывать все запросы.

Создаём http-метод Head. Обработчик CheckNGetInfoBasesHead (ниже)

Создаём http-метод Get. Обработчик CheckNGetInfoBasesGet

 
 Листинг модуля WebCommonInfoBasesService

Дополнительные объекты конфигурации (взято из Источника2)

 
 Развёрнутое дерево конфигурации
 
 Листинг модуля объекта ШаблоныБаз
 
 Листинг модуля менеджера ИсторияПосещенияПользователей
 
 Листинги текстов шаблонов НовыйПользователь и Тестовая база

В конфигурацию также добавлен пользователь ib и роль для него. Роли даны права на чтение и запись объектов.

При публикации этот пользователь явно прописывается в vrd, чтобы обеспечить анонимные запросы (тоже из Источника2).

Какое-то время будет доступен сервер http://alg-rt.shmg.ru:8083/DistrIb/hs, который можно прописать в лончер и получить "заглушку" - обратитесь к Администратору.

Тестировал на платформе 8.3.9.2309 и 8.3.24.1342. Вероятно, между ними тоже всё нормально.

Вступайте в нашу телеграмм-группу Инфостарт

WebCommonInfoBases InternetService 1cestart.cfg http-сервис

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

14400 руб.

20.08.2024    43914    240    123    

221

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    19608    76    39    

92

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

20400 руб.

06.12.2023    17755    67    10    

101

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    39658    120    152    

83

Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

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

3600 руб.

06.02.2017    33892    146    18    

52

Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

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

140000 руб.

10.08.2012    124987    9    122    

195

Администрирование Инструменты администратора БД Удаленное управление Системный администратор 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Расширение разработано для автоматизации интеграции «1С:Зарплата и управление персоналом (редакция 3.1)» с сервисом Яндекс 360 через платформу «n8n». Расширение позволяет автоматически создавать учетные записи Яндекс для новых сотрудников, обновлять данные существующих сотрудников и блокировать учетные записи уволенных сотрудников. Обмен данными осуществляется через API Яндекс 360 с использованием промежуточного сервера платформы n8n, что обеспечивает гибкость, масштабируемость и упрощение интеграционных процессов.

5000 руб.

03.04.2025    2041    3    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. simuljakr 207 29.03.24 14:09 Сейчас в теме
А можно инструкцию ?
Я скачал ваш cf файл.
Развернул из него базу.
А что дальше ?
3. MikeSh 57 30.03.24 08:45 Сейчас в теме
(1)Добрый день.
- Заполнить предопределённый элемент Шаблона баз Новый пользователь как указано в листинге текстов шаблонов
- Добавить к предопределённому элементу Группы баз Новые Пользователи этот шаблон
- Создать в конфигураторе нового пользователя, например с именем ib и назначить ему роль Доступ к списку баз
- Опубликовать hs от имени этого пользователя
Это позволит "накапливать" новых пользователей.
А потом уже в самой базе создавать шаблоны, группы, ну и всячески рурить процессом.
2. quazare 3965 29.03.24 17:43 Сейчас в теме
В свое время, мне потребовалось разобрать механизм из БСП для работы с кластером. Так вот, там есть такая возможность- получить список баз, ну а раз список получен - я могу его использовать «при компоновке результата» в скд )
4. MikeSh 57 30.03.24 08:48 Сейчас в теме
(2)Можно подробнее? Или ссылку. Мне кажется, это немного не то, что в теме, но может быть интересно.
5. kirill_sh 2 31.03.24 00:56 Сейчас в теме
(4) Это получение списка баз с сервера по RAS.
8. MikeSh 57 31.03.24 08:28 Сейчас в теме
(5)
Ясно. Это тоже использую для обслуживания БД, чтобы гасить сеансы пользователей.
Но смысл таки в другом. В списке баз не обязательно будут базы с сервера. Это всё работает даже для файловых баз
6. kirill_sh 2 31.03.24 00:56 Сейчас в теме
Подскажите, а какой сервер публикации вы использовали?
я эту тему пытался внедрить, но не чего из этого не получилось сервер неправильно посылал запросы в 1С.
7. MikeSh 57 31.03.24 08:25 Сейчас в теме
(6)
Апач 2.4 с самыми стандартными настройками, "из коробки".
9. kirill_sh 2 31.03.24 10:05 Сейчас в теме
(7) вот как раз и вопрос как вы обошли настроку про HEAD в апаче?

в описании на итс и в ссылках которых у вас нужно убрать HEAD из запросов в iis это просто, а вот в апаче 2.4 проблемно. я только нашел как это сделать в 2.2
10. kirill_sh 2 31.03.24 13:10 Сейчас в теме
Это ИТС
В настройках веб-сервера, для которого выполнены публикации Web-сервиса получения списка общих информационных баз, должна быть запрещена обработка HTTP-запроса HEAD (по крайней мере для виртуальных каталогов, через которые выполняется обращение к Web-сервису). В противном случае Web-сервис не будет использоваться


Это вторая ссылка
8.Запрещаем обработку HTTP-запросов HEAD (Default Web Site - Фильтрация запросов - Команды HTTP - Запретить команду).
11. MikeSh 57 31.03.24 13:46 Сейчас в теме
(10)
Я это проигнорировал, т.е. вообще ничего не вносил в настройки. Пытался искать информацию, и даже что-то нашёл, но в итоге по инструкции не заработало, а из коробки заработало.
12. kirill_sh 2 31.03.24 13:49 Сейчас в теме
(11) оно работает, если у первого сервиса поставить на чтение любого вида сообщения тогда все норм.
Просто эти два сервиса в 1с работают как post, а вот если бы первый работал как get было бы правильно.
13. MikeSh 57 31.03.24 16:20 Сейчас в теме
(12) Не уловил суть. Какие 2 сервиса? Где речь о post? Сервис 1, в нём шаблон /*, обработчики только HEAD и GET.
Для отправки сообщения требуется регистрация/авторизация