Имя: Пароль:
1C
1С v8
Проблема с расчетом себестоимости в УТ 11.1.10.131
0 zerbite
 
28.12.15
17:30
Добрый день, помогите пожалуйста разобраться с проблемой.
При закрытии месяца выдает ошибку расчета себестоимости, точнее их две и по двум товарам, вот в качестве примера один из них.
2 ошибки привожу в скриншотах.
пишет что есть не корректный остаток в регистре по складу Транзит, количество равно 0, а себестоимость отлична от нуля.

далее привожу два отчета и движения в регистре по этому товару и складу за июнь 2015 года.
самое для меня интересное и не понятное, что в регистре есть измерение "раздел учета". и если его включить в группировки ("отчет себестоимость за июнь2015 (развернутый))", то остатки идут по разделу "Товары на складах", а обороты по "пустому" разделу учета.
а если я открываю движения в регистре (что прикрепил в виде таблице и скрина) то там все движения идут по разделу "Товары на складах"

а главное что как я ни мучил базу, я не смог добиться чтобы отчет показал мне строку из регистра, где остаток кол-ва 0, а себестоимость не ноль.

на всякий случай привожу процедуру с запросами которые дают эту ошибку, которые находятся в модуле менеджера в документе "РасчетСебестоимостиТоваров"

Процедура ПроверитьКорректностьОстатковВРегистреСебестоимостьТоваров(Дата, Организация)

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

    МассивОрганизаций = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Организация");

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

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл

        ПредставлениеТовара = НоменклатураКлиентСервер.ПредставлениеНоменклатуры(Выборка.Номенклатура, Выборка.Характеристика);
        ПредставлениеТовара = ПредставлениеТовара + ", код: " + Выборка.КодНоменклатуры;
        ПредставлениеТовара = ПредставлениеТовара + ", склад: " + Выборка.Склад + ", организация: " + Выборка.Организация;
        ПредставлениеТовара = ПредставлениеТовара + ", раздел учета: " + Выборка.РазделУчета;
        Если ЗначениеЗаполнено(Выборка.ВидЗапасов) Тогда
            ПредставлениеТовара = ПредставлениеТовара + ", вид запасов: " + Выборка.ВидЗапасов;
        КонецЕсли;
        ПредставлениеНекорректногоОстатка = "Количество = 0"
                + ?(Выборка.Стоимость <> 0,", Стоимость = " + Выборка.Стоимость, "")
                + ?(Выборка.СтоимостьБезНДС <> 0,", СтоимостьБезНДС = " + Выборка.СтоимостьБезНДС, "")
                + ?(Выборка.СуммаДопРасходов <> 0,", СуммаДопРасходов = " + Выборка.СуммаДопРасходов, "")
                + ?(Выборка.СуммаДопРасходовБезНДС <> 0,", СуммаДопРасходовБезНДС = " + Выборка.СуммаДопРасходовБезНДС, "")
                + ?(Выборка.СтоимостьРегл <> 0,", СтоимостьРегл = " + Выборка.СтоимостьРегл, "");
        
        ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'По номенклатуре %1 обнаружен некорректный остаток в регистре ""Себестоимость товаров"" на дату %3 : %2'"),
            ПредставлениеТовара,
            ПредставлениеНекорректногоОстатка,
            КонецМесяца(Дата));

        ЗаписьЖурналаРегистрации(
            НСтр("ru = 'Расчет себестоимости'"),
            УровеньЖурналаРегистрации.Ошибка,
            ,
            Строка(Выборка.Номенклатура) + " (" + СокрЛП(Выборка.КодНоменклатуры) + ")",
            ТекстОшибки,
            РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);

    КонецЦикла;

КонецПроцедуры

прикрипленные файлы: https://yadi.sk/d/kFIQmjl8mYmrb
Основная теорема систематики: Новые системы плодят новые проблемы.