Выполнение запросов 1С через REST API
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предоставляю расширение для выполнения запроса 1С через REST API.
Основные особенности:
1. Запрос пишется на стороне клиента приближенным 1С синтаксисом.
2. Под капотом находится СКД, так что для каждого реквизита типа Ссылка возвращается поля GUID, Тип, Навигационная ссылка и представление.
1. Пример простого запроса:
ИмяБазы = "erp";
пИнтегратор_СозданиеВнешнегоЗапроса = ОбщегоНазначения.ОбщийМодуль("Интегратор_СозданиеВнешнегоЗапроса");
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Пользователи.Ссылка КАК Ссылка
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.ПометкаУдаления = &ПометкаУдаления";
ЗапросXDTO = пИнтегратор_СозданиеВнешнегоЗапроса.Создать_ЗапросXDTO(ТекстЗапроса);
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрПростогоТИпа(ЗапросXDTO, "ПометкаУдаления", ЛОЖЬ);
ТЗ = пИнтегратор_СозданиеВнешнегоЗапроса.ВыполнитьЗапросXDTO(ИмяБазы, ЗапросXDTO);
Вернет таблицу:

2. Пример сложного запроса:
ИмяБазы = "erp";
пИнтегратор_СозданиеВнешнегоЗапроса = ОбщегоНазначения.ОбщийМодуль("Интегратор_СозданиеВнешнегоЗапроса");
ТекстЗапроса =
"ВЫБРАТЬ
| Выборка.Субконто3 КАК Документ,
| Выборка.СуммаОстатокДт КАК Остаток,
| Выборка.Субконто3.НомерВходящегоДокумента КАК ВБ_НомерВхДок,
| Выборка.Субконто3.ДатаВходящегоДокумента КАК ВБ_ДатаВхДок
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| ,
| Счет В (&Счет),
| &ВидыСубконто,
| Организация = &Организация
| И Субконто1 = &субконто1
| И Субконто2 = &субконто2) КАК Выборка";
ЗапросXDTO = пИнтегратор_СозданиеВнешнегоЗапроса.Создать_ЗапросXDTO(ТекстЗапроса);
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрСсылочногоТипа(ЗапросXDTO, "Организация", "СправочникМенеджер.Организации", "НайтиПоРеквизиту:ИНН", Организация.ИНН);
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрСсылочногоТипа(ЗапросXDTO, "Субконто1", "СправочникМенеджер.Контрагенты", "НайтиПоРеквизиту:MDMkey", Контрагент.MDM_key);
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрСсылочногоТипа(ЗапросXDTO, "Субконто2", "СправочникМенеджер.ДоговорыКонтрагентов", "GUID", ДоговорБУ.ВБ_GUID);
Счет = Новый массив;
Счет.Добавить(пИнтегратор_СозданиеВнешнегоЗапроса.СоздатьЗначениеПараметраЗапроса("ПланСчетовМенеджер.Хозрасчетный", "НайтиПоКоду", "60.02"));
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрМассив(ЗапросXDTO, "Счет", Счет);
ВидыСубконто = Новый массив;
ВидыСубконто.Добавить(пИнтегратор_СозданиеВнешнегоЗапроса.СоздатьЗначениеПараметраЗапроса("ПланВидовХарактеристикМенеджер.ВидыСубконтоХозрасчетные", "ПредопределенноеЗначение", "Контрагенты"));
ВидыСубконто.Добавить(пИнтегратор_СозданиеВнешнегоЗапроса.СоздатьЗначениеПараметраЗапроса("ПланВидовХарактеристикМенеджер.ВидыСубконтоХозрасчетные", "ПредопределенноеЗначение", "Договоры"));
ВидыСубконто.Добавить(пИнтегратор_СозданиеВнешнегоЗапроса.СоздатьЗначениеПараметраЗапроса("ПланВидовХарактеристикМенеджер.ВидыСубконтоХозрасчетные", "ПредопределенноеЗначение", "ДокументыРасчетовСКонтрагентами"));
пИнтегратор_СозданиеВнешнегоЗапроса.ДобавитьПараметрМассив(ЗапросXDTO, "ВидыСубконто", ВидыСубконто);
ТЗ = пИнтегратор_СозданиеВнешнегоЗапроса.ВыполнитьЗапросXDTO(ИмяБазы, ЗапросXDTO);
В сложном шаблоне представлены примеры установки различных параметров и поиск в базе источнике по наименованию, коду, реквизиту и имени предопределенного элемента.
3. Настройки:
Настройки расширения находиться в обработке "Интегратор настройки", здесь как раз видно поле имя базы, под которым в примере выполнялся запрос, в данной случае "erp". Для тестирования правильности выполнения подключения необходимо перейти на вкладку "Пример выполнения запроса" и выбрать имя базы для подключения.

4. Подключение
Расширение необходимо подключить в обоих базах "источник", "приемник". Выполнить публикацию HTTP сервисов для расширений по умолчанию на стороне источника.
5. Расширение активно дорабатывается, принимаются пожелания для доработки.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.335
Вступайте в нашу телеграмм-группу Инфостарт