Завершен

Ошибка выбора товара

dzadvinskiy 8 лет назад обновлен Алексей (Рук. ТП) 8 лет назад 7

Здравствуйте, проблема с заполнением документа на ТСД. В 1С есть документ, в нем 2 строки с номенклатурой. С первой проблем нет, а со второй происходят странные вещи. Вот экран при выборе товаров из документа:

Image 1029

В отладке вроде как все в порядке:

запрос: select (*) from Document.DeclaredItems

колонки: <r size="8">{Item.Product.Marking:<b>(0)</b> }{Item.Product.Name} ({Item.Packing.Name})<b>{Item.serial: - (0)}{Item.descr: - (0)}</b></r>


Image 1030


При выборе позиции, где написано "()" возникает такая ошибка:

Image 1031

При этом после функции:

SelectedProduct=global::Cleverence.Warehouse.Compact.AdvancedOps.PackProduct(СтрокаСТоваромДокумента.ProductId, СтрокаСТоваромДокумента.PackingId)


Image 1032

SelectedProduct - пустой.


Со второй номенклатурой все в порядке. Кроме того, ошибочная номенклатура видна из ТСД по штрихкоду и в списке номенклатуры.


Подскажите куда копать? демо режим может как то влиять?


Ответ

Ответ

Большое спасибо за помощь, причину нашел. Проблема заключалась в неправильно указанной "основной единицы измерения" в номенклатуре - она не соответствовала настройке в типе номенклатуры. Из за этого MS не мог нормально с ней работать. Часть лога:

1; 66; 15.03.2017 16:34:24.136 ERROR

ADDITION TEXT: DataExchanging.GetProductByIds function
MESSAGE: System.Web.Services.Protocols.SoapException: Серверу не удалось обработать запрос. ---> Cleverence.Connectivity.KnownException: Ошибка при получении товара:"ОбщийМодуль.УниверсальныеМеханизмы(8076)": Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Cleverence.MobileSMARTS.ComConnector): PackingCollection already contains element with Id = шт. (1С: версия приложения = "8.3.8.2054", название конфигурации = "Автосалон5", редакция= "5.1.08.05", версия драйвера = "3.0.0.111", режим работы основной базы = "файловый", режим работы базы драйвера= "файловый")
в Cleverence.Connectivity.OneC.OneC_8_Connector.InvokeMethod(String methodName, Object[] args)
в Cleverence.Connectivity.ConnectivityManager.InvokeMethod(String methodName, Object[] args)
в Cleverence.Warehouse.ServerEvents.Invoke(String methodName, Object[] args, DeviceInfo dInfo, Boolean& isDemo)
в Cleverence.Warehouse.ServerEvents.InvokeProductNotFound(String productCode, String packingId, DeviceInfo di, SearchProductMode mode, Boolean& isdemoLicense, HttpContext context)
в Cleverence.Warehouse.DataStorage.GetProductByIds(String productId, String packingId, String deviceInfoXml)
--- Конец трассировки внутреннего стека исключений ---
TYPE:System.Web.Services.Protocols.SoapException
SOURCE:System.Web.Services
TARGETSITE: ReadResponse

Начат

Добрый день,

О каком конкретном продукте идет речь?

Папку базы продукта с ПК прислать можете?

MobileSMARTS Wi-fi проф. Ссылка с базой MS и Альфа - авто: https://yadi.sk/d/6eztW7ea3FfMB3

Проблема с документом комплектация ЗК00000002. Номенклатцра "Диск колесный..." работает так, как описал выше, со второй проблем нет. В конфигурации MS документ комплектации создавался копированием типового.


Добрый день,

Попытались воспроизвести, не получилось, так как номенклатура запрашивается из 1С а ключа на альфу у нас нет.

1 - по всей видимости товар в троке вообще не заполняется - из 1С не приходит результат. (логи есть какие нибудь, пробовали отладчиком смотреть?)

2 - Ошибка В сессии не выбран продукт соответственно из за 1 пункта - товр из 1С не получен.

3 - "комплектации создавался копированием типового" - в типовом при работе по списку данный товар отображается корректно?

1. Про отладчик писал выше. Смотрю вызов типовой операции "Выбор товаров из товара документа". Запрос в нем:

select (*) from Document.DeclaredItems

в отладке Document.DeclaredItems выглядит так:


Формат вывода такой:

<r size="8">{Item.Product.Marking:<b>(0)</b> }{Item.Product.Name} ({Item.Packing.Name})<b>{Item.serial: - (0)}{Item.descr: - (0)}</b></r>

Судя по формату, хотя бы имя, но должно выводиться.

3. В типовом то же самое. Причем проблема проявляется именно на вот этой номенклатуре. Пробовал на другом сервере, переносил с помощью xml номенклатуру в другую базу - везде эта проблема. Хотя в простом списке всей номенклатуры ее видно, а в документах отображается пустой.


Добрый день,

По логам у Вас получается что не успевает отработать второй запрос:

Серверу не удалось обработать запрос. ---> System.Exception: Невозможно сделать вызов, так как все еще выполняется первичная инициализация внешних подключений.

Очистите папку логов воспроизведите ошибку и пришлите папку логов еще раз.

C:\ProgramData\Cleverence\Базы Mobile SMARTS\НазваниеВашей базы\Logs


Можно еще попробовать пересоздать эту номенклатуру скопировав значения.

Ответ

Большое спасибо за помощь, причину нашел. Проблема заключалась в неправильно указанной "основной единицы измерения" в номенклатуре - она не соответствовала настройке в типе номенклатуры. Из за этого MS не мог нормально с ней работать. Часть лога:

1; 66; 15.03.2017 16:34:24.136 ERROR

ADDITION TEXT: DataExchanging.GetProductByIds function
MESSAGE: System.Web.Services.Protocols.SoapException: Серверу не удалось обработать запрос. ---> Cleverence.Connectivity.KnownException: Ошибка при получении товара:"ОбщийМодуль.УниверсальныеМеханизмы(8076)": Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Cleverence.MobileSMARTS.ComConnector): PackingCollection already contains element with Id = шт. (1С: версия приложения = "8.3.8.2054", название конфигурации = "Автосалон5", редакция= "5.1.08.05", версия драйвера = "3.0.0.111", режим работы основной базы = "файловый", режим работы базы драйвера= "файловый")
в Cleverence.Connectivity.OneC.OneC_8_Connector.InvokeMethod(String methodName, Object[] args)
в Cleverence.Connectivity.ConnectivityManager.InvokeMethod(String methodName, Object[] args)
в Cleverence.Warehouse.ServerEvents.Invoke(String methodName, Object[] args, DeviceInfo dInfo, Boolean& isDemo)
в Cleverence.Warehouse.ServerEvents.InvokeProductNotFound(String productCode, String packingId, DeviceInfo di, SearchProductMode mode, Boolean& isdemoLicense, HttpContext context)
в Cleverence.Warehouse.DataStorage.GetProductByIds(String productId, String packingId, String deviceInfoXml)
--- Конец трассировки внутреннего стека исключений ---
TYPE:System.Web.Services.Protocols.SoapException
SOURCE:System.Web.Services
TARGETSITE: ReadResponse

Сервис поддержки клиентов работает на платформе UserEcho