Завершен
Добавить продукты в документ
На событие сервера "ПолучитьДокумент" в моём коннекторе вызывается функция которая заполняет документ. Вот кусок кода по заполнению документа:
var documentItem = new Cleverence.Warehouse.DocumentItem();
documentItem.ProductId = new Guid(requestId).ToString();
documentItem.CurrentQuantity = 0;
documentItem.DeclaredQuantity = requestCount;
var product = new Cleverence.Warehouse.Product();
product.Id = new Guid(requestId).ToString();
product.Barcode = BarCode;
product.Name = requstName;
product.Marking = Marking;
documentItem.Product = product;
doc.DeclaredItems.Add(documentItem);
Но на последней строчке documentItem.Product = null . Т.е. присваивание в предыдущей строчке не отрабатывает. Почему?
В DeclaredItems документа появляется запись, но с пустым Product
Вопрос: как наполнить документы продуктами?
var documentItem = new Cleverence.Warehouse.DocumentItem();
documentItem.ProductId = new Guid(requestId).ToString();
documentItem.CurrentQuantity = 0;
documentItem.DeclaredQuantity = requestCount;
var product = new Cleverence.Warehouse.Product();
product.Id = new Guid(requestId).ToString();
product.Barcode = BarCode;
product.Name = requstName;
product.Marking = Marking;
documentItem.Product = product;
doc.DeclaredItems.Add(documentItem);
Но на последней строчке documentItem.Product = null . Т.е. присваивание в предыдущей строчке не отрабатывает. Почему?
В DeclaredItems документа появляется запись, но с пустым Product
Вопрос: как наполнить документы продуктами?
Сервис поддержки клиентов работает на платформе UserEcho
Дело в том, что продукты должны храниться в справочнике товаров, а в строках документа реально указываются только ProductId. Присваивание "не сработало", потому что в справочнике нет вашего товара.
Свойство Product работает примерно так: get { return СправочникТоваров[this.ProductId]; } set { this.ProduсtId = value.Id; }
По сути в данном коде вы можете присваивать только
documentItem.ProductId = new Guid(requestId).ToString();
А товары нужно либо
а) самому добавить в Cleverence.Warehouse.ProductsBook.Products, либо
б) возвращать по событию ТоварНеНайден
Например, вот такой код уже должен работать как надо:
var documentItem = new Cleverence.Warehouse.DocumentItem();
documentItem.ProductId = new Guid(requestId).ToString();
documentItem.CurrentQuantity = 0;
documentItem.DeclaredQuantity = requestCount;
var product = new Cleverence.Warehouse.Product();
product.Id = new Guid(requestId).ToString();
product.Barcode = BarCode;
product.Name = requstName;
product.Marking = Marking;
documentItem.Product = product;
var o1 = documentItem.Product; // тут вернется null;
Cleverence.Warehouse.ProductsBook.Products.Add(product);
var o2 = documentItem.Product; // а вот тут уже вернется товар;
doc.DeclaredItems.Add(documentItem);
Спасибо, теперь в documentItem действительно есть Product. Но при сканировании штрихкода (или вводе вручную) - Товар всё-равно не найден. Хотя у объекта Product задан корректный Barcode.
Товар добавляю строчкой:
Cleverence.Warehouse.ProductsBook.Products.Add(product);
Если вводить не корректный штрихкод то событие ТоварНеНайден отрабатывает. А если вводить корректный штрихкод то события нет, но алгоритм идёт по пути "Товар не найден"
В чём может быть проблема?
И ещё есть странная особенность. При открытии документа сначала вызывается событие ПолучитьДокумент а потом ПолучитьСписокДокументов. И во время редактирования документа можно зайти в "Просмотр строк" и увидеть добавленные documentItem. Потом перезайти в "Просмотр строк" и эти documentItem уже без Названия. Кол-во есть а вот названия нету.