8.х УТ Ошибка SQL: Переполнение поля

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем AndyKKKK, 10 июн 2016.

  1. TopicStarter Overlay
    AndyKKKK
    Offline

    AndyKKKK

    Регистрация:
    8 дек 2015
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Есть УТ 11.2 (11.2.3.143). Сформирован документ "Пересчет товаров". При загрузке данных из ТСД выскакивает ошибка:
    {РегистрСведений.ШтрихкодыНоменклатуры.МодульМенеджера(103)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Переполнение поля
    по причине:
    Ошибка SQL: Переполнение поля
    Ошибка проявляется только при загрузке штрихкодов номенклатуры, у которой Единица хранения - метр. При загрузке штрихкодов номенклатуры с другой единицей хранения (штуки, килограммы и т.д.) все подгружается без проблем.
    При включении отладки пишет: Ошибка времени выполнения:{РегистрСведений.ШтрихкодыНоменклатуры.МодульМенеджера(103)}: Ошибка при вызове метода контекста (Выполнить) в модуле РегистрСведений.ШтрихкодыНоменклатуры.МодульМенеджера, строка 103

    Вложения:

  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    в идеале еще нужен текст выполняемого запроса. как вариант - во временной таблице создается индекс с длиной ключа, превышающей 900 байт
  3. TopicStarter Overlay
    AndyKKKK
    Offline

    AndyKKKK

    Регистрация:
    8 дек 2015
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Я новичек в этом деле... Как текст выполняемого запроса получить?
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.437
    Симпатии:
    373
    Баллы:
    104
    в строке 103 "запускается" выполнение запроса, потому туда и ссылается ошибка

    сам запрос выше

    вот аналогичный код процедуры, но из релиза 11.1.10.185
    Код:
    // Функция возращает соответствие с данными штрихкодов
    //
    // Параметры:
    //  КэшированныеЗначения - Структура - см.ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения
    //  Штрихкоды - Массив - обрабатываемые штрихкоды
    //
    Процедура ПолучитьДанныеПоШтрихкодам(КэшированныеЗначения, Штрихкоды) Экспорт
    
        Запрос = Новый Запрос;
      
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
        |    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
        |    ШтрихкодыНоменклатуры.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
        |    ШтрихкодыНоменклатуры.Характеристика КАК Характеристика,
        |    ШтрихкодыНоменклатуры.Упаковка КАК Упаковка,
        |    ШтрихкодыНоменклатуры.Номенклатура.ПодакцизныйТовар КАК ПодакцизныйТовар,
        |    ЕСТЬNULL(ШтрихкодыНоменклатуры.Упаковка.Коэффициент, 1) КАК Коэффициент,
        |    ВЫБОР
        |        КОГДА ШтрихкодыНоменклатуры.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
        |            ТОГДА ЛОЖЬ
        |        ИНАЧЕ ИСТИНА
        |    КОНЕЦ КАК ХарактеристикиИспользуются,
        |    ШтрихкодыНоменклатуры.Номенклатура.ИспользоватьУпаковки КАК ИспользоватьУпаковки,
        |    МАКСИМУМ(УпаковкиНоменклатуры.Ссылка) КАК ЕдиничнаяУпаковка,
        |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ УпаковкиНоменклатуры.Ссылка) КАК КоличествоЕдиничныхУпаковок,
        |    ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)) КАК ВариантРасчетаЦеныНабора,
        |    ЕСТЬNULL(УпаковкиНоменклатуры.ЕдиницаИзмерения, ШтрихкодыНоменклатуры.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмерения
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК УпаковкиНоменклатуры
        |        ПО (УпаковкиНоменклатуры.Коэффициент = 1)
        |            И (НЕ УпаковкиНоменклатуры.ПометкаУдаления)
        |            И ШтрихкодыНоменклатуры.Номенклатура.ЕдиницаИзмерения = УпаковкиНоменклатуры.ЕдиницаИзмерения
        |            И (ШтрихкодыНоменклатуры.Номенклатура.НаборУпаковок <> ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
        |                    И ШтрихкодыНоменклатуры.Номенклатура.НаборУпаковок = УпаковкиНоменклатуры.Владелец
        |                ИЛИ ШтрихкодыНоменклатуры.Номенклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
        |                    И ШтрихкодыНоменклатуры.Номенклатура = УпаковкиНоменклатуры.Владелец)
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
        |        ПО (ВариантыКомплектацииНоменклатуры.Владелец = ШтрихкодыНоменклатуры.Номенклатура)
        |            И (ВариантыКомплектацииНоменклатуры.Характеристика = ШтрихкодыНоменклатуры.Характеристика)
        |            И (ВариантыКомплектацииНоменклатуры.Основной)
        |ГДЕ
        |    ШтрихкодыНоменклатуры.Штрихкод В(&МассивШтрихкодов)
        |
        |СГРУППИРОВАТЬ ПО
        |    ШтрихкодыНоменклатуры.Штрихкод,
        |    ШтрихкодыНоменклатуры.Номенклатура,
        |    ШтрихкодыНоменклатуры.Характеристика,
        |    ШтрихкодыНоменклатуры.Упаковка,
        |    ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)),
        |    ЕСТЬNULL(УпаковкиНоменклатуры.ЕдиницаИзмерения, ШтрихкодыНоменклатуры.Номенклатура.ЕдиницаИзмерения)";
      
        МассивШтрихкодов = Новый Массив;
      
        Для Каждого ТекШтрихкод Из Штрихкоды Цикл
            Штрихкод = ВРег(СокрЛП(ТекШтрихкод));
            МассивШтрихкодов.Добавить(Штрихкод);
          
            ИнформацияПоШтрихкодам = ОбработкаТабличнойЧастиКлиентСервер.СтуктураКешируемойИнформацииПоШтрихкоду();
            ИнформацияПоШтрихкодам.Штрихкод = Штрихкод;
            КэшированныеЗначения.Штрихкоды.Вставить(Штрихкод, ИнформацияПоШтрихкодам);
        КонецЦикла;
    
        Запрос.УстановитьПараметр("МассивШтрихкодов", МассивШтрихкодов);
    
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            ТекДанные = КэшированныеЗначения.Штрихкоды[ВРег(СокрЛП(Выборка.Штрихкод))];
            ТекДанные.Номенклатура               = Выборка.Номенклатура;
            ТекДанные.ТипНоменклатуры            = Выборка.ТипНоменклатуры;
            ТекДанные.Характеристика             = Выборка.Характеристика;
            ТекДанные.Упаковка                   = Выборка.Упаковка;
            ТекДанные.КоличествоУпаковок         = 1;
            ТекДанные.ПодакцизныйТовар           = Выборка.ПодакцизныйТовар;
            ТекДанные.ХарактеристикиИспользуются = Выборка.ХарактеристикиИспользуются;
            ТекДанные.Коэффициент                = Выборка.Коэффициент;
            ТекДанные.ЕдиницаИзмерения           = Выборка.ЕдиницаИзмерения;
            ТекДанные.ЕдиничнаяУпаковка          = ?(Выборка.КоличествоЕдиничныхУпаковок = 1 И Выборка.Коэффициент = 1,
                                                        Выборка.ЕдиничнаяУпаковка,
                                                        Неопределено);
            ТекДанные.НесколькоЕдиничныхУпаковок = ?(Выборка.КоличествоЕдиничныхУпаковок > 1, Истина, Ложь);
            ТекДанные.НеизвестныйШтрихкод        = Ложь;
            ТекДанные.ВариантРасчетаЦеныНабора   = Выборка.ВариантРасчетаЦеныНабора;
        КонецЦикла;
      
    КонецПроцедуры
    
    PS
    10 июня вышла версия 11.2.3.150
  5. TopicStarter Overlay
    AndyKKKK
    Offline

    AndyKKKK

    Регистрация:
    8 дек 2015
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо!!!! Обновил до 11.2.3.150 - все пошло!!!

Поделиться этой страницей