1С бухгалтерия

Несколько примеров работы с регистром сведений, подчиненным регистратору (поэтому с суффиксом RecordType).

Срез последних:
http://localhost/test/odata/standard.odata/InformationRegister_Аттестация_RecordType/SliceLast(Period=datetime'2020-09-01T00:00:00')?$format=json

Данные с фильтрацией и с выбором нескольких полей:

http://localhost/test/odata/standard.odata/InformationRegister_Аттестация_RecordType/SliceLast(Period=datetime'2020-09-01T00:00:00',Condition='ПериодКонтроля_Key eq guid'61fe1cdc-ca01-11e3-9f8a-000c290d648a' and ФизическоеЛицо_Key eq guid'9810cac8-6ade-11e7-8a9e-000c29c51bb4'')?$format=json&$select=ВидВедомости,Отметка_Key

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

http://localhost/test/odata/standard.odata/InformationRegister_Аттестация_RecordType/SliceLast(Period=datetime'2020-09-01T00:00:00',Condition='ПериодКонтроля_Key eq guid'61fe1cdc-ca01-11e3-9f8a-000c290d648a' and ФизическоеЛицо_Key eq guid'9810cac8-6ade-11e7-8a9e-000c29c51bb4'')?$format=json&$select=ВидВедомости,Отметка_Key,Дисциплина_Key,ФормаОбучения/Description,Отметка/ПриоритетОценки&$expand=ФормаОбучения,Отметка


Развернутся реквизиты только того справочника, на который открыт доступ для odata. И ключевой параметр &expand, который определяет какие данные выводимой сущности будут разворачиваться.

Выборка из регистра сведений за период:
http://localhost/test/odata/standard.odata/InformationRegister_СостояниеСтудентов_RecordType?$format=json&$filter=Period ge datetime'2020-08-01T00:00:00' and Period le datetime'2020-08-01T23:59:59'


Выборка документов за период:
http://localhost/test/odata/standard.odata/Document_Приказы?$format=json&$filter=Date ge datetime'2020-08-01T00:00:00' and Date le datetime'2020-08-01T23:59:59'


Выборка из табличной части документа уже не даст делать выборку по дате, поэтому как вариант по ссылке на документ:
http://localhost/test/odata/standard.odata/Document_Приказы_ИмяТаблицы?$format=json&$filter=Ref_Key eq guid'9e571bb2-ece5-11ea-7383-000c29c51bb4'


Создание документа:
http://localhost/test/odata/standard.odata/Document_Ведомость?$format=json
В данном случае нужно будет использовать метод POST и передавать тело запроса.

{
"Date": "0020-10-28T12:00:00",
"ВидВедомости": "АттестационнаяВедомость",
"ВидКонтроля": "bfc1af83-bad3-4089-a05d-f5826b28dd17"
"ДанныеПоАттестации": [
{
"LineNumber": "1",
"ФизическоеЛицо_Key": "db60b5af-7ed2-11e4-8279-6c3be51acb55",
"ЗачетнаяКнига_Key": "28b0e3a2-8480-11e5-8e89-000c29c51bb4"
}
]
}

В данном случае ДанныеПоАттестации это табличная часть документа.

После сохранения документа guid не возвращается в теле ответа, но возвращается присвоенный новому документу номер, поэтому guid можно получить, например так:

http://localhost/test/odata/standard.odata/Document_Ведомость?$format=json&$filter=Number eq '000165654'
Плюсом еще лучше конечно дату документа добавить, если нумерация периодическая.


Изменение документа:
Метод запроса будет PATCH.
Адрес: http://localhost/test/odata/standard.odata/Document_Ведомость(guid'52655844-18fa-11eb-8dba-e0699590fb50')?$format=json
Тело запроса:

{
"Комментарий": "Тест"
}

В данном случае поменяли комментарий документа.


Удаление документа:
Метод: DELETE
Адрес тот же: http://localhost/test/odata/standard.odata/Document_Ведомость(guid'52655844-18fa-11eb-8dba-e0699590fb50')

Комментарии

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Жаль, что автор примеры придумывал и не проверял, просто откуда-то скопипастил. Выборка документов по датам так не работает!!!

admin аватар

Жаль что находятся такие всезнайки, которые бездоказательно берутся обвинять других. Скажи тогда откуда я скопипастил. Или может весь мой блог это сплошной копипаст? Или все не копипаст, а вот именно выборку документов я откуда-то скопипастил?

Как выбрать записи только с заполненным атрибутом?

admin аватар

Не пробовал подобные выборки. Наверное, что-то типа:

/Catalog_Номенклатура?$filter=Description ne ''

Можно ли получить результат запроса к связанным таблицам ? Можно ли передать в качестве параметра запроса массив (список) ?

admin аватар

По связанным данным может я не так понял, но приведу на всякий случай пример из ИТС, где раскрывается должность:

localhost/REST/odata/standard.odata/Catalog_Сотрудники?$format=json&$select=Description, ДатаРождения, Должность&$expand=Должность

А по поводу передачи списка в качестве параметра очень сомневаюсь. Т.к. если фильтрация происходит с помощью GET запроса, то там есть ограничение на количество символов, ну а если массив не большой, то тогда можно и логическое or использовать. Хотя могу ошибаться, знания ограничиваются в основном тем, что написано в ИТС.

Спасибо! Помогло

Добрый день! Как одновременно для регистра накопления указать выборку за период и выборку по нескольким полям?

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".