8.х УТ УТ 11 предварительный расчет себестоимости переполнение поля

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

  1. TopicStarter Overlay
    Mahail
    Offline

    Mahail Новичок в 1С

    Регистрация:
    25 окт 2015
    Сообщения:
    35
    Симпатии:
    1
    Баллы:
    4
    Здравствуйте.
    Конфигурация УТ 11.1.9.66, платформа 8.3.7.1845.
    При проведении документа "Расчет себестоимости" с вариантом расчета "предварительный" вылетает ошибка "Ошибка при выполнении обработчика - 'ОбработкаПроведения'
    по причине:
    {Документ.РасчетСебестоимостиТоваров.МодульОбъекта(2028)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    Выборка = Запрос.ВыполнитьПакет()[1].Выбрать();
    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Переполнение поля
    по причине:
    Ошибка SQL: Переполнение поля". При варианте расчета "фактический" "по ФИФО" документ проводится нормально.
    При этом пару дней назад такая ошибка не появлялась и все проводилось нормально.
    Понятно, что скорее всего ошибка где-то в ведении учета, но как найти где именно и исправить?
    Пробовал перепровести документы поступления и реализации товаров за август, не помогло, ошибка так и осталась.
    --- Объединение сообщений, 31 авг 2016 ---
    Также пробовал сделать фактический расчет себестоимость за август по ФИФО и в сентябре провести предварительный расчет себестоимости, ошибка так и осталась.
    Последнее редактирование: 31 авг 2016
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    для начала выполните Тестирование и Исправление с удалением битых ссылок и объектов + пересчет итогов.
  3. TopicStarter Overlay
    Mahail
    Offline

    Mahail Новичок в 1С

    Регистрация:
    25 окт 2015
    Сообщения:
    35
    Симпатии:
    1
    Баллы:
    4
    Сделал. Ошибка осталась, всё та же, всё там же.
  4. LordMaverick
    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    -"Конфигурация УТ 11.1.9.66, платформа 8.3.7.1845."
    а ошибка в SQL, а версии не указаны серверов :))

    и раз -"При этом пару дней назад такая ошибка не появлялась и все проводилось нормально.
    Понятно, что скорее всего ошибка где-то в ведении учета, но как найти где именно и исправить?"

    то подозрение что возможно кто-то многоооо цифир вбил куда-то в какое-то поле
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Можно хотя бы текст запроса посмотреть, попробовать выполнить его в консоле запросов.
  6. TopicStarter Overlay
    Mahail
    Offline

    Mahail Новичок в 1С

    Регистрация:
    25 окт 2015
    Сообщения:
    35
    Симпатии:
    1
    Баллы:
    4
    Код:
    Запрос = Новый Запрос;
        Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    
        МаксКоличествоИтераций = мМаксКоличествоИтераций;
        СчетчикИтераций        = 1;
        ТекущееОтклонение      = 1;
        ТребуемаяТочность      = мТребуемаяТочность;
    
        Пока ТекущееОтклонение > ТребуемаяТочность И СчетчикИтераций <= МаксКоличествоИтераций Цикл
    
            Запрос.Текст =
            "
            // 0 Расчет коэффициентов (количество перехода из состояния в состояние) уравнения.
            |ВЫБРАТЬ
            |    УзлыКорректировки.НомерУзла                                     КАК НомерУзла,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.Стоимость)                  КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициент,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьБезНДС)            КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентБезНДС,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ПостояннаяРазница)          КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентПостояннаяРазница,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ВременнаяРазница)           КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентВременнаяРазница,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходы)        КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходы,
            |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходыБезНДС)  КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходыБезНДС,
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.Стоимость * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ КАК ЧИСЛО(23,10))) КАК Стоимость,
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.СтоимостьБезНДС * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ КАК ЧИСЛО(23,10))) КАК СтоимостьБезНДС,
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.ПостояннаяРазница * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ КАК ЧИСЛО(23,10))) КАК ПостояннаяРазница,
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.ВременнаяРазница * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ КАК ЧИСЛО(23,10))) КАК ВременнаяРазница,
            |
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.СтоимостьДопРасходы * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ
            |        КАК ЧИСЛО(23,10)))           КАК СтоимостьДопРасходы,
            |    СУММА(ВЫРАЗИТЬ(
            |            ВЫБОР
            |                КОГДА УзлыКорректировки.Количество = 0
            |                    ИЛИ ПеремещенияСписания.НомерУзлаПриемник Есть NULL
            |                    ИЛИ ПеремещенияСписания.НомерУзлаИсточник Есть NULL ТОГДА
            |                    0
            |                ИНАЧЕ
            |                    ВтТаблицаРешений.СтоимостьДопРасходыБезНДС * ПеремещенияСписания.Количество / УзлыКорректировки.Количество
            |            КОНЕЦ
            |        КАК ЧИСЛО(23,10)))           КАК СтоимостьДопРасходыБезНДС
            |
            |ПОМЕСТИТЬ ВременнаяТаблицаРешений
            |ИЗ
            |    ВтУзлыКорректировки КАК УзлыКорректировки
            |
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВтПеремещенияСписания КАК ПеремещенияСписания
            |        ПО УзлыКорректировки.НомерУзла = ПеремещенияСписания.НомерУзлаПриемник
            |
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ВтТаблицаРешений
            |        ПО ПеремещенияСписания.НомерУзлаИсточник = ВтТаблицаРешений.НомерУзла
            |
            |СГРУППИРОВАТЬ ПО
            |    УзлыКорректировки.НомерУзла
            |
            |ИНДЕКСИРОВАТЬ ПО
            |    НомерУзла
            |;
            |/////////////////////////////////////////////////////////////////////////////
            // 1 Расчет ошибки расчета.
            |ВЫБРАТЬ
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
            |            + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))) > 0 ТОГДА
            |
            |                    ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК Отклонение,
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
            |            + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))) > 0 ТОГДА
            |
            |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК ОтклонениеБезНДС,
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница
            |            + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))) > 0 ТОГДА
            |
            |                    ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК ОтклонениеПостояннаяРазница,
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница
            |            + ЕСТЬNULL(ВременнаяТаблицаРешений.ВременнаяРазница,0))) > 0 ТОГДА
            |
            |                    ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.ВременнаяРазница,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК ОтклонениеВременнаяРазница,
            |
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))> 0 ТОГДА
            |
            |                ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))
            |
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК ОтклонениеДопрасходы,
            |    ЕСТЬNULL(
            |        МАКСИМУМ(
            |            ВЫБОР КОГДА ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))> 0 ТОГДА
            |
            |                ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))
            |
            |            ИНАЧЕ
            |                -(
            |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |                    + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))
            |                    )
            |            КОНЕЦ
            |            )
            |        ,0) КАК ОтклонениеДопрасходыБезНДС
            |ИЗ
            |    ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
            |
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ТаблицаРешений
            |        ПО ВременнаяТаблицаРешений.НомерУзла = ТаблицаРешений.НомерУзла
            |;
            |//////////////////////////////////////////////////////////////
            // 2 Удаление таблиц.
            |УНИЧТОЖИТЬ ВтТаблицаРешений
            |;
            // 3 Суммирование коэффициентов.
            |//////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ВременнаяТаблицаРешений.НомерУзла  КАК НомерУзла,
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициент
            |            + ВременнаяТаблицаРешений.Стоимость
            |        КАК ЧИСЛО(23,10))              КАК Стоимость,
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
            |            + ВременнаяТаблицаРешений.СтоимостьБезНДС
            |        КАК ЧИСЛО(23,10))              КАК СтоимостьБезНДС,
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница
            |            + ВременнаяТаблицаРешений.ПостояннаяРазница
            |        КАК ЧИСЛО(23,10))              КАК ПостояннаяРазница,
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница
            |            + ВременнаяТаблицаРешений.ВременнаяРазница
            |        КАК ЧИСЛО(23,10))              КАК ВременнаяРазница,
            |
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
            |            + ВременнаяТаблицаРешений.СтоимостьДопРасходы
            |        КАК ЧИСЛО(23,10))              КАК СтоимостьДопРасходы,
            |    ВЫРАЗИТЬ(
            |        ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходыБезНДС
            |            + ВременнаяТаблицаРешений.СтоимостьДопРасходыБезНДС
            |        КАК ЧИСЛО(23,10))              КАК СтоимостьДопРасходыБезНДС
            |
            |ПОМЕСТИТЬ ВтТаблицаРешений
            |
            |ИЗ
            |    ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
            |
            |ИНДЕКСИРОВАТЬ ПО
            |    НомерУзла
            |;
            |//////////////////////////////////////////////////////////////
            // 4 Удаление таблицы.
            |    УНИЧТОЖИТЬ ВременнаяТаблицаРешений
            |";
            Выборка = Запрос.ВыполнитьПакет()[1].Выбрать();
            Если Выборка.Следующий() Тогда
             
                ТекущееОтклонение = Макс(Выборка.Отклонение, Выборка.ОтклонениеБезНДС, Выборка.ОтклонениеДопрасходы, Выборка.ОтклонениеДопрасходыБезНДС);
    
            Иначе
    
                ТекущееОтклонение = 0;//Отклонений нет
    
            КонецЕсли;
    
            СчетчикИтераций = СчетчикИтераций + 1;
    
        КонецЦикла;
    Код процедуры, на которой валится с ошибкой. При этом первые 8 итераций проходят, запрос выполняется, на 9 итерации ошибка выскакивает.
    Последнее редактирование модератором: 1 сен 2016

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