Имя: Пароль:
1C
 
ERP: Закрытие месяца. Распределение затрат и расчет себестоимости.
,
0 Sj
 
28.02.23
21:45
Доброе время суток.

  ERP 2.5.8.378. При выполнении этапа "Распределение затрат и расчет себестоимости." падает такая, вот ,ошибка:
При выполнении подзапроса 4 (РаспределитьНаДругиеСтатьи) произошла ошибка:
Ошибка при вызове метода контекста (Выполнить)
{ОбщийМодуль.РасчетСебестоимостиПрикладныеАлгоритмы.Модуль(18226)}:РезультатПодзапроса = Запрос.Выполнить();
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(7198)}:,,,НСтр("ru = 'Инициализация служебных таблиц для распределения затрат.';
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(6848)}:ПодготовитьПроизводственныеРасходыКРаспределению(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(863)}:ПолучитьДанныеДляРаспределенияДолейПроизводственныхРасходов(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(357)}:РасчетСебестоимостиПостатейныеЗатраты.РаспределитьДолиПроизводственныхРасходов(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(534)}:РассчитатьВсе(ПараметрыЗапуска,    ПараметрыРасчета, ПараметрыОтладки);
{ОбщийМодуль.РасчетСебестоимостиКорректировкаСтоимости.Модуль(474)}:РасчетСебестоимости.РассчитатьВсеВПопыткеИсключении(ПараметрыЗапуска);
{(1)}:РасчетСебестоимостиКорректировкаСтоимости.Выполнить_РасчетПартийИСебестоимости(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5339)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{Обработка.ОперацииЗакрытияМесяца.МодульМенеджера(2021)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(
{ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль(3764)}:Обработки.ОперацииЗакрытияМесяца.ВыполнитьРасчетЭтапов(ПараметрыЗапуска);

по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Обнаружена ошибка: деление на ноль.
HRESULT=80040E14, SQLSrvr: SQLSTATE=22012, state=1, Severity=10, native=8134, line=1


Текст запроса:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДД.Регистратор КАК Регистратор,
    ДД.Дата КАК Дата,
    ДД.Организация КАК Организация,
    ДД.Подразделение КАК Подразделение,
    ДД.НаправлениеДеятельности КАК НаправлениеДеятельности,
    ДД.СтатьяРасходов КАК СтатьяРасходов,
    ДД.АналитикаРасходов КАК АналитикаРасходов,
    ДД.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияРасходовУпр,
    ДД.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРасходовРегл,
    ДД.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияРасходовНУ,
    Списание.ИдентификаторСтроки КАК ИдентификаторСтроки,
    Списание.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
    Списание.Подразделение КАК КорПодразделение,
    Списание.СтатьяРасходов КАК КорСтатьяРасходов,
    Списание.АналитикаРасходов КАК КорАналитикаРасходов,
    Списание.АналитикаАктивовПассивов КАК КорАналитикаАктивовПассивов,
    Списание.ДоляСтоимости / ВЫБОР
        КОГДА НЕ ДД.РаспределятьПоПартиям
            ТОГДА 1
        ИНАЧЕ ДД.ДоляСтоимостиНаПроизводство
    КОНЕЦ КАК ДоляСтоимости
ПОМЕСТИТЬ РаспределитьНаДругиеСтатьи
ИЗ Регистраторы КАК ДД     ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат.Списание КАК Списание     ПО ДД.Регистратор = Списание.Ссылка
ИНДЕКСИРОВАТЬ ПО ДД.Регистратор

Очевидно, что ошибка падает из-за

    Списание.ДоляСтоимости / ВЫБОР КОГДА НЕ ДД.РаспределятьПоПартиям ТОГДА 1 ИНАЧЕ ДД.ДоляСтоимостиНаПроизводство КОНЕЦ КАК ДоляСтоимости

интуитивно поставил
ВЫБОР КОГДА НЕ ДД.РаспределятьПоПартиям или ДД.ДоляСтоимостиНаПроизводство = 0 ТОГДА 1 ИНАЧЕ ДД.ДоляСтоимостиНаПроизводство

но в этом случае выполнение этапа вообще где-то прекращается без выхода. Но ранее выполнение этого этапа проходило и при исходном тексте.

Сами Регистраторы получаются так:

        |ВЫБРАТЬ
        |    ДД.Ссылка КАК Регистратор,
        |    ДД.Дата КАК Дата,
        |    ДД.НазначениеНастройкиРаспределения,
        |    ДД.Организация,
        |    ДД.НаправлениеРаспределения,
        |    ДД.БазаРаспределенияПоПодразделениям,
        |    ДД.БазаРаспределенияПоПартиям,
        |    ДД.Подразделение,
        |    ВЫБОР
        |        КОГДА Т.ЭтоРасходОВЗ ТОГДА Т.НаправлениеДеятельности
        |        ИНАЧЕ ДД.НаправлениеДеятельности
        |    КОНЕЦ КАК НаправлениеДеятельности,
        |    Т.СтатьяРасходов,
        |    ДД.АналитикаРасходов,
        |    Т.ЭтоРасходОВЗ,
        |    ВЫБОР
        |        КОГДА Т.СтатьяРасходов.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
        |            И НЕ ВтОВЗ.ВариантРаспределенияРасходовУпр ЕСТЬ NULL
        |        ТОГДА ВтОВЗ.ВариантРаспределенияРасходовУпр
        |        ИНАЧЕ Т.СтатьяРасходов.ВариантРаспределенияРасходовУпр
        |    КОНЕЦ КАК ВариантРаспределенияРасходовУпр,
        |    ВЫБОР
        |        КОГДА Т.СтатьяРасходов.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
        |            И НЕ ВтОВЗ.ВариантРаспределенияРасходовРегл ЕСТЬ NULL
        |        ТОГДА ВтОВЗ.ВариантРаспределенияРасходовРегл
        |        ИНАЧЕ Т.СтатьяРасходов.ВариантРаспределенияРасходовРегл
        |    КОНЕЦ КАК ВариантРаспределенияРасходовРегл,
        |    ВЫБОР
        |        КОГДА Т.СтатьяРасходов.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
        |            И НЕ ВтОВЗ.ВариантРаспределенияРасходовНУ ЕСТЬ NULL
        |        ТОГДА ВтОВЗ.ВариантРаспределенияРасходовНУ
        |        ИНАЧЕ Т.СтатьяРасходов.ВариантРаспределенияРасходовНУ
        |    КОНЕЦ КАК ВариантРаспределенияРасходовНУ,
        |    ДД.Показатель,
        |    ДД.НаЛюбыеНаправлениеДеятельности,
        |    ДД.СтатьяКалькуляции,
        |    ДД.РаспределятьПоПартиям,
        |    ДД.РаспределятьПоПодразделениям,
        |    ДД.РаспределятьНаСтатьи,
        |    ДД.ОставитьВНЗП,
        |    ДД.НаВыпускТекущегоМесяца,
        |    ДД.ПартииУказаныВручную,
        |    ДД.ПодразделенияУказаныВручную,
        |    ДД.РегламентированныйУчет,
        |    ДД.НалоговыйУчет,
        |    ДД.УправленческийУчет,
        |    ДД.ДоляСтоимостиНаПроизводство,
        |    ДД.ДоляСтоимостиНаНЗП,
        |    ДД.ДоляСтоимостиНаСтатьи,
        |    ДД.ВсегоДолейСтоимости,
        |    ДД.РаспределятьНаОВЗ,
        |    ДД.ДоляСтоимостиНаОВЗ,
        |    ВЫБОР
        |        КОГДА ДД.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СуммаМатериальныхИТрудозатрат)
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПоМатериальнымИТрудозатратам)
        |        КОГДА ДД.БазаРаспределенияПоПартиям В (ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СуммаРасходовНаОплатуТруда),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.КоличествоРаботУказанныхВидов),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.НормативыОплатыТруда))
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПоТрудозатратам)
        |        КОГДА ДД.БазаРаспределенияПоПартиям В (ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СуммаМатериальныхЗатрат),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.НормативРасходаМатериала),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.КоличествоУказанныхМатериалов),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ОбъемУказанныхМатериалов),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВесУказанныхМатериалов))
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПоМатериальнымЗатратам)
        |        КОГДА ДД.БазаРаспределенияПоПартиям В (ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.КоличествоПродукции),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВесПродукции),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ОбъемПродукции),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПлановаяСтоимостьПродукции))
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПоПродукции)
        |        КОГДА ДД.БазаРаспределенияПоПартиям В (ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.КоличествоПродукцииСУчетомБудущихВыпусков),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ОбъемПродукцииСУчетомБудущихВыпусков),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВесПродукцииСУчетомБудущихВыпусков),
        |                                                ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПлановаяСтоимостьПродукцииСУчетомБудущихВыпусков))
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПоПродукцииСУчетомБудущихВыпусков)
        |    КОНЕЦ КАК ПравилоОтнесенияНаВыпуск
        |ПОМЕСТИТЬ Регистраторы
        |ИЗ
        |    Документ.РаспределениеПрочихЗатрат КАК ДД
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВтОВЗ КАК ВтОВЗ
        |        ПО ДД.АналитикаРасходов = ВтОВЗ.ОВЗ
        |            И ДД.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РасходыКРаспределению КАК Т
        |        ПО (Т.Организация = ДД.Организация)
        |            И (Т.Подразделение = ДД.Подразделение)
        |            И (Т.ЭтоРасходОВЗ ИЛИ Т.СтатьяРасходов = ДД.СтатьяРасходов)
        |            И (Т.АналитикаРасходов = ДД.АналитикаРасходов)
        |            И (Т.ЭтоРасходОВЗ ИЛИ Т.НаправлениеДеятельности = ДД.НаправлениеДеятельности)
        |ГДЕ
        |    ДД.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
        |    И ДД.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        |    И ДД.Организация В(&МассивОрганизаций)
        |    И ДД.Проведен
        |    И (ДД.Ссылка = &Регистратор
        |            ИЛИ &Регистратор = НЕОПРЕДЕЛЕНО)
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Регистратор
        |;

То есть и здесь просто значение реквизита из Документ.РаспределениеПрочихЗатрат, но визуально там везде 0, и у документов за другие месяца тоже 0. Смотрел сами Регистраторы - во всех 0. То есть даже где-то в транзакции ничего не заполняется.

Что может быть, куда копать? Помогите советом, добрым словом, не дайте сгинуть в отладчике и мыслях о бренности бытия в самом расцвете сил.
1 shuhard
 
01.03.23
06:30
(0)2.5.8.378 - в первую очередь догнать до текущего релиза, ошибки в распределении прочих расходов при смене релиза не редки
2 Fedor-1971
 
01.03.23
10:11
(0) Посмотри в сторону документов поступления ТМЦ с доп.расходами в разных периодах (например, приход в январе, а таможенные платежи в феврале)
Бывает, что в запросе проскакивает пустая аналитика затрат и, соответственно, 0 сумма