Объектно-ориентированное программирование и моделирование
База курса:
Цель курса:
Мы даем вам профессию и готовим к реальной работе
Орг-вопросы
3. Проверьте чтобы вы были записаны тут, допишите свои почтовые ящики (которые вы читаете):
2022.intervolga.ru/imit_2022
Выбрать лист группы, найти ФИО, проверить почту, получить номер темы ЛР
4. Для сдачи лабораторных работ заведите приватный репозиторий на github:
Добавьте antonov@intervolga.ru как collaborator к вашему репозиторию:
Внесите адрес репозитория напротив своей фамилии в таблицу
Если вы все сделали верно, в колонке “Приватный” автоматически загорится слово приватный
Правила ведения репозитория
Советы
ПОД ВОПРОСОМ!!!
Лекция 14: Технологии интеграции: Http-запросы, OData
Публикация базы 1С в Apache на Windows
Установка Apache под Windows
Один из сценариев публикации базы 1С — использование веб-сервера Apache на системе Windows. Это может быть актуально, если мы больше доверяем данному веб-серверу, вместо встроенного в Windows IIS. Описанные действия применимы для любой версии Windows от 7 до Server 2019.
Первым делом необходимо скачать и установить веб-сервер. Список доступных реализаций можно найти по ссылке, а в статье будет использован самый первый из списка дистрибутивов. Он поставляется в виде zip-архива без инсталлятора.
Поэтому нужно скачать архив и разархивировать в любую удобную папку, например, C:\Apache24. 24. В названии папки указан номер версии Apache. В данном случае используется версия 2.4. При публикации информационной базы из командной строки стоит обращать на это внимание, так как с платформой поставляются отдельные библиотеки веб-компонент для версий Apache 2.2 и 2.4.
После разархивирования файла архива, откройте командую строку от имени администратора. Самый простой вариант – это открыть меню Пуск и ввести cmd. После того, как приложение будет найдено щелкнуть по нему правой кнопкой мыши и выбрать пункт меню "Запустить от имени Администратора" ("Run as Administrator").
Установка Apache под Windows
В командной строке переходим в директорию распакованного Apache с помощью команды cd. Например: cd C:\Apache24
В директории Apache вводим команду:
httpd.exe -k install
Установка Apache под Windows
Это установит службу Apache, которой можно будет управлять в окне служб.
Установка Apache под Windows через установщик
По каким-то причинам все новые версии Apache перестал выкладывать в виде самораспаковывающегося дистрибутива.
Скачиваем установщик со страницы официального сайта https://archive.apache.org/dist/httpd/binaries/win32/
Выбираем “no ssl” дистрибутив, если базы будут открыты только внутри нашей локальной сети или “ssl” дистрибутив, если база будет открываться в интернете.
Установка Apache под Windows через установщик
Запускаем скачанный установщик
Заполняем Network Domain: Localhost, Server name: Localhost
Нажимает NEXT, Setup type: Typical NEXT, NEXT, INSTALL.
Finish.
Установка Apache под Windows через установщик
Проверяем запустился ли веб сервер
Для этого открываем любой броузер и указываем адрес страницы http://localhost
Мы должны увидеть страничку с надписью It Works !
Публикация базы
Открываем конфигуратор нашей базы (Запуск 1С обязательно от имени администратора)
Публикация базы
Переходим в “Администрирование” - "Публикация на веб-сервере"
Заполняем имя ЛАТИНСКИМИ БУКВАМИ БЕЗ ПРОБЕЛОВ (можно использовать подчеркивание)
Веб-сервер - Apache
Каталог - по сути произвольный каталог с файлами веб-сервера для текущей базы. Желательно название каталога, что бы совпадало с названием базы (для простоты). Остальные флажки оставляем как на картинке.
Нажимаем "Опубликовать". Если при нажатии опубликовать вы видите сообщение
Невозможно записать c:\Program Files (x86)\Apache .... значит вы запустили 1С не от имени администратора.
Вы должны увидеть сообщение "Публикация выполнена"
На вопрос "Перезапустить ли веб-сервер" - всегда соглашаемся.
Диалог публикации. Подробнее
Кнопка Опубликовать выполняет публикацию на веб-сервере. При публикации происходит создание каталога на диске и настройка указанного веб-сервера для работы с «1С:Предприятием».
Кнопка Отключить выполняет удаление приложения из веб-сервера и каталога публикации, если это необходимо.
Кнопка Сохранить выполняет сохранение параметров, указанных в диалоге публикации на веб-сервере, в файл. При сохранении система запрашивает имя и место расположения файла, в который будет выполнено сохранение. Сохранение будет выполнено в формате файла default.vrd.
Кнопка Загрузить позволяет загрузить для редактирования произвольный файл default.vrd.
Кнопка Закрыть выполняется закрытие диалога.
Кнопка Справка открывает окно со справочной информацией о диалоге публикации.
Диалог публикации. Подробнее
На данной закладке можно задать основные параметры публикации.
Имя. Указывает имя публикации.
Веб-сервер. Указывает, для какого веб-сервера выполняется публикация. Веб-сервера Apache добавляются в список в том случае, если они обнаружены на компьютере. При работе в ОС Linux возможна публикация только для Apache.
В том случае, если система не смогла однозначно определить версию установленного на компьютере веб-сервера Apache (2.2 или 2.4), в списке будут присутствовать обе версии веб-сервера. При этом следует учитывать, что для веб-сервера Apache версии 2.2 и 2.4 различаются изменения, выполняемые в конфигурационном файле веб-сервера. Поэтому неверное указание версии веб-сервера приведет к неработоспособности публикации.
Диалог публикации. Подробнее
Каталог. Указывает физический каталог на диске, в котором будет находиться файл default.vrd и куда будет отображен виртуальный каталог веб-сервера. Каталог должен существовать.
Публиковать доступ для клиентских приложений. Если флажок установлен, возможна работа с опубликованной информационной базой с помощью тонкого, мобильного и веб-клиентов.
Публиковать стандартный интерфейс OData. Отвечает за возможность получения доступа к стандартному интерфейсу OData прикладного решения.
Публиковать систему аналитики. Включает возможность взаимодействия сервера системы «1С:Аналитика» и системы «1С:Предприятие». После публикации в интерфейсе клиентского приложения становится доступной команда открытия веб-интерфейса системы «1С:Аналитика».
Диалог публикации. Подробнее
Публиковать дистрибутив тонкого клиента. Определяет возможность получения и установки клиентского приложения (тонкого клиента), если не совпадают версии клиентского приложения и сервера. В качестве дистрибутива используется zip-архив в свойстве Расположение публикуемого дистрибутива:
● Windows x86 ‑ дистрибутив 32-разр. кл. приложения для Windows.
● Windows x86_64 ‑ дистрибутив 64-разр. приложения для Windows.
● MacOS x86_64 ‑ дистрибутив 64-разр. кл приложения для macOS.
Использовать аутентификацию операционной системы. Разрешает системе установить возможность аутентификации ОС на веб-сервере IIS.
Адрес перехода при окончании работы веб-клиента позволяет указать URL, на который будет выполняться переход после окончания работы веб-клиента.
Диалог публикации. Закладка Web-сервисы
Публиковать Web-сервисы по умолчанию. Дает возможность использования в данной ИБ Web-сервисов, которые опубликованы без явного указания разрешения использования.
Публиковать Web-сервисы. Установка данного флажка приведет к тому, что будут опубликованы Web-сервисы, созданные в конфигурации и перечисленные в таблице ниже
Если флажок в первой колонке сброшен, то Web-сервис нельзя будет вызвать.
Колонка “Имя” содержит имя Web-сервиса, как при создании.
Колонка “Адрес” содержит псевдоним имени публикуемого Web-сервиса. Обращение к Web-сервису возможно как по имени, так и по псевдониму. Псевдоним Web-сервиса можно редактировать в окне публикации.
Web-сервисы в подключенных расширениях, не отображаются в данной таблицы и могут быть опубликованы только редактированием файла default.vrd вручную. Решается установкой признака Публиковать Web-сервисы расширений по умолчанию.
Диалог публикации. Закладка HTTP-сервисы
Закладка HTTP сервисы предназначена для управления возможностью доступа к прикладному решению с помощью HTTP-сервисов.
Публиковать HTTP сервисы по умолчанию. Установка данного флажка приведет к тому, что будут опубликованы HTTP-сервисы, созданные в конфигурации и перечисленные в таблице, расположенной ниже флажка.
Таблица ниже по умолчанию содержит перечень публикуемых HTTP-сервисов и позволяет управлять публикацией каждого HTTP-сервиса. Первая колонка управляет публикацией конкретного HTTP-сервиса. Если флажок сброшен, то данный HTTP-сервис будет запрещен к использованию (его нельзя будет вызвать).
Вторая колонка “Имя” содержит имя HTTP-сервиса, как оно задано при создании.
HTTP-сервисы в расширениях, не отображаются в данной таблицы и могут быть опубликованы только правкой файла default.vrd вручную.
Публиковать HTTP-сервисы расширений по умолчанию. Отвечает за возможность использования HTTP-сервисов, которые поставляются в расширениях конфигурации.
HTTP-запросы.
HTTP-запросы
В этом блоке рассмотрим, как из системы «1С:Предприятие» можно обратиться к любому произвольному HTTP-сервису, опубликованному в Интернете.
Рассмотрим примеры получения, удаления и добавления данных прикладного решения «1С:Предприятия» с помощью HTTP-сервисов, разработанных нами на прошлой лекции
Для обращения к HTTP-сервисам и REST-интерфейсу (OData) используются такие объекты встроенного языка, как HTTPСоединение, HTTPЗапрос и HTTPОтвет.
HTTP-запросы
Для того чтобы изменить (добавить, удалить, прочитать и т. д.) данные информационной базы через REST-интерфейс, нужно создать HTTP-соединение с сервером (например, "localhost"), на котором опубликованы HTTP-сервисы (как созданные разработчиком, так и составляющие автоматический REST-интерфейс) для прикладного решения. Затем создать HTTP-запрос на основе адреса ресурса данных, которые требуется прочитать или изменить с помощью запроса. После этого нужно записать изменяемые данные в строку JSON/XML (или в файл, откуда будет считано тело запроса при отправке) и установить тело HTTP-запроса из этой строки (или установить имя файла тела запроса). И затем с помощью HTTP-соединения отправить запрос к серверу с соответствующим методом (POST, PUT/PATCH, DELETE и др.).
HTTP-запросы
Чтобы выполнить HTTP-запрос нужного вида, у объекта HTTPСоединение существуют методы:
Обращение к HTTP-сервисам. Получение данных
Сначала рассмотрим пример получения данных при помощи HTTP-запросов к HTTP-сервисам, разработанных нами ранее
Обработчик команды «ПолучитьДанные»
В этом обработчике в переменной АдресРесурса мы запоминаем значение реквизита обработки Адрес, в котором хранится URL для обращения к HTTP-сервису.
Затем вызываем процедуру ВыполнитьЗапрос() и передаем в нее в качестве параметров адрес ресурса и имя метода ("GET"), котoрый надо выполнить на сервере
Обращение к HTTP-сервисам. Получение данных
В этой процедуре в качестве имени сервера мы указываем "localhost", создаем на его основе объект HTTPСоединение и соединяемся с этим сервером.
Далее на основе URL, содержащегося в параметре АдресРесурса, создаем HTTPЗапрос. Затем, в случае если это не DELETE- и не GET-запрос, устанавливаем тело запроса из строки JSON, содержащейся в параметре СтрокаТелаЗапроса.
Обращение к HTTP-сервисам. Получение данных
После этого при помощи метода ВызватьHTTPМетод() объекта HTTPСоединение отправляем на сервер запрос (в данном случае с методом GET) к информационной базе. Ответ сервера в виде объекта HTTPОтвет будет возвращен в переменную Результат. C помощью метода ПолучитьТелоКакСтроку() объекта HTTPОтвет мы получаем тело ответа в виде строки и выводим его в сообщение.
Обращение к HTTP-сервисам. Получение данных
Проверим получение списка всех сотрудников из справочника Сотрудники. Это можно сделать с помощью HTTP-сервиса Сотрудники с корневым URL employees. В поле ввода демонстрационной обработки укажем тот же URL, который мы вводили для этого в браузере, – /REST/hs/employees (только без имени сервера) и нажмем кнопку Получить данные. В результате в окне сообщений мы увидим ответ сервера, содержащий список всех сотрудников
Обращение к HTTP-сервисам. Ограничение
Обращение к HTTP-сервисам. Удаление данных
Чтобы отправить на сервер DELETE-запрос, добавим команду УдалитьСотрудника. Обработчик команды заполним следующим образом
Автоматический REST-интерфейс (OData)
REST-интерфейс (OData)
Платформа «1С:Предприятие» может автоматически создать REST-интерфейс для любого прикладного решения. Благодаря своей универсальности и кроссплатформенности REST-интерфейс является очень удобным инструментом для интеграции прикладного решения со сторонними системами.
Для того чтобы сторонние системы могли обращаться к прикладному решению через REST-интерфейс, этот интерфейс достаточно опубликовать на веб-сервере и указать, какие прикладные объекты будут доступны в нем. После этого внешние приложения с помощью HTTP-запросов через REST-интерфейс могут читать данные «1С:Предприятия», изменять их, создавать новые объекты данных и удалять существующие.
Автоматический REST-интерфейс может использоваться следующих задач:
REST-интерфейс (OData)
Доступ к данным приложения через REST-интерфейс позволяет выполнять следующие типичные операции:
В качестве протокола доступа платформа использует протокол OData версии 3.0. Это открытый веб-протокол для запроса и обновления данных. Он позволяет оперировать данными, используя в качестве запросов HTTP-команды. Получать ответы можно в формате Atom/XML или JSON.
REST-интерфейс (OData)
Клиенты OData существуют практически для всех значимых платформ:
Рассмотрим для простоты работу с автоматическим REST-интерфейсом на примере обращения к нему (клиентская часть) из этой же самой информационной базы. В реальной жизни такая задача вряд ли встретится, но взаимодействие одной базы «1С:Предприятия» с другой базой «1С:Предприятия» через REST-интерфейс – это довольно частая задача. И решается она точно такими же средствами.
Для обращения к REST-интерфейсу используются такие объекты встроенного языка, как HTTPСоединение, HTTPЗапрос и HTTPОтвет
REST-интерфейс (OData)
В REST-интерфейсе доступны практически все основные объекты конфигурации: справочники, документы, константы, перечисления, планы обмена, регистры накопления, расчета, бухгалтерии и регистры сведений, виртуальные таблицы периодического регистра сведений, регистров бухгалтерии и регистров накопления, планы счетов, видов характеристик и видов расчета, бизнес-процессы, задачи и журналы документов.
В REST-интерфейсе доступны также реквизиты объектов конфигурации, табличные части и реквизиты табличных частей, доступны операции создания, чтения, модификации и удаления данных, а также некоторые методы встроенного языка. Например:
При чтении и записи данных с помощью REST-интерфейса платформа выполняет все обычные проверки прав и вызывает обработчики событий.
OData. Правила формирования URL запроса
Обращение к стандартному интерфейсу OData выполняется с помощью HTTP-запроса по определенному URL. URL формируется специальным образом и состоит из следующих частей:
Адрес информационной базы – это обычный URL, по которому выполняется доступ, например, к информационной базе с помощью веб-клиента. Например, http://localhost/base или http://host.server.zone/data-base.
Признак обращения к стандартному интерфейсу Odata – это последовательность символов в URL: /odata/standard.odata.
Имя ресурса, к которому выполняется обращение – это особым образом сформированный идентификатор ресурса (возможно, с параметром) или предопределенные ресурсы. Например, $metadata или Catalog_Контрагент(guid'value').
Параметры обращения к ресурсу. В качестве параметров обращения выступают параметры в виде, принятом для HTTP-запросов: ?ключ=значение&ключ2=значение2.
OData. Правила формирования URL запроса
При обращении к ресурсу могут использоваться специальные ключевые слова, имеющие специальное назначение:
OData. Правила формирования URL запроса
После того как сформирован URL необходимого ресурса, следует выполнить HTTP-запрос нужного вида. В зависимости от того, какая операция выполняется, используется соответствующий HTTP-метод:
В результате выполнения запроса клиентское приложение получает ответ сервера, который кроме кода состояния может содержать различные данные, предоставленные сервером, в виде XML- или JSON-документа.
OData. Правила формирования имени ресурса
При обращении к какому-либо ресурсу его идентификатор формируется по следующему принципу: ПрефиксИмени_ИмяОбъектаКонфигурации_СуффиксИмени. С помощью стандартного интерфейса OData можно получить доступ к следующим объектам
OData. Правила формирования имени ресурса
ИмяОбъектаКонфигурации – имя объекта конфигурации, как оно задано при разработке прикладного решения в конфигураторе.
СуффиксИмени – предназначен для уточнения имени ресурса и является необязательной частью имени. В качестве суффикса имени могут выступать следующие выражения:
Если объект обладает табличной частью, то для получения доступа ко всем записям этой табличной части необходимо добавить имя табличной части после имени самого объекта. Например, для получения всех строк табличной части Товары всех документов РасходТовара будет необходимо выполнить GET-запрос по следующему адресу: http://localhost/base/odata/standard.odata/Document_РасходТовара_Товары.
OData. Правила формирования условий отбора
При получении данных можно отфильтровать их, если это требуется. Для этого предназначен специальный язык, позволяющий описывать условия, которым должны соответствовать данные, которые возвращает стандартный интерфейс OData. Описание отбора начинается с ключевого слова $filter, после которого следует собственно условие. Поддерживаются следующие операции
OData. Правила формирования условий отбора
Например, используя следующее условие, можно получить товары из справочника Товары с именем Молоко и ценой менее 2500: http://localhost/odata/standard.odata/Catalog_Товары?$filter=Имя eq 'Молоко' and Цена lt 2500.
Для группировки условий и указания приоритета операций их можно заключить в скобки. Например: http://localhost/odata/standard.odata/Catalog_Товары?$filter=(Цена add 5) gt 10.
При формировании условий запроса или формировании реквизита, по которому выполняется упорядочивание, могут применяться функции для работы со строками (substring (), startswith(), endswith() и др.), с датами (year(), dateadd(), dayofyear() и др.) и некоторые другие.
OData. Примеры использования
Прежде всего, чтобы прикладное решение стало доступно через REST-интерфейс, опубликуем интерфейс OData для этого решения на веб-сервере.
Затем, для того чтобы объекты конфигурации стали доступны через стандартный интерфейс OData, необходимо разрешить это с помощью метода глобального контекста УстановитьСоставСтандартногоИнтерфейсаOData().
Для примера с помощью команды сделаем доступными справочники Поставщики, Должности, Сотрудники и Товары, документ ПоступлениеТоваров и регистр сведений ЦеныТоваров
OData. Пример получения всех данных справочника
В демо базе существует справочник Поставщики. Это справочник содержит следующие данные.
Задача: нужно получить все данные из этого справочника.
Следует иметь в виду, что REST-интерфейс по умолчанию возвращает данные в формате atom-xml. Это «наследие» стандарта. По современным же представлениям приоритетным форматом является JSON. Поэтому во всех примерах в списке параметров запроса мы укажем, что данные должны быть возвращены именно в этом формате – $format=json.
OData. Пример получения всех данных справочника
В качестве имени сервера мы просто указываем "localhost" и создаем на его основе объект HTTPСоединение.
Затем в переменной АдресРесурса мы формируем URL запроса для обращения к данным нашего справочника (…/Catalog_Поставщики?…). Поскольку нам нужно получить все данные справочника, мы просто указываем для этого префикс Catalog_ и имя справочника.
Далее на основе этого URL создаем HTTPЗапрос
OData. Пример получения всех данных справочника
…и выполняем GET-запрос к информационной базе при помощи метода Получить() объекта HTTPСоединение. Ответ сервера в виде объекта HTTPОтвет будет возвращен в переменную Результат. После этого с помощью метода ПолучитьТелоКакСтроку() объекта HTTPОтвет мы получаем тело ответа в виде строки и выводим его в сообщение. Если при получении ответа сервера возникнут ошибки, будет вызвано исключение.
OData. Пример получения всех данных справочника
OData. Пример получения выборочных данных и сортировка
Задача: существует справочник Должности. Этот справочник содержит следующие данные.
Нужно получить только значения полей справочника Ref_Key (ссылка) и Description и отсортировать их по возрастанию кодов должностей
OData. Пример данных по ссылке
Задача: необходимо получить все данные из справочника Должности для конкретной должности с известным идентификатором.
Поскольку справочник – это ссылочный объект конфигурации, каждая запись справочника обладает уникальным идентификатором – ссылкой. Эта ссылка содержится в поле Ref_Key. Получив предыдущий ответ, можно узнать из него Ref_Key нужного элемента и в следующих запросах использовать его, указав значение идентификатора в скобках после имени ресурса – (guid'…').
Поскольку у справочника ключевое поле одно, то можно не указывать его имя, а сразу писать в скобках после имени справочника guid'…'. Если же ключевых полей несколько, то имена всех этих полей вместе с их значениями надо перечислять в скобках после имени ресурса: (Ref_Key=guid'…', LineNumber=…)
OData. Отбор записей по условию
Задача: Требуется отфильтровать записи справочника Поставщики так, чтобы из списка поставщиков отбирались те, чье наименование начинается на «ООО». Для описания условия отбора воспользуемся функцией startswith()
В результате в ответ сервера будут включены только данные двух из трех поставщиков, удовлетворяющих условию отбора.
Задача: требуется отфильтровать записи справочника Сотрудники так, чтобы из списка сотрудников отбирались родившиеся в 1980 году. Для описания условия отбора воспользуемся функцией year()
OData. Получение данных связанных сущностей (ссылок)
Параметр $expand позволяет вместе с результатами основного запроса получать значения связанных сущностей, что позволит не запрашивать каждую сущность отдельно.
OData. Условие отбора по реквизитам табличных частей
При получении данных через REST-интерфейс можно не только выполнять отбор по реквизитам объектов конфигурации и их табличных частей, но и накладывать условия отбора на элементы коллекций. Для этого необходимо использовать лямбда-функции. Система поддерживает использование следующих лямбда-функций:
Задача: нужно получить список документов ПоступлениеТоваров, у которых цена хотя бы одного поступившего товара (значение реквизита Цена табличной части Товары) больше 3000.
В результате в ответе сервера будут содержаться данные двух из трех документов (Number: 000000001, 000000002), в состав которых входит хотя бы одна строка табличной части, удовлетворяющая условию
OData. Условие отбора по реквизитам табличных частей
Задача: нужно получить список документов ПоступлениеТоваров, у которых цена каждого поступившего товара (значение реквизита Цена табличной части Товары) больше 3000.
В результате в ответе сервера будут содержаться данные только одного документа (Number: 000000002), в составе которого все строки табличной части удовлетворяют заданному условию
OData. Получение данных регистра сведений
В базе есть регистр сведений ЦеныТоваров.
Задача: требуется получить срез последних записей регистра сведений ЦеныТоваров, то есть получить последние актуальные цены товаров на текущую дату. Для этого воспользуемся функцией SliceLast().
OData. Получение данных регистра сведений
Для наглядности мы получили связанные данные из справочника товаров с помощью параметра $expand и вывели название товара (Товар/Description) в списке полей.
OData. Модификация данных прикладного решения
Мы рассматривали примеры получения данных через REST-интерфейс, то есть чтения данных с сервера методом GET. Теперь посмотрим как можно изменять, добавлять и удалять данные информационной базы.
Как уже говорилось, запросы на чтение данных можно выполнять непосредственно в браузере. Остальные действия, модифицирующие данные информационной базы, не могут быть выполнены подобным образом.
Для этого нужно записать изменяемые или добавляемые данные в строку JSON, затем установить HTTP-соединение с сервером, на котором опубликован интерфейс OData для прикладного решения. После этого создать HTTP-запрос на основе URL модифицируемых данных, установить тело HTTP-запроса из строки JSON и отправить запрос к серверу с соответствующим методом (POST, PUT/PATCH, DELETE).
OData. Добавление данных
Задача: нужно добавить новую запись в справочник Должности.
Обработчик команды, добавляющей данные:
В этом обработчике в переменной АдресРесурса мы формируем URL запроса для обращения к данным нашего справочника.
Затем с помощью функции СформироватьДобавляемыеДанные(), которая будет рассмотрена ниже, мы записываем добавляемые данные в строку JSON и возвращаем ее в переменную СтрокаТелаЗапроса.
После этого вызываем процедуру ВыполнитьЗапрос() и передаем в нее в качестве параметров адрес ресурса, строку тела запроса и имя метода ("POST"), котoрый надо выполнить на сервере.
OData. Добавление данных
При помощи метода ВызватьHTTPМетод() объекта HTTPСоединение отправляем на сервер POST-запрос к информационной базе. Ответ сервера в виде объекта HTTPОтвет будет возвращен в переменную Результат. C помощью метода ПолучитьТелоКакСтроку() объекта HTTPОтвет мы получаем тело ответа в виде строки и выводим его в сообщение.
В результате в справочник будут добавлены новые данные, записанные в строку JSON в функции СформироватьДобавляемыеДанные()
OData. Добавление данных
В этой функции методом потоковой записи с помощью объекта ЗаписьJSON мы записываем в строку JSON наименование (свойство Description) новой должности, которую мы хотим добавить в справочник Должности.
В результате при выполнении команды по добавлению данных на сервер будет отправлен POST-запрос к информационной базе. Ответ сервера в виде строки будет содержать данные нового элемента, добавленного в справочник.
OData. Изменение данных
Задача: необходимо изменить некоторые поля (Код, ДатаРождения и Должность) у конкретного элемента справочника Сотрудники. Поскольку нужно изменить не все, а только часть полей записи справочника, для этого нужно обратиться к элементу справочника с конкретной ссылкой и отправить на сервер PATCH-запрос с изменяемыми данными.
OData. Изменение данных
Поле Должность – это ссылочное поле, которое ссылается на справочник Должности, поэтому указываем для него имя свойства как "Должность@odata.bind", а значение – "Catalog_Должности(guid'524ffe8a-789f-11e9-babb-642737df2048')".
OData. Удаление данных
Задача: нужно удалить конкретную запись из справочника Должности. Для этого нужно обратиться к элементу справочника с конкретной ссылкой и отправить на сервер DELETE-запрос.
В результате запись с указанным идентификатором будет удалена из справочника Должности, а тело ответа сервера будет пустым.
OData. Типичные ошибки
Рассмотрим типичные ошибки, возникающие при обращении к REST-интерфейсу прикладного решения. Ошибки могут возникать как на стороне клиентского приложения, так и на стороне сервера. В случае возникновения ошибки на клиенте сервер пытается уточнить причину ошибки и может передать клиентскому приложению дополнительный внутренний код ошибки и информационное сообщение в теле ответа.
В первую очередь нужно понять, работает ли вообще REST-интерфейс с интересующей нас информационной базой. Для этого достаточно в браузере просто набрать URL: <путь публикации базы>/odata/standard.odata. Должен вернуться следующий ответ сервера
Этот ответ говорит о том, что интерфейс работает, но для интерфейса OData недоступны никакие объекты конфигурации.
OData. Типичные ошибки
Пример: при указании адреса ресурса ошиблись в имени объекта конфигурации
Ответ сервера
OData. Типичные ошибки
Пример: при указании адреса ресурса ошиблись в значении ссылки на конкретный объект конфигурации
Ответ сервера
OData. Типичные ошибки
Пример: при указании выражения фильтра ошиблись, например, при написании функции отбора
Ответ сервера
OData. Типичные ошибки
Пример: при указании адреса ресурса ошиблись, например, в имени параметра
Ответ сервера
Задавайте вопросы.
Антонов Виталий Михайлович,
руководитель направления 1С-проектов
ИА ИНТЕРВОЛГА
вертикальная оцифровка бизнеса