Интеграция 1С с ON-LINE new
Сценарий:
Отправка данных производится в формате json
АВТОРИЗАЦИЯ В REST API WEB СЕРВЕРА 1С
Для авторизации используется “Basic HTTP Authentication” при котором в заголовках каждого запроса передается логин и пароль
Пользователь: api_vesta
Пароль: ddT34eTr01
Если логин или пароль не правильный, то в ответ на любой запрос выдается ошибка
{
"data":{},
"datetime_response":"2019-02-18 09:43:06",
"endpoint":"authlist",
"error":true,
"error_msg":"403 Неверные имя или пароль!",
"version":"1.0.0"
}
API ENDPOINT: http://178.238.125.99:80/stl_bp/hs/OnlineLogistics/
ОБМЕН АВР
СОЗДАНИЕ АВР В 1С
При добавлении АВР в 1С происходит проверка суммы профита по грузу в спецификации, в случае если сумма Заявки в 1С не совпадает со спецификацией, то сумма в Заявке обновляется из спецификации.
ПРИМЕР JSON ФАЙЛА, POST ЗАПРОС, ОБЯЗАТЕЛЬНЫЕ ДАННЫЕ
- avr_id
- bill_number
- bill_year
- date_created
- supplie_inn
- client_inn
- contract_id
- contract_number
- contract_date
- manager_uid
- odo_uid
- specifications
- specifications.id
- specifications.cargo_id
- specifications.base
- specifications.sum_with_nds
- specifications.service_date
API_ENDPOINT: http://178.238.125.99:80/stl_bp/hs/OnlineLogistics/addavr/
ПРИМЕР ЗАПРОСА
{
"avr_id": 0, // уникальный идентификатор АВР в системе онлайн
"date_created": "", // Дата создания АВР
"bill_number": "", // Номер АВР - текстовый уникальный номер с уникальностью в рамках года
"bill_year": "", // год АВР - вместе с bill_number образуют уникальный идентификатор АВР за все время
"client_id": 0, // Идентификатор Заказчика в онлайне
"client_id_1s": 0, // Идентификатор Заказчика в 1С
"client_name": "", // Краткое наименование заказчика
"client_inn": "", // ИНН заказчика
"supplie_inn": "", // ИНН поставщика услуги (наша компания)
"contract_id": 0, // Идентификатор договора в Онлане
"contract_id_1s" : "", // Идентификатор договора в 1C
"contract_number" : "", // Номер договора
"contract_date" : "0000-00-00", // Дата договора
"date": "", // Дата счета, Счета-фактуры, Реестра
"date_avr": "", // Дата АВР, в случае, если она отличается от даты счета
"sum": 0, // Конечная Сумма счета с учетом скидок НДС и всего такого
"nds": 0, // В т.ч. НДС
"type_nds": 0, // Тип НДС (0 - не начисляется, 1 - входит в стоимость, 2 - не входит)
"nds_rate": 0, // Ставка НДС
"date_send": "", // Дата отправки счета
"date_pass": "",// Дата доставки (передачи) счета
"pass_person": "", // Лицо, принявшее счет
"status": 0, // Статус (0 - Не подтвержден АВР не подписан Клиеном и не вернулся, 10 - Подтвержден - АВР подписан Клиеном и вернулся)
"date_reassert": "", // Дата подтверждения счета
"date_updating": "", // Дата последнего изменения АВР
"sum_for_month": 0, // Накопленная сумма выставленных счетов по клиенту с начала месяца Скидка участвует только тут, в специфкации с base 4
"discount_rate": 0, // Процент скидки
"discount_sum": 0, // Сумма скидки
"returned": 0, // Отметка о возврате подписанного Клиентом АВР
"date_returned": "", // Дата возврата подписанного Клиентом АВР
"UPD_UID": "", // UID заявки СЭДО (возможно составной)
"UPD_service": "", // Название СЭДО
"UPD_loading_status": 0, // Статус загрузки в СЭДО
"UPD_loading_date": "", // Дата последней загрузки в СЭДО
"UPD_status": 0, // Статус АВР в СЭДО
"avr_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8" // Параметр не пустой, если АВР уже был прогружен, если АВР новый, то параметр - пустой.
"user_id_1s": 0, // Идентификатор пользователя, создавшего АВР, в 1С Возвращается при загрузке в 1С
"imported_to_1s": 0,// Флаг о том, что АВР импортирован в 1С
"imported_to_1s_date": "",// Дата импорта в 1С
"specifications": [
0: {
"id": 0,
"service_name": "", // Наименование услуги
"service_date": "0000-00-00", // Дата услуги
"base" : "", // Список ID грузов 0 - по грузу, 1 - несколько грузов (в случае FTL - один рейс - несколько загрузок/выгрузок на каждый груз добавляется своя спецификация), 2 - основание услуга (сейчас не используется), 3 - произвольная спецификация 4 - скидка
"units": "", // Единицы измерения услуги в тексте. Там строкой указаны:
// - паллет
// - кг.
// - шт.
// - рубли
// - пал
// - кор
// - заказ
"price_for_unit": 0, // Цена за единицу измерения
"amount" : 0, // Количество единиц
"min_sum" : 0, // Минимальная сумма услуги
"sum_without_nds" : 0, // Сумма без НДС
"sum_nds" : 0, // Сумма НДС
"sum_with_nds" : 0, //Сумма с НДС
"date_feed": "0000-00-00 00:00:00", // Дата передачи груза
"date_delivery": "0000-00-00 00:00:00", // Планируемая дата доставки груза
"cargo_id_1s": "" //идентификатор заявки в 1С (которая создается если спецификация по произвольной услуге) получает онлайн в момент первой загрузки АВР в 1С
},
1: {/*....*/}
]
}
ОТВЕТ СЕРВЕРА
В ответе 1С возвращает идентификатор документа 1С
КОДЫ ОТВЕТА HTTP
200 OK - АВР создан успешно
400 Bad Request
401 - нет контрагента с таким ИНН/КПП
407 Conflict - АВР с таким avr_id уже существует (при создании)
408 Conflict - АВР с таким avr_id не найден (при обновлении)
409 Conflict - АВР с таким avr_id запрещена к обновлению
410 Conflict specification - Не загружено основание спецификации (его нет)
411 - Запрещено вносить изменения в закрытом периоде
412 - Не найден договор контрагента
413 - Не найдена номенклатура
414 - Загрузка запрещена на основании Акта сверки
415 - Общая ошибка при записи документа (пытаемся записать документ, но не получается)
416 -
417 Conflict specification - спецификация с id уже существует (не уникальна)
418 Conflict specification - Заявка (Груз) с id, указанным в спецификации не существует
500 Internal Server Error
ПРИМЕР ОТВЕТА
{
"data":{
"avr_id":"11117",
"avr_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8"
"specifications": [
{
"spec_id":"285710", // Идентификатор спецификации в онлайне
"cargo_id_1s": "" // Идентификатор спецификации в 1С
},
{
/** ... */
}
],
"datetime_response":"2019-03-18 12:39:08",
"endpoint":"addavr",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
ОБНОВЛЕНИЕ АВР
Обновление АВР 2 видов - обновление параметров и обновление вместе со спецификацией (изменение суммы АВР)
ОБНОВЛЕНИЕ ПАРАМЕТРОВ АВР
Производится так же, как и добавление АВР - методом, только с заполненным параметром avr_id_1s
УДАЛЕНИЕ АВР (DELETE)
API_ENDPOINT: http://130.193.68.101:8080/UNF/hs/OnlineLogistics/delavr/
ПРИМЕР ЗАПРОСА
{
"avr_id":"11117", //Идентификатор документа в altlog
"avr_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8" //Идентификатор документа 1С. Передается в случае, если он в altlog уже записан
"bill_number": "",
"bill_year": "",
"datetime_response":"2019-03-18 12:39:08",
"endpoint":"delavr",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
Передается идентификатор 1С АВР к удалению
ОТВЕТ СЕРВЕРА
КОДЫ ОТВЕТА HTTP
200 OK - АВР успешно удалена
400 Bad Request
408 Conflict - АВР с таким номером не найден
409 Conflict - АВР с таким номером, запрещен к удалению.
500 Internal Server Error
ПРИМЕР ОТВЕТА
{
data:{
"avr_id":"11117",
"avr_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8",
"bill_number": "", // Номер АВР - текстовый уникальный номер с уникальностью в рамках года
"bill_year": "", // год АВР - вместе с bill_number образуют уникальный идентификатор АВР за все время
"specifications": [
{
"spec_1c_uid":"d3fc9c-400c-fae9-8094-d094688767", // Идентификатор реализации в 1С
"spec_id":"285710" // Идентификатор спецификации в онлайне
}
],
"datetime_response":"2019-03-18 12:39:08",
"endpoint":"delavr",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
}
ОБМЕН ПОСТУПЛЕНИЯМИ
API_ENDPOINT URL: http://178.238.125.99:80/stl_bp/hs/OnlineLogistics/addbill
ПРИМЕР ЗАПРОСА
{
"bill_id": "25294", // Идентификатор документа в altlog online
"bill_id_1s": "", // Идентификатор документа в 1С. Передается в случае его наличия в altlog online
"date_pass": "2021-12-28", // Дата получения поступления
"number": "2132", // Номер Счета
"date": "2021-12-28", // Дата счета
"sum": "105000.00", // Общая сумма счета, равна сумме спецификаций при их наличии
"nds": "0.00", // Сумма НДС
"invoice_type": "0", // Тип счета фактуры: 0 - счета фактуры или УПД нет и не будет; 1 - счет-фактура; 2 - УПД
"invoice_number": "",// Номер счета фактуры, при её наличии
"invoice_date": "",// Дата счета фактуры, при её наличии
"receipt_number": "",// Номер документа основания поступления
"receipt_date": "",// Дата документа основания поступления
"client_id": "812", // Идентификатор контрагента в altlog online
"client_id_1s": "",// Идентификатор (внешней навигационной ссылки) контрагента в 1С
"client_id_1s77": "",// Ненужное поле (устаревшее)
"client_name": "Индивидуальный предприниматель Катышкина Светлана Александровна", // Наименоване контрагента
"client_inn": "235300030056", // ИНН контрагента
"client_rs": "40702810138180121008", // Расчетный счёт контрагента
"contract_id": "929", // Идентификатор договора в altlog online
"contract_id_1s": "",// Идентификатор (внешней навигационной ссылки) договора в 1С
"contract_id_1s77": "30/08", // Ненужное поле (устаревшее)
"contract_number": "30/08", // Номер договора
"contract_date": "2021-08-30", // Дата договора
"specifications": // Список строк в поступлении
[
{
"sum": "105000.00" // Сумма строки
"nds_sum": "0" // Сумма НДС строки
"sum_ex_nds": "105000" // Сумма строки без НДС
"nds_type": "0" // Тип НДС
"nds_rate": "0" // Размер НДС
"selling_1s_uid": "a25cb888e3455f5b11e6dbc3ff591e15" // Идентификатор (внешней навигационной ссылки) справочника номерклатуры в 1С
"selling_1s_name": "Транспортные услуги (без НДС)" // Наименование номенклатуры
"selling_id": "2" // Идентификатор справочника номенклатуры altlog online
}
]
}
ОТВЕТ СЕРВЕРА
В ответе 1С возвращает идентификатор документа 1С
КОДЫ ОТВЕТА HTTP
200 OK - поступление создано/обновлено успешно
400 Bad Request
401 - нет контрагента с таким ИНН/КПП
407 Conflict - Поступление с таким bill_id уже существует (при создании)
408 Conflict - Поступление с таким bill_id_1s не найдено (при обновлении)
409 Conflict - Поступление с таким bill_id_1s запрещено к обновлению
411 Conflict - Запрещено вносить изменения в закрытом периоде
412 Conflict - Не найден договор контрагента
413 Conflict - Не найдена номенклатура
414 Conflict - Загрузка запрещена на основании Акта сверки
415 Conflict - Общая ошибка при записи документа (пытаемся записать документ, но не получается)
500 Internal Server Error
ПРИМЕР ОТВЕТА
{
"data":{
"bill_id":"11117",
"bill_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8"
},
"datetime_response":"2021-03-18 12:39:08",
"endpoint":"addbill",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
УДАЛЕНИЕ ПОСТУПЛЕНИЯ
API_ENDPOINT: http://130.193.68.101:8080/UNF/hs/OnlineLogistics/delavr/
ПРИМЕР ЗАПРОСА
{
"data": {
"avr_id":"11117", //Идентификатор документа в altlog
"avr_id_1s":"10fcac9c-494c-11e9-80f4-d09466765ba8" //Идентификатор документа 1С. Передается в случае, если он в altlog уже записан
"bill_number": "",
"bill_year": ""
},
"datetime_response":"2019-03-18 12:39:08",
"endpoint":"delavr",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
Передается идентификатор 1С АВР к удалению
ОТВЕТ СЕРВЕРА
КОДЫ ОТВЕТА HTTP
200 OK - АВР успешно удалена
400 Bad Request
408 Conflict - АВР с таким номером не найден
409 Conflict - АВР с таким номером, запрещен к удалению.
500 Internal Server Error
ПРИМЕР ОТВЕТА
{
"data": {
"avr_id": "11117",
"avr_id_1s": "10fcac9c-494c-11e9-80f4-d09466765ba8",
"bill_number": "", // Номер АВР - текстовый уникальный номер с уникальностью в рамках года
"bill_year": "", // год АВР - вместе с bill_number образуют уникальный идентификатор АВР за все время
"specifications": [
{
"spec_1c_uid": "d3fc9c-400c-fae9-8094-d094688767", // Идентификатор реализации в 1С
"spec_id": "285710" // Идентификатор спецификации в онлайне
}
]
}
}
...
ОТПРАВКА СПИСКА ПЛАТЕЖЕК НА ОПЛАТУ
API_ENDPOINTURL: http://178.238.125.99:80/stl_bp/hs/OnlineLogistics/setpay
ПРИМЕР ЗАПРОСА
// Платёжки (по контрагентам)
[
{
"client_id": "449", // ID клиента
"client_id_1s": "bed8d43d7e499d8011e558549070737c", // UID контрагента в 1С 8
"client_id_1s77": "",// ID контрагента в 1С 7
"client_name": "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО \"ВЫМПЕЛ-КОММУНИКАЦИИ\"", // Полное наименование контрагента
"client_inn": "7713076301", // ИНН контрагента
"client_bik": "044525225", // БИК контрагента
"client_kpp": "997750001", // КПП контрагента
"client_rs": "40702810138180121008", // Расчетный счёт контрагента
"date_payment": "2022-02-18", // Дата планируемой оплаты (в оплату)
"sum": "6942.6", // Сумма платёжки
"nds": "0", // НДС платёжки
"nds_type": "0", // Метод начисления НДС - 0: 'Не начисляется', 1: 'Входит в стоимость', 2: 'Не входит в стоимость',
"bills": [ // Счета платёжки
{
"bill_id": "29513", // ID счёта
"bill_id_1s": "9b8c000c294d311111ec84fe7c123d22", // ID счёта в 1С
"bill_sum": "6942.6", // Сумма счёта
"bill_nds": "0", // НДС счёта
}
]
}
]
ОТВЕТ СЕРВЕРА
В ответе 1С возвращает идентификатор документа 1С
КОДЫ ОТВЕТА HTTP
200 OK - поступление создано/обновлено успешно
400 Bad Request
416 - нет счета в 1С
417 - счет оплачен
418 - не совпадает сумма счёта
500 Internal Server Error
ПРИМЕР ОТВЕТА
{
"datetime_response":"2021-03-18 12:39:08",
"endpoint":"setpay",
"error":false,
"error_msg":"OK",
"error_code":"200",
"version":"1.0.0"
}
УДАЛЕНИЕ ПЛАТЁЖКИ (ИСКЛЮЧЕНИЕ СЧЁТА ИЗ ПЛАТЁЖКИ)
API_ENDPOINT: http://130.193.68.101:8080/UNF/hs/OnlineLogistics/delpay
ПРИМЕР ЗАПРОСА