Доброго времени суток.
Конфигурация УТ 10.3.20.2
Обработка ТОСервер, Процедура ОбработатьТаблицуШтрихкодов
Как понять эту строчку: "Количество=Количество*РезультатЗапроса.Количество;" Какой ее смысл? В итоге при загрузке товара из ТСД, количество задваивается. Объясните, кто разбирался с этим, в чем подвох.
Конфигурация УТ 10.3.20.2
Обработка ТОСервер, Процедура ОбработатьТаблицуШтрихкодов
Процедура ОбработатьТаблицуШтрихкодов(ТаблицаШтрихкодов, ФормаКлиент)
Перем Номенклатура;
Перем ХарактеристикаНоменклатуры;
Перем СерияНоменклатуры;
Перем Качество;
Перем ЕдиницаИзмерения;
ТаблицаШтрихкодов.Свернуть("Штрихкод", "Количество");
Для Каждого СтрокаТЧ Из ТаблицаШтрихкодов Цикл
ШК = СтрокаТЧ.Штрихкод;
Количество = СтрокаТЧ.Количество;
Если РаботаСТорговымОборудованием.ТипШтрихкодаEAN8ТО(ШК) Тогда
ТипШК = мEAN8;
ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаEAN13ТО(ШК) Тогда
ТипШК = мEAN13;
Иначе
ТипШК = мCODE39;
КонецЕсли;
НоменклатураНайдена = Ложь;
Если ЗначениеЗаполнено(мПрефиксВесовогоТовара)
И ЗначениеЗаполнено(мДлинаКодаВесовогоТовара)
И ТипШК = мEAN13
И Лев(ШК, 2) = "2" + мПрефиксВесовогоТовара Тогда
КодТовара = Сред(ШК, 3, мДлинаКодаВесовогоТовара);
КоличествоТовара = Сред(ШК, 3 + мДлинаКодаВесовогоТовара, 10 - мДлинаКодаВесовогоТовара);
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| РегКВТ.Номенклатура КАК Номенклатура,
| РегКВТ.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
| РегКВТ.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| " + КоличествоТовара + " / 1000 КАК Количество,
| РегКВТ.СерияНоменклатуры КАК СерияНоменклатуры,
| ВЫБОР
| КОГДА РегКВТ.Качество = &КачествоПустаяСсылка ТОГДА
| &КачествоНовый
| ИНАЧЕ
| РегКВТ.Качество
| КОНЕЦ КАК Качество
|ИЗ
| РегистрСведений.КодыВесовогоТовара КАК РегКВТ
|ГДЕ
| РегКВТ.Код = &Код
|");
Запрос.УстановитьПараметр("КачествоПустаяСсылка", мКачествоПустаяСсылка);
Запрос.УстановитьПараметр("КачествоНовый", мКачествоНовый);
Запрос.УстановитьПараметр("Код", Число(КодТовара));
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
РезультатЗапроса = РезультатЗапроса.Выбрать();
РезультатЗапроса.Следующий();
Номенклатура = РезультатЗапроса.Номенклатура;
ХарактеристикаНоменклатуры = РезультатЗапроса.ХарактеристикаНоменклатуры;
СерияНоменклатуры = РезультатЗапроса.СерияНоменклатуры;
Качество = РезультатЗапроса.Качество;
ЕдиницаИзмерения = РезультатЗапроса.ЕдиницаИзмерения;
Количество = Количество * РезультатЗапроса.Количество;
НоменклатураНайдена = Истина;
КонецЕсли;
КонецЕсли;
Если Не НоменклатураНайдена Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| РегШК.Владелец КАК Владелец,
| РегШК.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| РегШК.СерияНоменклатуры КАК СерияНоменклатуры,
| РегШК.Качество КАК Качество
|ИЗ
| РегистрСведений.Штрихкоды КАК РегШК
|ГДЕ
| РегШК.Штрихкод = &Штрихкод
|");
Запрос.УстановитьПараметр("Штрихкод", ШК);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
РезультатЗапроса = РезультатЗапроса.Выбрать();
РезультатЗапроса.Следующий();
Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
Номенклатура = РезультатЗапроса.Владелец;
ХарактеристикаНоменклатуры = РезультатЗапроса.ХарактеристикаНоменклатуры;
СерияНоменклатуры = РезультатЗапроса.СерияНоменклатуры;
Качество = РезультатЗапроса.Качество;
ЕдиницаИзмерения = РезультатЗапроса.ЕдиницаИзмерения;
НоменклатураНайдена = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если НоменклатураНайдена Тогда
ФормаКлиент.СШКНоменклатура(Номенклатура, ХарактеристикаНоменклатуры,
СерияНоменклатуры, Качество, ЕдиницаИзмерения, Количество, Неопределено);
Иначе
Текст = ПолучитьТекстОшибкиСШКТО(мОшибкаНеизвестныйШтрихкод, ШК, ТипШК);
Сообщить(Текст);
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ОбработатьТаблицуШтрихкодов()
ПоказатьКак понять эту строчку: "Количество=Количество*РезультатЗапроса.Количество;" Какой ее смысл? В итоге при загрузке товара из ТСД, количество задваивается. Объясните, кто разбирался с этим, в чем подвох.
По теме из базы знаний
- Роберт Мартин: "Будущее программирования" / Robert Martin: "The Future of Programming"
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Как избавиться от большого количества комментариев в коде с использованием EDT + Git
- Логирование в приложениях
- Как спецификация OpenAPI помогает писать тесты http-сервисов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
я так понимаю.. на входе штрихкод (весового товара) и количество (именно этих штрихкодов), т.к. товар весовой, то количество нормальное достаем из самого штрихкода, получаем, например, 0,234кг и дальше умножаем на 5 - так как в ТСД сказали, что таких штрихкодов 5 штук - 5 упаковок мяса по 0,234кг. Итого 5*0,234
(2) sommid, В Ваших рассуждениях есть логика, но если тсд настроен на автоматическую установку количества, то количество штрих кодов - это вес одной позиции:
У меня количество - это тот же вес из штрих кода, то есть 0,234 и в итоге в табличную часть, колонку количество заноситься 0,234*0,234
Если проставлять вручную количество(именно количество штрих кодов), тогда получиться все правильно, но как то мне не нравиться такая идея.Может я где то упустил какие нибудь параметры.
У меня количество - это тот же вес из штрих кода, то есть 0,234 и в итоге в табличную часть, колонку количество заноситься 0,234*0,234
Если проставлять вручную количество(именно количество штрих кодов), тогда получиться все правильно, но как то мне не нравиться такая идея.Может я где то упустил какие нибудь параметры.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот