Ваши комментарии

Номенклатура имеет основные поля, которые есть всегда. Список этих полей см. http://www.cleverence.ru/devlib/comconnector_v3/index.html объекты Clevrence.Warehouse.Product (Товар) и Clevrence.Warehouse.Packing (Упаковка). Также в конфигурации могут быть определены произвольные дополнительные поля:

В редакторе строк обращение как к основным, так и к дополнительным полям выполняется через точку: SelectedProduct.Product.Id, SelectedProduct.Packing.price


Функции с указанным при вызове именем нет в конфигурации 1С или она не помечена как Экспорт. В какой ситуации возникает данная ошибка? Вы дорабатываете конфигурацию Mobile SMARTS и промежуточной базы 1С?

Добрый день!

Возможность добавлять объект сессии в вызовы событий появилась в платформе Mobile SMARTS версии 2.7. У Вас есть следующие варианты: 1) перейти на платформу 2.7 (дистрибутив можно скачать с сайта, http://www.cleverence.ru/downloads/?tags=Mobile+SMARTS&PAGEN_10=5

2) остаться на 2.6 и использовать аргумент обработчика события UserId:

Функция ПолучитьТовар(Код, КодУпаковки, UserId, Режим) Экспорт

UserId - ид. пользователя ТСД

3) Если нужно передавать кроме UserId ид. терминала или другие параметры, на 2.6 это можно сделать так: 

В вызов функции ПолучитьДопОписаниеТовара добавляем параметр ИдТСД = {Device.GetDeviceId()}



В 1С: Функция ПолучитьДопОписаниеТовара(КодТовара, ИдТСД) Экспорт

По ИдТСД получаем привязанный к данному ТСД (киоску) магазин, получаем цену, возвращаем цену через 

InvokeResult.Add("Цена", цена), в конфигурации Mobile SMARTS присваивание SelectedProduct.Packing.price = ДопИнфо.Цена.



Добрый день!


Идентифицировать ТСД можно по его коду, также можно использовать для этого пользователя ТСД.

В панели управления в разделе События сервера Добавлять объект сессии в вызов событий - Да


Обработчик события ТоварНеНайден:

Функция ПолучитьТовар( Код,  КодУпаковки, UserId, Режим, mXmlDoc=Неопределено) Экспорт

сессия = StorageConnector.FromXml(mXmlDoc);

ИдТСД = сессия.DeviceInfo.DeviceId;

ИдПользователя = сессия.DeviceInfo.UserId;

Добрый день!

a = CurrentDate.ToString("ddMMyyyyhhmmss")

Используются функции .NET, см. https://msdn.microsoft.com/ru-ru/library/system.datetime(v=vs.110).aspx


Добрый день!

Должны работать оба варианта. В чем именно у Вас ошибка?

Справка по объекту TerminalConnector v.3 здесь: http://www.cleverence.ru/devlib/TerminalConnector_v3/index.html

См. также http://www.cleverence.ru/files/14505/Mobile%20SMARTS%203.0.%20%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B9.pdf

Лучше выполнять выгрузку с помощью функций НачатьВыгрузкуТаблицыДобавитьВВыгрузкуТаблицыЗавершитьВыгрузкуТаблицы


Для "Редактирования поля" используйте переменную SelectedItem, в свойствах действия в Панели управления нет настройки "Выбранная строка", используется фиксированное имя SelectedItem.

Добрый день

Если сканирование выполняется в действии "Просмотр записей", для перехода к нужной строке, требуется в свойстве действия "Выбранная строка" указать имя переменной, в которой будет содержаться нужная строка документа (SelectedItem, например), после сканирования и определения товара найти нужную строку с помощью действия "Выбор строки", присвоить значение в переменную SelectedItem. При переходе обратно к действию "Просмотр записей" курсор переместится на эту строку. 

Возвращать можно простые типы данных (строки, числа) или объекты Mobile SMARTS сериализованные в xml (с помощью функции StorageConnector.ToXml). Передать можно всю строку документа Mobile SMARTS, в вызываемую функцию придет xml, из него нужно загрузить объект с помощью StorageConnector.FromXml. См. например в промежуточной базе функцию СформироватьЗаказ в модуле обработки ВнешниеВызовыУТ11. Если возвращаемое значение предполагается использовать для записи в документ Mobile SMARTS, нужно возвращать объект Cleverence.Warehouse.PackedProduct (см. например функцию ПолучитьТоварПоШтрихкоду), в конфигурации Mobile SMARTS возвращаемое значение нужно присвоить в SelectedProduct. Вообще, так делать необязательно, после сканирования ШК SelectedProduct уже есть, можно сделать вызов, получить нужные значения и присвоить их в поля SelectedProduct. Если требуется вернуть несколько значений, можно использовать объект Cleverence.Warehouse.InvokeResult, см. ПолучитьЦеныПоКодуТовара, добавление значений в InvokeResult:  InvokeResult.Add("Имя", значение); 

Можно передать все строки документа Mobile SMARTS в функцию, см. СформироватьЗаказ, параметр СтрокиДокументаXml. Если передавать ид. документа и загружать документ с сервера, в документе не будет изменений, сделанных на ТСД. Вернуть также можно объект строк документа Cleverence.Warehouse.DocumentItemCollection, на ТСД очистить имеющиеся строки документа и переписать в документ возвращенные строки. Но так лучше не делать, для записи в документ есть стандартный механизм - действие Запись в документ, а плановые строки на лету лучше не менять.

Выбрать строку из плановых строк, в которой есть недобор количества можно запросом с помощью действия Выбор строки: СтрокаПодбора = select (*) from Document.DeclaredItems where Item.Underload>0. Выбрали первую строку, в которой есть недобор, если нужно после этого получить ячейку из 1С, это можно сделать с помощью действия Вызов внешней системы, в функцию 1С можно передать ProductId и другие поля из выбранной строки, функция вернет данные о ячейке. Отобразили в шапке окна сканирования номенклатуры наименование товара из выбранной строки и данные по ячейке, пользователь сканирует ШК товара (или сначала ШК ячейки, если требуется), вводит кол-во, происходит запись в документ. Переходим снова к выбору строки, в которой есть недобор. 



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