Выбор строк из 247 товаров и запись в документ

PTIME 7 лет назад обновлен Михаил Пузырев (Разработчик) 7 лет назад 7

Драйвер Wi-Fi терминала сбора данных для «1С:Предприятия» - PRO.

ТСД: SMART.Droid.


Установлен на нем клиент версии 3.0.0.144.

На компьютере установлено ПО : Программная платформа Mobile SMARTS v3.0 3.0.0.45100


1. При приемке товара надо работать по списку товаров.

Я выгружаю на ТСД список с 247 товарами.

Затем делаю выбор строк "select (*) from Document.DeclaredItems where Item.CurrentQuantity!=Item.DeclaredQuantity group by Product" (хочу в список вывести только те товары, которые еще не приняты):


На этом все подвисает до 15 минут. Убираю условие group by Product и начинает летать, но и понятно выводит все товары.

Если же делаю выбор всех строк, а потом перебираю и сравниваю, то также все подвисает минут на 15. Не понял при таком количестве товаров в списке реально работать в таком режиме "по списку".


2. При строке "Прямая запись в документ..." вываливается ошибка "Не удалось выполнить. Обратитесь к Администратору".

В логах следующее сообщение:
===
1; 4; 29.11.2016 00:37:55.984 ERROR
ADDITION TEXT: Приемка товара: Действие (AcceptInDocumentAction) "Обычная запись"
MESSAGE: Форматтер сгенерировал исключение при попытке десериализовать сообщение: Ошибка десериализации тела сообщения запроса для операции "DocumentChanged". Превышена квота максимальной длины строки (32768) при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании устройства чтения XML.
TYPE: System.ServiceModel.FaultException
SOURCE: mscorlib
TARGETSITE: HandleReturnMessage
[STACK TRACE]
Server stack trace:
в System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
в Cleverence.Warehouse.Compact.IDebuggerServiceClient.DocumentChanged(String strDocument)
в Cleverence.Warehouse.Document.set_Modified(Boolean value)
в Cleverence.Warehouse.Compact.AcceptInDocumentAction.Begin()
в Cleverence.Warehouse.Compact.ActionsApplication.StartApplication()
[STACK TRACE]
CODE: System.ServiceModel.FaultCode
REASON: Форматтер сгенерировал исключение при попытке десериализовать сообщение: Ошибка десериализации тела сообщения запроса для операции "DocumentChanged". Превышена квота максимальной длины строки (32768) при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании устройства чтения XML.
DATA: System.Collections.ListDictionaryInternal
===
Как с этим побороться?

Зависает при выборе строк и на клиенте ПК и на ТСД.

Добрый день,

пришлите базу с тестовым документом на support@cleverence.ru

Как ее выгрузить?

Пришлите всю папку базы а не только documents.

Используйте группировку по полю ProductId вместо Product, условие Item.CurrentQuantity!=Item.DeclaredQuantity замените на Item.UnderloadedOrOverloaded. Ошибка при записи в документ у нас не повторилась, пришлите, пожалуйста, всю папку MobileSMARTS с терминала сразу после возникновения ошибки.

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