27.07.2017 09:57
Всем добрый день. Даже не знаю, по чему больше вопрос, по 1С или по сету... В общем ситуация такая - при загрузке продаж из центрума в 1с всегда использовали метод getPurchasesByOperDayData, однако настало такое время, что понадобился метод getPurchasesByParams, и вот тут началось... требовалась выборка по опер дню и магазину, в wsdl видно, что 4 последних параметра - необязательны, однако передавая методом только дату, 1Ц ругается на недостаточное количество параметров, передавая в качестве других параметров "" или 0 ни чего не находит. Пробовал править wsdl, добавлял nillable="true", но при перезапуске сервера все переписывается по умолчанию, может у кого есть идеи?
01.08.2017 15:53
Так просто не указывайте эти лишние параметры.
вот пример для SOAPUI:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:plug="http://plugins.operday.ERPIntegration.crystals.ru/">
<soapenv:Header/>
<soapenv:Body>
<plug:getPurchasesByParams>
<dateOperDay>2017-07-28</dateOperDay>
<shopNumber>3174</shopNumber>
</plug:getPurchasesByParams>
</soapenv:Body>
</soapenv:Envelope>
01.08.2017 15:55
Вот так эта штука работает:


Метод получения данных по чекам с набором параметров:

getPurchasesByParams
dateOperDay - обязательный параметр - операционный день в формате даты (YYYY-MM-DD)
shopNumber - не обязательный параметр - номер магазина - число
cashNumber - не обязательный параметр - номер кассы - число
shiftNumber - не обязательный параметр - номер смены - число
purchaseNumber - не обязательный параметр - номер чека - число
Построение отчёта при разном сочетании не обязательных параметров:
Centrum
Заданы: dateOperDay - в отчёт попадают все чеки всех магазинов за операционный день dateOperDay.
Заданы: dateOperDay, shopNumber - в отчёт попадают все чеки за операционный день dateOperDay с магазина shopNumber
Заданы: dateOperDay, shopNumber, cashNumber - в отчёт попадают все чеки за операционный день dateOperDay с магазина shopNumber с кассы cashNumber
Заданы: dateOperDay, shopNumber, cashNumber, shiftNumber - в отчёт попадают все чеки смены shiftNumber за операционный день dateOperDay с магазина shopNumber с кассы cashNumber
Заданы: dateOperDay, shopNumber, cashNumber, shiftNumber, purchaseNumber - в отчёт попадает только один конкретный чек под номером purchaseNumber из смены shiftNumber за операционный день dateOperDay с магазина shopNumber с кассы cashNumber
Retail
Заданы: dateOperDay - в отчёт попадают все чеки магазина за операционный день dateOperDay.
Заданы: dateOperDay, shopNumber - в отчёт попадают все чеки за операционный день dateOperDay с магазина shopNumber (shopNumber должен совпадать)
Заданы: dateOperDay, shopNumber, cashNumber - в отчёт попадают все чеки за операционный день dateOperDay с магазина shopNumber (shopNumber должен совпадать) с кассы cashNumber
Заданы: dateOperDay, shopNumber, cashNumber, shiftNumber - в отчёт попадает все чеки смены shiftNumber за операционный день dateOperDay с магазина shopNumber (shopNumber должен совпадать) с кассы cashNumber
Заданы: dateOperDay, shopNumber, cashNumber, shiftNumber, purchaseNumber - в отчёт попадает только один конкретный чек под номером purchaseNumber из смены shiftNumber за операционный день dateOperDay с магазина shopNumber (shopNumber должен совпадать) с кассы cashNumber
Заданы: dateOperDay, cashNumber - в отчёт попадают все чеки за операционный день dateOperDay магазина с кассы cashNumber
Заданы: dateOperDay, cashNumber, shiftNumber - в отчёт попадают все чеки смены shiftNumber за операционный день dateOperDay магазина с кассы cashNumber
Заданы: dateOperDay, cashNumber, shiftNumber, purchaseNumber - в отчёт попадает только один конкретный чек под номером purchaseNumber из смены shiftNumber за операционный день dateOperDay магазина с кассы cashNumber

Формат и состав выдаваемых данных аналогичен формату метода getPurchasesByOperDay (во вложении).
Кодировка данных UTF-8.
Результат метода строка в кодированном виде Base64
При отсутствии данных по запросу выдаётся XML с указанием количества чеков:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="0"/>
Выдача данных с помощью метода getPurchasesByParams не влияет на очередь не отправленных данных в ERP, которые можно получить с помощью методов getNewPurchases...
12.01.2022 07:08
Цитата:
HamyaG Всем добрый день. Даже не знаю, по чему больше вопрос, по 1С или по сету... В общем ситуация такая - при загрузке продаж из центрума в 1с всегда использовали метод getPurchasesByOperDayData, однако настало такое время, что понадобился метод getPurchasesByParams, и вот тут началось... требовалась выборка по опер дню и магазину, в wsdl видно, что 4 последних параметра - необязательны, однако передавая методом только дату, 1Ц ругается на недостаточное количество параметров, передавая в качестве других параметров "" или 0 ни чего не находит. Пробовал править wsdl, добавлял nillable="true", но при перезапуске сервера все переписывается по умолчанию, может у кого есть идеи?
Нужно полностью пропускать параметры:
WSПрокси.getPurchasesByParams(dateOperDay, shopNumber, , );
12.01.2022 07:17
Цитата:
ark_zv WSПрокси.getPurchasesByParams(dateOperDay, shopNumber, , );
Но такая схема не работает для метода getNewPurchasesByParams
Так же в документации не хватает описание 6 параметра. Потому что при выполнении метода с такими заданными параметрами:
Код:
WSПрокси.getNewPurchasesByParams(dateOperDay, shopNumber, cashNumber, shiftNumber, purchaseNumber);
Вылетает ошибка, что не указан 6 параметр.
Так работает отрабатывает правильно:
Код:
WSПрокси.getNewPurchasesByParams(dateOperDay, shopNumber, cashNumber, shiftNumber, purchaseNumber, "");
Теперь дальше, если пропустить хотя бы один параметр, например номер чека:
Код:
WSПрокси.getNewPurchasesByParams(dateOperDay, shopNumber, cashNumber, shiftNumber, , "");
То вылетает ошибка:
Цитата:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:FiscalInfoExportService:getNewPurchasesByParams()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Unmarshalling Error: For input string: ""
Может кто-нибудь подсказать в чем дело?
Часовой пояс GMT +3, время: 09:12.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.