Работа с API Производственного календаря позволяет получить информацию о типе конкретного дня, изменить тип дня, а также получить список типов дней за определенный период.
Работать можно с текущим годом и +- 1 годом от текущего (предыдущий год и следующий год).
Предварительные действия
Получить токен
https://corteos-platform.atlassian.net/wiki/x/ti4MПолучить клиентский контекст (если работа ведется со стороны агента)
https://corteos-platform.atlassian.net/wiki/x/ysUK
Web Services
Описание службы:
https://stage1.corteos.ru/XmlGate/V3/StaticData/ProductionCalendar/ProductionCalendarManagement.asmx
Файл WSDL:
Сценарии использования
Метод GET - Получение информации о дате
Возвращает тип дня из Производственного календаря организации или из календаря по умолчанию, если календарь для организации не создан.
После редактирования типа дня через интерфейс есть вероятность получить по API старые данные до обновления кэша - он обновляется раз в 5 минут.
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cor="http://corteos.ru"> <soapenv:Header> <cor:AuthHeader> <!--Optional:--> <cor:Token>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</cor:Token> </cor:AuthHeader> </soapenv:Header> <soapenv:Body> <cor:Get> <cor:date>2024-12-21</cor:date> <cor:id_Organization>12520</cor:id_Organization> </cor:Get> </soapenv:Body> </soapenv:Envelope>
Запрос состоит из следующих атрибутов:
<cor:Token>string</cor:Token>
- токен, полученный при авторизации.<cor:date>dateTime</cor:date>
- дата, тип дня которой нужно узнать, в формате YYYY-MM-DD.<cor:id_Organization>int</cor:id_Organization>
- идентификатор организации.
Для работы с календарем договора (по умолчанию) id_Organization
должен исключаться из запроса, либо заполняться как “0”.
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetResponse xmlns="http://corteos.ru"> <GetResult> <Trace ResponseDate="2024-12-19T19:53:10.0078386+03:00" SessionID="1JGGVDC3M972B" IP="109.198.209.134" WebSite="https://stage10.corteos.ru"/> <Errors/> <ResponseDetails> <Date>2024-12-21T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </ResponseDetails> </GetResult> </GetResponse> </soap:Body> </soap:Envelope>
В ответе веб-сервиса нам следует обратить внимание на ResponseDetails
, выглядит следующим образом:
<ResponseDetails> <Date>2024-12-21T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </ResponseDetails>
<Date>2024-12-21T00:00:00</Date>
- дата, тип дня которой получили.<id_Organization>12520</id_Organization>
- идентификатор организации (если был указан в запросе).<Type>DayOff</Type>
- тип дня. Возможные значения:Workday- рабочий день;
DayOff- выходной день;
Holiday- праздничный день.
В случае возникновения ошибок, их описание будет указано в Errors
.
Пример ответа с ошибкой:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetResponse xmlns="http://corteos.ru"> <GetResult> <Trace ResponseDate="2025-01-15T12:40:10.6459732+03:00" SessionID="1JGDZFUDCJE36" IP="212.233.125.182" WebSite="https://stage10.corteos.ru"/> <Errors> <UniversalApiError Type="ArgumentException" Text="Не найдена организация с id_Organization = 12907"/> </Errors> <ResponseDetails> <Date>0001-01-01T00:00:00</Date> <id_Organization xsi:nil="true"/> <Type>Workday</Type> </ResponseDetails> </GetResult> </GetResponse> </soap:Body> </soap:Envelope>
Метод SET - Изменение типа даты в календаре
Меняет тип даты в Производственном календаре организации или в календаре по умолчанию.
Если у организации нет Производственного календаря, то при отправке этого запроса произойдет создание календаря.
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cor="http://corteos.ru"> <soapenv:Header> <cor:AuthHeader> <!--Optional:--> <cor:Token>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</cor:Token> </cor:AuthHeader> </soapenv:Header> <soapenv:Body> <cor:Set> <cor:type>DayOff</cor:type> <cor:date>2025-10-30</cor:date> <cor:id_Organization>12520</cor:id_Organization> </cor:Set> </soapenv:Body> </soapenv:Envelope>
Запрос состоит из следующих атрибутов:
<cor:Token>string</cor:Token>
- токен, полученный при авторизации.<cor:type>string</cor:type>
- тип дня, который меняется. Возможные значения:Workday- рабочий день;
DayOff- выходной день;
Holiday- праздничный день.
<cor:date>dateTime</cor:date>
- дата, тип дня которой нужно меняется, в формате YYYY-MM-DD.<cor:id_Organization>int</cor:id_Organization>
- идентификатор организации.
Для работы с календарем договора (по умолчанию) id_Organization
должен исключаться из запроса, либо заполняться как “0”.
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <SetResponse xmlns="http://corteos.ru"> <SetResult> <Trace ResponseDate="2024-12-20T12:40:08.220259+03:00" SessionID="1JGGVKNEOBU2F" IP="109.198.209.134" WebSite="https://stage10.corteos.ru"/> <Errors/> <ResponseDetails> <Date>2024-10-30T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </ResponseDetails> </SetResult> </SetResponse> </soap:Body> </soap:Envelope>
В ответе веб-сервиса нам следует обратить внимание на ResponseDetails
, выглядит следующим образом:
<ResponseDetails> <Date>2024-10-30T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </ResponseDetails>
<Date>2024-12-21T00:00:00</Date>
- дата, тип дня которой изменили.<id_Organization>12520</id_Organization>
- идентификатор организации (если был указан в запросе).<Type>DayOff</Type>
- тип дня, который изменили.
В случае возникновения ошибок, их описание будет указано в Errors
.
Метод LIST - Список дней за указанный период
Возвращает список дат с их типом из Производственного календаря организации или из календаря по умолчанию, если календарь для организации не создан.
Диапазон дат не должен превышать 100 дней за один запрос.
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cor="http://corteos.ru"> <soapenv:Header> <cor:AuthHeader> <!--Optional:--> <cor:Token>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</cor:Token> </cor:AuthHeader> </soapenv:Header> <soapenv:Body> <cor:List> <cor:dateFrom>2025-02-01</cor:dateFrom> <cor:dateTo>2025-02-05</cor:dateTo> <cor:id_Organization>12520</cor:id_Organization> </cor:List> </soapenv:Body> </soapenv:Envelope>
Запрос состоит из следующих атрибутов:
<cor:Token>string</cor:Token>
- токен, полученный при авторизации.<cor:dateFrom>dateTime</cor:dateFrom>
- дата начата диапазона дат в формате YYYY-MM-DD<cor:dateTo>dateTime</cor:dateTo>
- дата конца диапазона дат в формате YYYY-MM-DD.<cor:id_Organization>int</cor:id_Organization>
- идентификатор организации.
Для работы с календарем договора (по умолчанию) id_Organization
должен исключаться из запроса, либо заполняться как “0”.
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <ListResponse xmlns="http://corteos.ru"> <ListResult> <Trace ResponseDate="2024-12-20T14:19:00.3920494+03:00" SessionID="1JGGVKNEOBU2F" IP="109.198.209.134" WebSite="https://stage10.corteos.ru"/> <Errors/> <ResponseDetails> <DateInfo> <Date>2025-02-01T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </DateInfo> <DateInfo> <Date>2025-02-02T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>DayOff</Type> </DateInfo> <DateInfo> <Date>2025-02-03T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>Workday</Type> </DateInfo> <DateInfo> <Date>2025-02-04T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>Workday</Type> </DateInfo> <DateInfo> <Date>2025-02-05T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>Workday</Type> </DateInfo> </ResponseDetails> </ListResult> </ListResponse> </soap:Body> </soap:Envelope>
В ответе веб-сервиса нам следует обратить внимание на ResponseDetails
, выглядит следующим образом:
<DateInfo> <Date>2025-02-05T00:00:00</Date> <id_Organization>12520</id_Organization> <Type>Workday</Type> </DateInfo>
DateInfo
- контейнер конкретного дня.<Date>2025-02-05T00:00:00</Date>
- дата дня.<id_Organization>12520</id_Organization>
- идентификатор организации.<Type>DayOff</Type>
- тип дня.