Ваши комментарии
Благодарю! Решение с использованием lock почти полностью решило проблему.
Спасибо! Проблема решена именно таким образом!
Как-то я сам не дошёл до элемента "Редактирование поля"
1. Пользователь выбирает действие "Выгрузка на склад". Получает список маршрутов из БД.
2. Пользователь выбирает маршрут. Получает список заявок в этом маршруте c штрихкодами и количеством.
3. Пользователь сканирует штрихкод. Указывает кол-во. Всё что он сканировал записывается в CurrentItems.
4. Пользователь завершает документ. Коннектор его получает и вносит необходимые правки в БД.
Вот кусок кода отвечающий за формирование документа на этапе 2:
/// Обработка события ПолучитьДокумент.
// Формируем документ
var getRouteSqlString = "select r.SxNumber, r.CreatedOn, v.SxNumber " +
}
// Заполняем документ заявками
var getRequestSqlString = "select s.SxNumberRequestId, r.SxNumber, COUNT(s.SxNumberRequestId), r.SxBarCode from SxRequest r " +
return doc;
А. Не ограничивать товарами документа нам не подходит.
Сделал так: Загрузил свою конфигурацию. Подключился к серверу. Получил от коннектора документ. Номенклатура есть. Штрихкоды есть. Сканирую - не находит.
"создал документ на ТСД в Выгрузке на склад" - но наша конфигурация не позволяет создавать документы на терминале. Они могут формироваться только на сервере. И как мне кажется это основная проблема в синхронизации документов от коннектора к терминалу. Не могу понять почему заявки видно, но по штих-коду не бьются, и почему документ возвращается без них.
"убрал ограничение при поиске номенклатуры из строк документа" - будьте добры, расскажите подробнее что за ограничение и где оно устанавливается?
"Очистите содержимое папки документов на ТСД" - сделал в первую очередь.
Добрый!
Действие "Выгрузка на склад" получает список маршрутов (тут всё отлично). Открываем маршрут - загружаются заявки в этом маршруте (казалось тоже без проблем). Заявки отображаются, но не находятся по штрих-коду. После завершения документа - документ приходит на сервер с пустым DeclaredItems.
Наша конфигурация:
Спасибо!
Обнаружил ещё одну интересную вещь. После того как я завершаю документ, он приходит на сервер с пустым DeclaredItems , хотя при формировании документа я ведь отдавал на терминал заполненные DeclaredItems.
Это при варианте моей конфигурации с коннектором.
Не могли бы вы подробнее объяснить что нужно сделать. Не понял если честно.
"Возьмите реальный шк из 1с" - у нас нет 1с...
"он обычно привязан к упаковке, а не товару" - пробовал в коннекторе проставлять штрихкод и упаковке - результат тот же.
"нужно включить поиск по коду в промежуточной в настройках поиска номенклатуры." - это где?
Сейчас ещё решил попробовать сделать так. Загрузил на сервер дефолтную конфигурацию из папки Batch . Открыл список номенклатуры, пробую сканировать на вин клиенте штрих-код и он тоже не может быть найден.
Нет. В логи вообще ничего не записывается после ошибки.
На всякий случай сделал ещё скриншот конфигурации. Но повторюсь от предыдущего дистрибутива ничего не менялось. Конфигурацию скопировали.
После сканирования система переходит к пункту "Заявка с таким штрихкодом не найдена", хотя коннектор точно отправляет продукт с тем штрихкодом, который вносится в вин клиент.
Сервис поддержки клиентов работает на платформе UserEcho
Как я понял из логов может быть ещё и такая ситуация когда с разных терминалов проводят разные операции. Например один терминал получает информацию об упаковке, а другой перемещает что-то с одной полки на другую. В обоих случаях используются подключение к БД. Таким образом происходит запрос к БД из разных частей кода одновременно.
Таким же образом возможна путаница данных, когда InvokeMethod вызывается с разными аргументами.
Вижу вариант обернуть всё тело метода InvokeMethod в lock() но как это скажется на скорости работы коннектора. Надо проводить тестирование.