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

28.03.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Получение списка баз http-запросом из сети
.cf 27,83Kb
14
14 Скачать (1 SM) Купить за 1 850 руб.

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

Статья на ИТСИсточник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 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

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

8400 руб.

20.08.2024    9595    75    33    

86

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    9344    44    5    

76

SALE! %

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

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

15000 10000 руб.

10.11.2023    10935    40    27    

66

SALE! %

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

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

4800 3840 руб.

14.01.2013    189226    1144    0    

916

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

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

14400 руб.

29.04.2020    33092    107    152    

73

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    32260    34    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73134    628    45    

86

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62988    94    59    

79
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. simuljakr 203 29.03.24 14:09 Сейчас в теме
А можно инструкцию ?
Я скачал ваш cf файл.
Развернул из него базу.
А что дальше ?
3. MikeSh 50 30.03.24 08:45 Сейчас в теме
(1)Добрый день.
- Заполнить предопределённый элемент Шаблона баз Новый пользователь как указано в листинге текстов шаблонов
- Добавить к предопределённому элементу Группы баз Новые Пользователи этот шаблон
- Создать в конфигураторе нового пользователя, например с именем ib и назначить ему роль Доступ к списку баз
- Опубликовать hs от имени этого пользователя
Это позволит "накапливать" новых пользователей.
А потом уже в самой базе создавать шаблоны, группы, ну и всячески рурить процессом.
2. quazare 3843 29.03.24 17:43 Сейчас в теме
В свое время, мне потребовалось разобрать механизм из БСП для работы с кластером. Так вот, там есть такая возможность- получить список баз, ну а раз список получен - я могу его использовать «при компоновке результата» в скд )
4. MikeSh 50 30.03.24 08:48 Сейчас в теме
(2)Можно подробнее? Или ссылку. Мне кажется, это немного не то, что в теме, но может быть интересно.
5. kirill_sh 2 31.03.24 00:56 Сейчас в теме
(4) Это получение списка баз с сервера по RAS.
8. MikeSh 50 31.03.24 08:28 Сейчас в теме
(5)
Ясно. Это тоже использую для обслуживания БД, чтобы гасить сеансы пользователей.
Но смысл таки в другом. В списке баз не обязательно будут базы с сервера. Это всё работает даже для файловых баз
6. kirill_sh 2 31.03.24 00:56 Сейчас в теме
Подскажите, а какой сервер публикации вы использовали?
я эту тему пытался внедрить, но не чего из этого не получилось сервер неправильно посылал запросы в 1С.
7. MikeSh 50 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 50 31.03.24 13:46 Сейчас в теме
(10)
Я это проигнорировал, т.е. вообще ничего не вносил в настройки. Пытался искать информацию, и даже что-то нашёл, но в итоге по инструкции не заработало, а из коробки заработало.
12. kirill_sh 2 31.03.24 13:49 Сейчас в теме
(11) оно работает, если у первого сервиса поставить на чтение любого вида сообщения тогда все норм.
Просто эти два сервиса в 1с работают как post, а вот если бы первый работал как get было бы правильно.
13. MikeSh 50 31.03.24 16:20 Сейчас в теме
(12) Не уловил суть. Какие 2 сервиса? Где речь о post? Сервис 1, в нём шаблон /*, обработчики только HEAD и GET.
Оставьте свое сообщение