Ошибка sql переполнение поля ошибка sql переполнение поля

  • Главная
  •  / 
  • Статьи
  •  / 
  • Программирование на 1С:Предприятие
  •  / 
  • Ошибка SQL: переполнение поля

Ошибка SQL: переполнение поля

Переполнение поля — это превышение размерности типа в SQL.

Пример причины такой ошибки может быть следующим:

Функция ВЫРАЗИТЬ ххх КАК ЧИСЛО(5, 2) может вызывать такую ошибку, если ххх будет больше 5 разрядов то выводится данная ошибка, нельзя же 100 000 выразить как 99 999. А вот с числами после запятой все просто — они просто округляются сколько бы их там не было.

Возврат к списку

   memogolik

15 — 17.01.14 — 15:45

ВЫБРАТЬ

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    
    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    
    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ КАК Заказ,

    ТаблицаАналитики.СчетУчета,

    //ДляРеглУчета СУММА(

    //ДляРеглУчета     ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

    //ДляРеглУчета         УчетЗатрат.СтоимостьНУОстаток

    //ДляРеглУчета     ИНАЧЕ

    //ДляРеглУчета         0

    //ДляРеглУчета     КОНЕЦ

    //ДляРеглУчета ) КАК СтоимостьНУОстаток,

    //ДляРеглУчета СУММА(

    //ДляРеглУчета     ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

    //ДляРеглУчета         УчетЗатрат.КоличествоНУОстаток

    //ДляРеглУчета     ИНАЧЕ

    //ДляРеглУчета         0

    //ДляРеглУчета     КОНЕЦ

    //ДляРеглУчета ) КАК КоличествоНУОстаток,

    СУММА(УчетЗатрат.СтоимостьОстаток) КАК СтоимостьОстаток,

    СУММА(УчетЗатрат.КоличествоОстаток) КАК КоличествоОстаток

ПОМЕСТИТЬ ТаблицаСтоимостиЗатрат

ИЗ

    РегистрНакопления.УчетЗатрат.Остатки(&КонДата,

        (

        АналитикаВидаУчета,

        АналитикаУчетаЗатрат,

        АналитикаРаспределенияЗатрат,

        АналитикаУчетаПартий

        ) В (

            ВЫБРАТЬ

                 АналитикаВидаУчета,

                //ДляРеглУчета АналитикаВидаУчетаРегл,

                АналитикаУчетаЗатрат,

                АналитикаРаспределенияЗатрат,

                АналитикаУчетаПартий

            ИЗ

                ТаблицаАналитики

            )

    
    ) КАК УчетЗатрат

    
    ЛЕВОЕ СОЕДИНЕНИЕ

        ТаблицаАналитики КАК ТаблицаАналитики

    ПО

         УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчета

        //ДляРеглУчета УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчетаРегл

        И УчетЗатрат.АналитикаУчетаЗатрат = ТаблицаАналитики.АналитикаУчетаЗатрат

        И УчетЗатрат.АналитикаРаспределенияЗатрат = ТаблицаАналитики.АналитикаРаспределенияЗатрат

        И УчетЗатрат.АналитикаУчетаПартий = ТаблицаАналитики.АналитикаУчетаПартий

СГРУППИРОВАТЬ ПО

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    
    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    
    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ,

    ТаблицаАналитики.СчетУчета

;

////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    
    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    
    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ КАК ЗаказРегл,

    ТаблицаАналитики.СчетУчета,

     СУММА(

         ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

             УчетЗатрат.СтоимостьНУОстаток

         ИНАЧЕ

             0

         КОНЕЦ

     ) КАК СтоимостьНУОстаток,

     СУММА(

         ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

             УчетЗатрат.КоличествоНУОстаток

         ИНАЧЕ

             0

         КОНЕЦ

     ) КАК КоличествоНУОстаток,

    СУММА(УчетЗатрат.СтоимостьОстаток) КАК СтоимостьОстаток,

    СУММА(УчетЗатрат.КоличествоОстаток) КАК КоличествоОстаток

ПОМЕСТИТЬ ТаблицаСтоимостиЗатратРегл

ИЗ

    РегистрНакопления.УчетЗатратРегл.Остатки(&КонДата,

        (

        АналитикаВидаУчета,

        АналитикаУчетаЗатрат,

        АналитикаРаспределенияЗатрат,

        АналитикаУчетаПартий

        ) В (

            ВЫБРАТЬ

                //ДляУпрУчета АналитикаВидаУчета,

                 АналитикаВидаУчетаРегл,

                АналитикаУчетаЗатрат,

                АналитикаРаспределенияЗатрат,

                АналитикаУчетаПартий

            ИЗ

                ТаблицаАналитики

            )

    
    ) КАК УчетЗатрат

    
    ЛЕВОЕ СОЕДИНЕНИЕ

        ТаблицаАналитики КАК ТаблицаАналитики

    ПО

        //ДляУпрУчета УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчета

         УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчетаРегл

        И УчетЗатрат.АналитикаУчетаЗатрат = ТаблицаАналитики.АналитикаУчетаЗатрат

        И УчетЗатрат.АналитикаРаспределенияЗатрат = ТаблицаАналитики.АналитикаРаспределенияЗатрат

        И УчетЗатрат.АналитикаУчетаПартий = ТаблицаАналитики.АналитикаУчетаПартий

СГРУППИРОВАТЬ ПО

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    
    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    
    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ,

    ТаблицаАналитики.СчетУчета

;

////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    Док.*,

    Док.СтатьяЗатрат.ВидЗатрат КАК ВидЗатрат,

    Док.СтатьяЗатрат.СтатусМатериальныхЗатрат КАК СтатусМатериальныхЗатрат,

    Неопределено КАК СпособРаспределенияЗатрат,

    Док.Номенклатура КАК Затрата,

    Док.ХарактеристикаНоменклатуры КАК ХарактеристикаЗатраты,

    Док.СерияНоменклатуры КАК СерияЗатраты,

    ВЫБОР КОГДА Док.КодОперации <> Неопределено ТОГДА

        Док.КодОперации

    ИНАЧЕ

       &ПрямыеЗатраты

    КОНЕЦ КАК КодОперации,

    ВЫБОР КОГДА Док.Заказ ССЫЛКА Документ.ЗаказПокупателя

        И Док.Заказ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.Переработка)

    ТОГДА

        ЗНАЧЕНИЕ(Перечисление.ВариантыВыпускаПродукции.ПродукцияИзДавальческогоСырья)

    ИНАЧЕ

          Неопределено

    КОНЕЦ КАК ВариантВыпускаПродукции,

    &Ссылка КАК ДокументВыпуска,

        ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА

            Док.Сумма

         КОГДА ТаблицаСтоимостиЗатратУУ.КоличествоОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратУУ.КоличествоОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

            Док.Количество *

            ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток /

            ТаблицаСтоимостиЗатратУУ.КоличествоОстаток

        КОНЕЦ КАК СуммаУУ,

        ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА

            Док.СуммаРегл

         КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

            Док.Количество *

            ТаблицаСтоимостиЗатратРегл.СтоимостьОстаток /

            ТаблицаСтоимостиЗатратРегл.КоличествоОстаток

        КОНЕЦ КАК СуммаБУ,

        ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА

            Док.СуммаНал

         КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

            Док.Количество *

            ТаблицаСтоимостиЗатратРегл.СтоимостьНУОстаток /

            ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток

        КОНЕЦ КАК СуммаНУ,

    //ФиксСтоимость        Док.Сумма КАК СуммаУУ,

    //ФиксСтоимость        Док.СуммаРегл КАК СуммаБУ,

    //ФиксСтоимость        Док.СуммаНал КАК СуммаНУ,

    //ПоНулевойУУ         0 КАК СуммаУУ,

    //ПоНулевойБУ         0 КАК СуммаБУ,

    //ПоНулевойБУ         0 КАК СуммаНУ,

    Док.Количество

ИЗ

    ТаблицаДокумента КАК Док

        ЛЕВОЕ СОЕДИНЕНИЕ

            ТаблицаСтоимостиЗатрат КАК ТаблицаСтоимостиЗатратУУ

        ПО

            Док.Номенклатура = ТаблицаСтоимостиЗатратУУ.Затрата

            И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратУУ.ХарактеристикаЗатраты

            И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратУУ.СерияЗатраты

            И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратУУ.СтатьяЗатрат

            И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратУУ.НоменклатурнаяГруппа

            И Док.ЗаказНЗП = ТаблицаСтоимостиЗатратУУ.Заказ

            И Док.ПодразделениеНЗП = ТаблицаСтоимостиЗатратУУ.Подразделение

        ЛЕВОЕ СОЕДИНЕНИЕ

            ТаблицаСтоимостиЗатратРегл КАК ТаблицаСтоимостиЗатратРегл

        ПО

            Док.Номенклатура = ТаблицаСтоимостиЗатратРегл.Затрата

            И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратРегл.ХарактеристикаЗатраты

            И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратРегл.СерияЗатраты

            И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратРегл.СтатьяЗатрат

            И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратРегл.НоменклатурнаяГруппа

            И Док.ЗаказНЗПРегл = ТаблицаСтоимостиЗатратРегл.ЗаказРегл

            И (Док.СчетЗатрат = ТаблицаСтоимостиЗатратРегл.СчетУчета

                ИЛИ ТаблицаСтоимостиЗатратРегл.СчетУчета = Неопределено)

            И Док.ПодразделениеОрганизацииНЗП = ТаблицаСтоимостиЗатратРегл.ПодразделениеОрганизации

УПОРЯДОЧИТЬ ПО

    Док.НомерСтроки

Ошибка выполнения запроса Ошибка при выполнении операции над данными: Ошибка SQL: Переполнение поля

Описание ошибки:
Подобная ошибка возникала при выполнении разработанного отчета.

Найденные решения:

Ошибка SQL: Переполнение поляОшибка выполнения запроса Ошибка при выполнении операции над данными

Получались значения в запросе которые выходили за пределы размерности типа. Например, в запросе было ВЫРАЗИТЬ( … , ЧИСЛО(7, 2)). Число полученное или выбранное запросом оказалось больше, поэтому замена на ЧИСЛО (15, 2) исправило ошибку.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

07-05-2014

Журавлев А.С.
(www.azhur-c.ru)

Подскажите, кто встречался с подобной ошибкой! Что она означает? База файловая… УТ 11.0.7.8, доработанная, движок 8.2.15.294. {ОбщийМодуль.рамМодульСервер.Модуль}: Ошибка при вызове метода контекста (Выполнить)    Выборка = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: Ошибка SQL: Переполнение поля по причине: Ошибка SQL: Переполнение поля

ну может кто нить что нить предположит для поддержания дискуссии? )))

может, действительно переполнилось поле? бывает.

а где то поле и чем отчерпывать идей нету?

числа итоговые большие получаются примерно?

юзай для всех числовых полей Выразить с четким указанием разрядености, да побольше. SQL в план запроса сам вставляет это, но разрядность выбирает сам исходя из своих соображений, возможно из-за этого

а кто ж его знает? запрос то не выполняется. ошибка начала вылетать после исправления соединения с таблицей свободных остатков с внутреннего на левое. до этого все в порядке было

попробуй ибо зло от ЕстьNULL, лни разрядность рушат +

поставил ВЫРАЗИТЬ КАК Число(15,2), не помогло ((( там же в базе если все просуммировать, меньше получится!

на все поля? покаж запрос

ты совесть то имей ЕСТЬNULL(СвободныеОстаткиОстатки.рамКПоступлениюОстаток, 0)* где ты приведение сделал ?

а тут СУММА(…..всё это дело) и выразить на всю её?

ёпрст! туплю, бывает. щазззз…

спасибо, помогло! плюс еще ошибка была, когда было внутреннее соединение, отбор на таблицу остатков работал и на документы. а сделал левое соединение, и поехали всю базу лопатить…

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

 0 

   

Распечатать

При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец «datetime» привело к переполнению

Подробнее текст такой:

... по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "ВремяРаботы"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению.
HRESULT=80040E07, HRESULT=80040E07, SQLSrvr: SQLSTATE=01003, state=1, Severity=0, native=8153, line=1
SQLSrvr: SQLSTATE=22007, state=1, Severity=10, native=517, line=1[/pre]

В файловой базе это выглядит так:

Ошибка создания набора данных "ВремяРаботы"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Переполнение поля 'DATEDIFF'
по причине:
Ошибка SQL: Переполнение поля 'DATEDIFF'[/pre]

После долгих поисков проблемы, опытным путем было выяснено: Ошибка возникает в момент попытки в запросе отнять от даты несколько секунд. Решения два:

1. не использовать в запросе: ДОБАВИТЬКДАТЕ или РАЗНОСТЬДАТ

2. на базе SQL при создании указывать смещение дат 2000

Понравилась статья? Поделить с друзьями:
  • Ошибка spn 4376 fmi 3
  • Ошибка sql переполнение поля 1с унф
  • Ошибка sql истек период оценки
  • Ошибка spn 3841 fmi 4
  • Ошибка sql запрос insert into