Выполнение запросов 1С через REST API

06.11.25

Интеграция - WEB-интеграция

Удобное получение данных посредством REST API по аналогии COM соединения.

Файлы

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

Наименование Скачано Купить файл
Выполнение запросов 1С через REST API
.cfe 76,37Kb
3 1 850 руб. Купить

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

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

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

Предоставляю расширение для выполнения запроса 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

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

Запрос REST API.

См. также

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

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    223918    1217    415    

1065

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21859    32    24    

25

SALE! 15%

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4072    20    2    

21

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    9011    7    5    

10

Оптовая торговля WEB-интеграция Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Государственные, бюджетные структуры Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41384    54    39    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Трактор 1273 06.11.25 11:27 Сейчас в теме
Исполнять код, полученный от другой системы это дыра в безопасности. Нехорошо так делать.
Darklight; +1 Ответить
2. WI_IL 129 06.11.25 11:28 Сейчас в теме
(1) обработка не исполняет код, она выполняет произвольный запрос
3. skyadmin 69 06.11.25 11:34 Сейчас в теме
(2) Можно заменить сложный запрос на OData-запрос
/odata/standard.odata/РегистрБухгалтерии_Хозрасчетный_Остатки()?$filter=Счет in (&Счет) and Организация eq &Организация and Субконто1 eq &субконто1 and Субконто2 eq &субконто2&$select=Субконто3,СуммаОстатокДт,Субконто3/НомерВходящегоДокумента,Субконто3/ДатаВходящегоДокумента&$expand=Субконто3
4. WI_IL 129 06.11.25 11:37 Сейчас в теме
(3) а как же виды субконто ? почему они тут будут идти в нужном порядке?
5. skyadmin 69 06.11.25 11:42 Сейчас в теме
В OData укажите ВидыСубконто как параметр функции:
/odata/standard.odata/РегистрБухгалтерии_Хозрасчетный_Остатки(Счет=&Счет,ВидыСубконто=&ВидыСубконто,Организация=&Организация)?$filter=Субконто1 eq &субконто1 and Субконто2 eq &субконто2&$select=...&$expand=Субконто3

Это обеспечит правильный порядок субконто по видам.
Но я в этом даже не разбирался (а в бухгалтерии полный ноль), просто спросил у grok, но почти все что он говорит работает.
Для отправки сообщения требуется регистрация/авторизация