Помогите понять строчку кода

1. HameleonA 104 02.07.13 12:32 Сейчас в теме
Доброго времени суток.
Конфигурация УТ 10.3.20.2
Обработка ТОСервер, Процедура ОбработатьТаблицуШтрихкодов
Процедура ОбработатьТаблицуШтрихкодов(ТаблицаШтрихкодов, ФормаКлиент)

    Перем Номенклатура;
    Перем ХарактеристикаНоменклатуры;
    Перем СерияНоменклатуры;
    Перем Качество;
    Перем ЕдиницаИзмерения;

    ТаблицаШтрихкодов.Свернуть("Штрихкод", "Количество");

    Для Каждого СтрокаТЧ Из ТаблицаШтрихкодов Цикл
        ШК = СтрокаТЧ.Штрихкод;
        Количество = СтрокаТЧ.Количество;

        Если РаботаСТорговымОборудованием.ТипШтрихкодаEAN8ТО(ШК) Тогда
            ТипШК = мEAN8;
        ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаEAN13ТО(ШК) Тогда
            ТипШК = мEAN13;
        Иначе
            ТипШК = мCODE39;
        КонецЕсли;

        НоменклатураНайдена = Ложь;

        Если ЗначениеЗаполнено(мПрефиксВесовогоТовара)
           И ЗначениеЗаполнено(мДлинаКодаВесовогоТовара)
           И ТипШК = мEAN13
           И Лев(ШК, 2) = "2" + мПрефиксВесовогоТовара Тогда
            КодТовара        = Сред(ШК, 3, мДлинаКодаВесовогоТовара);
            КоличествоТовара = Сред(ШК, 3 + мДлинаКодаВесовогоТовара, 10 - мДлинаКодаВесовогоТовара);

            Запрос = Новый Запрос("
            |ВЫБРАТЬ ПЕРВЫЕ 1
            |    РегКВТ.Номенклатура                         КАК Номенклатура,
            |    РегКВТ.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
            |    РегКВТ.ХарактеристикаНоменклатуры           КАК ХарактеристикаНоменклатуры,
            |    " + КоличествоТовара + " / 1000             КАК Количество,
            |    РегКВТ.СерияНоменклатуры                    КАК СерияНоменклатуры,
            |    ВЫБОР
            |        КОГДА РегКВТ.Качество = &КачествоПустаяСсылка ТОГДА
            |            &КачествоНовый
            |        ИНАЧЕ
            |            РегКВТ.Качество
            |    КОНЕЦ                                       КАК Качество
            |ИЗ
            |    РегистрСведений.КодыВесовогоТовара          КАК РегКВТ
            |ГДЕ
            |    РегКВТ.Код = &Код
            |");

            Запрос.УстановитьПараметр("КачествоПустаяСсылка", мКачествоПустаяСсылка);
            Запрос.УстановитьПараметр("КачествоНовый",        мКачествоНовый);
            Запрос.УстановитьПараметр("Код",                  Число(КодТовара));

            РезультатЗапроса = Запрос.Выполнить();
            Если Не РезультатЗапроса.Пустой() Тогда
                РезультатЗапроса = РезультатЗапроса.Выбрать();
                РезультатЗапроса.Следующий();

                Номенклатура               = РезультатЗапроса.Номенклатура;
                ХарактеристикаНоменклатуры = РезультатЗапроса.ХарактеристикаНоменклатуры;
                СерияНоменклатуры          = РезультатЗапроса.СерияНоменклатуры;
                Качество                   = РезультатЗапроса.Качество;
                ЕдиницаИзмерения           = РезультатЗапроса.ЕдиницаИзмерения;
                Количество                 = Количество * РезультатЗапроса.Количество;

                НоменклатураНайдена = Истина;
            КонецЕсли;
        КонецЕсли;

        Если Не НоменклатураНайдена Тогда
            Запрос = Новый Запрос("
            |ВЫБРАТЬ ПЕРВЫЕ 1
            |    РегШК.Владелец                   КАК Владелец,
            |    РегШК.ЕдиницаИзмерения           КАК ЕдиницаИзмерения,
            |    РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            |    РегШК.СерияНоменклатуры          КАК СерияНоменклатуры,
            |    РегШК.Качество                   КАК Качество
            |ИЗ
            |    РегистрСведений.Штрихкоды        КАК РегШК
            |ГДЕ
            |    РегШК.Штрихкод = &Штрихкод
            |");

            Запрос.УстановитьПараметр("Штрихкод", ШК);
            РезультатЗапроса = Запрос.Выполнить();
            Если Не РезультатЗапроса.Пустой() Тогда
                РезультатЗапроса = РезультатЗапроса.Выбрать();
                РезультатЗапроса.Следующий();
                Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
                    Номенклатура               = РезультатЗапроса.Владелец;
                    ХарактеристикаНоменклатуры = РезультатЗапроса.ХарактеристикаНоменклатуры;
                    СерияНоменклатуры          = РезультатЗапроса.СерияНоменклатуры;
                    Качество                   = РезультатЗапроса.Качество;
                    ЕдиницаИзмерения           = РезультатЗапроса.ЕдиницаИзмерения;

                    НоменклатураНайдена = Истина;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;

        Если НоменклатураНайдена Тогда
            ФормаКлиент.СШКНоменклатура(Номенклатура, ХарактеристикаНоменклатуры,
               СерияНоменклатуры, Качество, ЕдиницаИзмерения, Количество, Неопределено);
        Иначе
            Текст = ПолучитьТекстОшибкиСШКТО(мОшибкаНеизвестныйШтрихкод, ШК, ТипШК);
            Сообщить(Текст);
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры // ОбработатьТаблицуШтрихкодов()
Показать


Как понять эту строчку: "Количество=Количество*РезультатЗапроса.Количество;" Какой ее смысл? В итоге при загрузке товара из ТСД, количество задваивается. Объясните, кто разбирался с этим, в чем подвох.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sommid 02.07.13 13:11 Сейчас в теме
я так понимаю.. на входе штрихкод (весового товара) и количество (именно этих штрихкодов), т.к. товар весовой, то количество нормальное достаем из самого штрихкода, получаем, например, 0,234кг и дальше умножаем на 5 - так как в ТСД сказали, что таких штрихкодов 5 штук - 5 упаковок мяса по 0,234кг. Итого 5*0,234
3. HameleonA 104 02.07.13 13:14 Сейчас в теме
(2) sommid, В Ваших рассуждениях есть логика, но если тсд настроен на автоматическую установку количества, то количество штрих кодов - это вес одной позиции:
У меня количество - это тот же вес из штрих кода, то есть 0,234 и в итоге в табличную часть, колонку количество заноситься 0,234*0,234
Если проставлять вручную количество(именно количество штрих кодов), тогда получиться все правильно, но как то мне не нравиться такая идея.Может я где то упустил какие нибудь параметры.
4. sommid 02.07.13 13:19 Сейчас в теме
значит данные в тсд неверные.. вернее не соответствуют логике обработки. Либо там, либо там алгоритм правьте
5. HameleonA 104 02.07.13 13:30 Сейчас в теме
(4) sommid, Поправил обработку обслуживания (так как конфигурация базовая). Спасибо за разъяснение. а то яголову ломал, зачем умножать "вес на вес". Спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот