1с и api запросы как реализовать
Перейти к содержимому

1с и api запросы как реализовать

  • автор:

1с и api запросы как реализовать

У кого-нибудь есть или кто-нибудь знает где можно посмотреть простые наглядные примеры интеграции 1С с API, чтобы понять логику как это работает для начинающего или для дебила.

какое именно апи? рест апи? или соап?
Срочно дайте человеку какой-нибудь API
например soap

(0) API — Application Programming Interface, программный интерфейс приложения. Поэтому для каждого приложения будет свой API. Тебе пример интеграции 1С и чего именно надо?

(4) Да, я понимаю что у каждого приложения свой API. Мне нужен пример чего угодно, где можно увидеть и понять как это работает и с чего начинать.

Вот тут написано про всякие API http://v8.1c.ru/metod/books/book.jsp?id=288
хочешь потренироваться — пиши клиента для реддит
https://www.reddit.com/dev/api/
(8) спасибо) теперь нужно понять с чего начинать в 1с
Ироды окаянные :))
https://wonderland.v8.1c.ru/search/index.php?tags=OData
Начни с онлайн-сервиса «морфер» и использования его АПИ в 1С

Хотя эти всякие WS могут показаться сложными. Лучше начни с какого-нибудь АПИ на хттп-сервисах. Например, Манго.

(0) Классический пример
https://habr.com/post/148658/
Ну или можно взять сервис проверки контрагента по ИНН/КПП.

Еще с геокодером Яндекса побаловаться интересно:
https://tech.yandex.ru/maps/geocoder/
(14) а есть чего нибудь примерного в 1с8 по этой темке?

(15) С каких то движков 8.3 (а может и раньше, я не следил) в структуре конфигурации появились http сервисы.
Можно сделать базу с вебсервисом, который будет допустим принимать текст запроса и в xml результат возрвращать. Опубликуй её на вебсервере вот тебе и вебсервис, который будет отвечать, api правда будет целиком на 1с, но нам же надо чтобы все было на 1с.

(16) Это и в 8.1 было
А вообще полезная штука Яндекс диск, попробуй реализовать, там не сложно, единственно нужно генерировать ключ + права дать.

Очень хорошая тема тоже интересно)

(10), (11), (12) спасибо
(13) отлично, спасибо))
(14) благодарю
попробую еще книженцию (6) по 1с приобрести
кто-нибудь учился по учебникам, есть в них толк?

(19) Я учился. Хорошо превращают неосознанное незнание в осознанное незнание. Не более того.

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

(21) делай интеграцию HTTP . интеграция по api что в ней нового ? выплюнет набор текстовых полей которые нужно разобрать

> Это и в 8.1 было

http появилось только в 8.3, и даже не с начала 8.3

(16) так оно может стучаться к веб сайтам, можно с любого веб сайта стучаться к 1С и получать rest ответ и распознавать как массив.

(23) спасибо за ссылку

//Ответ = Новый HTTPСервисОтвет(200);
//Ответ.УстановитьТелоИзСтроки(«Hello»);
//Возврат Ответ;
УстановитьПривилегированныйРежим(Истина);

date1 = Запрос.ПараметрыURL[«date1»];
date2 = Запрос.ПараметрыURL[«date2»];
guid = Запрос.ПараметрыURL[«guid»];
inn = Запрос.ПараметрыURL[«inn»];
kpp = Запрос.ПараметрыURL[«kpp»];
NameProcedure = Запрос.ПараметрыURL[«NameProcedure»];
NumberAccount = Запрос.ПараметрыURL[«NumberAccount»];
UIDaccount = Запрос.ПараметрыURL[«UIDaccount»];

Текст64 = XMLСтрока(Новый ХранилищеЗначения(ТаблицаЗначений, Новый СжатиеДанных(9)));

HTTPОтвет = Новый HTTPСервисОтвет(200);

HTTPОтвет.Заголовки.Вставить(«Content-Type»,»text/html; charset=utf-8″);
HTTPОтвет.УстановитьТелоИзСтроки(Текст64);

Это база куда подключаемся

АдресСтраницы = «имя базы/hs/bank/»+ДатаНачалаСтрокой+»/»+ ДатаОкончанияСтрокой + «/» + Организация.УникальныйИдентификатор()
+ «/» + Организация.ИНН + «/» + Организация.КПП + «/» + ИмяДокумента + «/» + РасчетныйСчет.НомерСчета + «/» + РасчетныйСчет.УникальныйИдентификатор();

Хост = «имя хоста»;

HTTPСоединение = новый HTTPСоединение(Хост);

HTTPЗапрос = Новый HTTPЗапрос(АдресСтраницы);
HTTPЗапрос.Заголовки.Вставить(«Authorization», «Basic » + ЗакодироватьЛогинПароль(«имя пользователя в базе подключения», «пароль»));

КодСостояния = «код состояния — » + Результат.КодСостояния;
ОтветHTTPСтрока = Результат.ПолучитьТелоКакСтроку();

Функция ЗакодироватьЛогинПароль(Логин, Пароль)

Запись = Новый ЗаписьТекста(ВременныйФайл);
Запись.Записать(Логин + «:» + Пароль);
Запись.Закрыть();

ДвДанные = Новый ДвоичныеДанные(ВременныйФайл);
Результат = Base64Строка(ДвДанные);

Возврат Сред(Результат, 5);

получил ТЗ закодировал в строку и обратно раскодировал в ТЗ
(6) Cпасибо за ссылку! Заказал.

(15) Есть несложный кусок кода, что-то посложнее не нашел сходу. Под 8.2, на 8.3 можно без WinHttp, вроде.

WinHttp = Новый COMОбъект(«WinHttp.WinHttpRequest.5.1»);
WinHttp.Option(2, «utf-8»);
WinHttp.Open(«POST», «https://geocode-maps.yandex.ru/1.x/»,0);
WinHttp.setRequestHeader(«Content-Language», «ru»);
WinHttp.setRequestHeader(«Content-Charset», «utf-8»);
WinHttp.setRequestHeader(«Content-type», «application/x-www-form-urlencoded; charset=utf-8»);
ПараметрыПОСТ = «geocode=» + КодированнаяСтрокаАдреса + «&key=» + ЯндексAPI;

ИспользоватьПрокси = ПараметрыСеанса.новаТекущийПользователь.ИспользоватьПрокси;
Если ИспользоватьПрокси Тогда
WinHttp.SetProxy(2, ПараметрыСеанса.новаТекущийПользователь.ПроксиАдрес);
WinHttp.SetCredentials(ПараметрыСеанса.новаТекущийПользователь.ПроксиПользователь, ПараметрыСеанса.новаТекущийПользователь.ПроксиПароль, 1);
КонецЕсли;

WinHttp.Send(ПараметрыПОСТ);
Текст = Новый ТекстовыйДокумент;
Текст.УстановитьТипФайла(КодировкаТекста.UTF8);
Текст.УстановитьТекст(WinHttp.ResponseText());
Текст.Записать(КаталогВременныхФайлов()+ВременныйФайл);

Загрузка в 1С по Api (прайс-листы поставщиков)

Загрузка в 1С по Api (прайс-листы поставщиков)

Мегапрайс и Мегалайт содержат универсальный справочник прайс-листов для загрузки любых прайсов (excel, csv, xml, yml и так далее). Вы создаете справочник, в котором указываете способ забора и загрузки файлов, описываете настройки загрузки (колонки, поиск, сопоставление номенклатуры) и действия (создать номенклатуру, свойства, картинки, загрузить цены, остатки и так далее). После настройки включаете роботов (регламентные задания) для автоматического импорта в 1С.

Для загрузки с АПИ все что нужно — это указать центральной загрузке внешнюю обработку, которая получает данные по Api. Дополнительная обработка только делает запросы, получает таблицы и передает их в Мегапрайс. Обработка может работать в любой конфигурации 1С, даже в которой нет ничего (ни справочников, ни документов).

  • Для загрузки с АПИ вам нужно завести профиль с вариантом загрузки «Без файла» и в нем выбрать внешнюю обработку (из справочника дополнительных обработок).
  • По сути все. Теперь обработка загрузки будет выполнять внешнюю обработку, получать таблицу как и любой экселевский файл.
  • Теперь вы можете сделать дополнительные настройки (фильтры, условия, алгоритмы), выполнить загрузку и настроить Робота.

У кого и как заказать дополнительную обработку. Сами обработки могут быть созданы под заказ у любого специалиста. При этом не нужно ему давать ни свою базу, ни наши программы. У этих обработок одна кнопка — и при ее нажатии она показывает вам данные (как будто вы открыли эксель таблицу).

Предоставляем готовый шаблон обработки. В примере заготовки содержится генерация и передача данных.

Загрузка прайсов поставщиков в 1С без создания номенклатуры

Хотим вам напомнить, что в Мегапрайсе есть возможность загружать прайсы без создания номенклатуры в 1С. Вы можете создавать в 1С базу прайсов и работать с ней без номенклатуры. Мегапрайс позволяет при продаже и закупке товаров работать с виртуальными прайсами — делает поиск товаров в прайсах, выполняет анализ.

REST интерфейс

Платформа может автоматически формировать REST интерфейс для всего прикладного решения. После того, как прикладное решение опубликовано на веб-сервере, сторонние системы могут обращаться к нему через REST интерфейс с помощью HTTP запросов. Благодаря универсальности и кроссплатформенности автоматически генерируемый REST интерфейс является основным инструментом для интеграции со сторонними системами.

REST интерфейс позволяет читать данные 1С:Предприятия, изменять их, создавать новые объекты данных и удалять существующие.

Автоматический REST интерфейс может использоваться для таких задач как:

  • Интеграция прикладного решения с интернет-сайтами и интернет-магазинами;
  • Реализация сторонними средствами дополнительной функциональности прикладного решения без изменения его конфигурации;
  • Загрузка данных в прикладное решение и выгрузка данных из него;
  • Интеграция прикладного решения с корпоративными системами, возможно даже без дополнительного программирования.

Типичные операции, выполняемые через REST интерфейс это:

  • Получение списка документов, справочников, записей регистра сведений и т.п., возможно с фильтром;
  • Получение данных элемента справочника, документа (по ссылке), данных записи независимого регистра сведений (по ключу), данных набора записей подчинённого регистра (по регистратору);
  • Редактирование данных одного элемента справочника, документа и другого ссылочного объекта;
  • Создание нового элемента справочника, документа, набора записей;
  • Проведение одного документа, старт бизнес-процесса.

В качестве протокола доступа платформа использует протокол OData версии 3.0. Это открытый веб-протокол для запроса и обновления данных. Он позволяет оперировать данными, используя в качестве запросов HTTP-команды. Получать ответы можно в формате Atom/XML или JSON.

В платформе реализована только серверная часть REST сервисов. То есть прикладное решение может автоматически поставлять свою функциональность через REST сервисы. Для взаимодействия со сторонними REST сервисами из «1С:Предприятия 8» (для организации клиентской части) можно использовать имеющиеся в платформе средства работы с HTTP.

REST интерфейс

Основная задача REST интерфейса прикладных решений заключается в интеграции со сторонними системами. И тут проблемы не возникает, ведь клиенты OData существует практически для всех значимых платформ:

  • Мобильные: iOS, Windows Phone, Android;
  • Серверные/настольные: .NET, Java, PHP, Objective-C, Ruby, JavaScript;
  • Поддержка в системах управления содержимым (CMS): Drupal, Joomla.

Использовать стандартный интерфейс OData прикладного решения просто:

  • В конфигураторе REST интерфейс публикуется на веб-сервере;
  • После этого объекты прикладного решения становятся доступны через этот интерфейс;
  • Способы аутентификации OData клиентов полностью совпадают со способами, используемыми для веб-сервисов;
  • OData клиенты могут запросить через HTTP документ метаданных, описывающий доступные объекты прикладного решения;
  • OData клиенты выполняют операции создания, чтения, модификации и удаления данных прикладного решения.

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

В REST интерфейсе доступны реквизиты объектов конфигурации, доступны операции создания, чтения, модификации и удаления данных, а также некоторые методы встроенного языка. Например:

  • Для документа — проведение и отмена проведения;
  • Для задачи — выполнение;
  • Для бизнес-процесса — старт;
  • Для регистра сведений — получение среза первых и среза последних;
  • Для регистра накопления и регистра бухгалтерии — получение остатков, оборотов, остатков и оборотов;
  • Для регистра расчета — получение данных графика, фактического периода действия, перерасчета и базы.

В случае ошибочной ситуации «1С:Предприятие 8» возвращает ответ с HTTP-статусом 4XX или 5XX. Статус 4XX говорит о неверных действиях клиента, статус 5XX — об ошибке на сервере. В случае статуса 4XX «1С:Предприятие 8» пытается помочь клиенту понять причину ошибки и может передать дополнительный внутренний код ошибки и информационное сообщение.

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

При получении списков данных можно использовать стандартные условия фильтрации ODATA запросов. Например, получить товары, у которых цена меньше или равна 3,5 или больше 200:

GET /OData_Tests_Infobase/odata/standard.odata/Catalog_Goods?$filter=Price le 3.5 or Price gt 200

Авторы: Е.Ю. Хрусталева

Реализация REST API в обработке 1C

Функции для обмена данными и HTTP-методы, которые выполняются в следующих функциях:

Название функции в 1С для обмена данными с Mobile SMARTS HTTP-метод Параметры
Общие функции
REST_API_ПодключитьсяКБазеSMARTS GET нет
REST_API_ПолучитьОписаниеБазы GET BaseInfo
REST_API_ПолучитьТокенSMARTS GET username = Логин
password = Пароль
Работа с настройками
REST_API_ПолучитьЗначениеНастройки
БазыSMARTS
GET «CustomSettings («+ КлючНастройки + «)»
REST_API_ЗаполнитьНастройкиSMARTS GET CustomSettings
REST_API_ЗаписатьНастройкиSMARTS POST CustomSettings
name = КлючНастройки
value = ЗначениеНастройки
REST_API_УдалитьНастройкиSMARTS DELETE «CustomSettings («+ КлючНастройки + «)»
Работа со справочниками
REST_API_ВыгрузитьТаблицуНаСервер
SMARTS
  1. для номенклатуры — «Products/BeginUploadProducts»
  2. для ячеек — «Cells/BeginUpdate»
  3. для прочих сравочников — «Tables/»+ИмяТаблицыENG+
  4. «/BeginOverwrite»
  1. для номенклатуры — «Products/AddProductsToUpload»
  2. для ячеек — «Cells»
  3. для прочих справочников — «Tables/»+ИмяТаблицыENG
  1. для номенклатуры — «Products/ResetUploadProducts»
  2. для ячеек — «Cells/ResetUpdate»
  3. для прочих справочников — «Tables/»+ИмяТаблицыENG+
  4. «/ResetOverwrite»
  1. для номенклатуры — «Products/EndUploadProducts»
  2. для ячеек — «Cells/EndUpdate»
  3. для прочих справочников — «Tables/»+ИмяТаблицыENG+»/EndOverwrite»
  1. для номенклатуры — «Products/BeginUploadProducts»
  2. для ячеек — «Cells/BeginUpdate»
  3. для прочих сравочников — «Tables/»+ИмяТаблицыENG+
  4. «/BeginOverwrite»
  1. для номенклатуры — «Products/EndUploadProducts»
  2. для ячеек — «Cells/EndUpdate»
  3. для прочих справочников — «Tables/»+ИмяТаблицыENG+
  4. «/EndOverwrite»
  1. Получение реквизитов шапки документа — «DocTypes (‘» +
  2. СтруктураДокумента.uni + «’)?$expand=fields»
  3. Получение реквизитов табличной части документа — «DocTypes (‘» +
  4. СтруктураДокумента.uni + «’)?$expand=columns»
  5. Получение списка доп.таблиц, которые не определены в метаданных
  6. документа, но существуют у самого экземпляра документа — «DocTypes (‘» + СтруктураДокумента.uni + «’)?$expand=tables ($expand=fields)»
  1. Редактировать/добавить документ — «Docs» + данные документа
  2. Выгрузить табличную часть, например, declaredItems — «Docs (‘»+idДокумента+»‘)/declaredItems»
  3. Принудительное сохранение документа, когда
    все строки уже загружены — «Docs (‘»+idДокумента+»‘)/EndUpdate»

Примеры запросов и ответов, используемые при обмене между 1С и Mobile SMARTS:

10.0.0.29 — пример IP-адреса сервера Mobile SMARTS
e1fc20aa-ff42-47df-9e5b-a94ba38b8935 — пример ID базы Mobile SMARTS

REST_API_ПодключитьсяКБазеSMARTS

нет HTTP-метод: GET Код состояния: 200 Ответ сервера:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *