Вопрос по построению запросов в MobileSmarts

Zala 3 года назад в Прочие разделы / - Вопросы по разработке обновлен 3 года назад 2

Добрый день! Задача стоит в том, чтобы отобразить только строки расхождения между суммарном планом и суммарном фактом в разрезе номенклатуры.


Для этого сделали функцию, использовали действие Просмотр записей и ввели запрос. Только проблема в том, что отобрать-то нужно не начальные записи стандартным Where, а уже суммированные. Для этого хотелось бы использовать Having (как операция над совокупностью данных), но такого не нашли в вашем конструкторе запросов, а как отредактировать запрос не понятно.



Сейчас запрос: 

select (Product, Packing, ОтображениеВСписке, sum(CurrentQuantity), sum(DeclaredQuantity)) from Document.DeclaredItems 

group by Product, Packing, ОтображениеВСписке


А хотели бы:

select (Product, Packing, ОтображениеВСписке, sum(CurrentQuantity), sum(DeclaredQuantity)) from Document.DeclaredItems 

group by Product, Packing, ОтображениеВСписке 

having sum(CurrentQuantity) != sum(DeclaredQuantity)


Прошу пояснить как этого достичь средствами MobileSmarts или как решить эту задачу другим методом.


Установленный продукт:
Mobile SMARTS
Версия драйвера:
«Клеверенс Софт», ПРОФ драйвер ТСД (3.0.0.111)
Типовая конфигурация драйвера?:
Нет
Операционная система:
Windows Server 2008 R2
Версия и конфигурация 1С, и режим работы (Файловы или Серверный):
1C УПП 1.3, Серверный
Типовая конфигурация 1с?:
Нет
Модель ТСД:
Терминал сбора данных (лазерный) 9730 L, WCE6.0 WiFi

Добрый день!

Это можно сделать двумя запросами, первый: СтрокиТоваров = select (Product, Packing, CurrentQuantity, DeclaredQuantity) 

from Document.DeclaredItems 

group by ProductId, PackingId

группировать лучше по полям ProductId, PackingId, а не Product и Packing, по вычислимому полю ОтображениеВСписке лучше не использовать группировку. Использовать выражение sum не нужно, количества и так будут суммироваться.

Дальше можно выбрать строки с отличающимися количествами действием присваивания: СтрокиДляПоказа = СтрокиТоваров.FindByUnderloadedOrOverloaded(true)

Благодарю, все получилось ))

Скажите, а где мануал, в котором можно почитать про FindByUnderloadedOrOverloaded и подобные возможности.


У меня только "Mobile SMARTS 3.0. Работа с компонентой.pdf" и "Mobile-SMARTS-2008-Development-(ru).pdf"


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