На рассмотрении

Алгоритм сбора заказа кладовщиком

allzon 7 лет назад обновлен 7 лет назад 7

Добрый вечер. Вопрос заключается в следующем. Необходимо над строкой выбора номенклатуры выводить информацию о текущей номенклатуре. Т.е. мы зашли в накладную, нажали "начать/продолжить" и у нас уже появилась номенклатура, которую нам необходимо просканировать, а также ее ячейка и количество которое необходимо указать. То есть своеобразный алгоритм, который будет вести кладовщика по складу. При сканировании всего плана переключается на следующую номенклатуру. Подскажите, откуда можно вытащить информацию для вывода перед выбором номенклатуры?

На рассмотрении

Добрый день,

В настройках документа установите режим работы "по списку".

Если требуется вывод номенклатуры которую нужно взять следующую, как то вести кладовщика, то это доработка. В типовом функционале либо вывод строк документа на экран, либо слепое сканирование с последующим просмотром план/факт.

Чуть позже вам ответит программист с примером.

Да, хотелось бы услышать программиста. Спасибо за ответ.

Как я предполагаю: Запросом вытягивать из Document.DeclaredItems продукцию, обрабатывать как мне нужно и подставлять в какую-либо переменную на странице.  Но так как мне нужно проставить и ячейку, необходимо сделать вызов процедуры в 1С дополнить таблицу документа ячейкой и вернуть обратно.

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

А подскажите пожалуйста при возврате данных из 1С непосредственно на терминал, какой тип можно вернуть?
т.е. мне нужно вернуть строку товара сформированную в 1С, каким типом ее требуется возвращать? Получать com объектом строку ТЧ и править ее, затем отдавать ее в ТСД?

Также вопрос как можно получить весь список товаров текущего документа в 1С. Пока идея такая: Передать Ид документа ТСД и преобразовать его в com объект документа 1С после чего работать с товарами документа. Но если я мне нужно вернуть таблицу значений отличную от текущей в ТСД, как ее преобразовать в нужный тип?

Возвращать можно простые типы данных (строки, числа) или объекты 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, на ТСД очистить имеющиеся строки документа и переписать в документ возвращенные строки. Но так лучше не делать, для записи в документ есть стандартный механизм - действие Запись в документ, а плановые строки на лету лучше не менять.

Благодарю за грамотное и полное объяснение. Начну реализацию данной задачи.

Возможно есть какая-либо документация, которая описывает все это? На сайте все слишком разрознено и трудно структурировать информацию.
Смотрел видеоуроки у Вас на канале - они очень хорошо описывают, но затрагивают малую толику того что нужно.

Может я что-то не нашел? Или есть еще где-то информация?

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