Добрый день, помогите пожалуйста разобраться с проблемой.
При закрытии месяца выдает ошибку расчета себестоимости, точнее их две и по двум товарам, вот в качестве примера один из них.
2 ошибки привожу в скриншотах.
пишет что есть не корректный остаток в регистре по складу Транзит, количество равно 0, а себестоимость отлична от нуля.
далее привожу два отчета и движения в регистре по этому товару и складу за июнь 2015 года.
самое для меня интересное и не понятное, что в регистре есть измерение "раздел учета". и если его включить в группировки ("отчет себестоимость за июнь2015 (развернутый))", то остатки идут по разделу "Товары на складах", а обороты по "пустому" разделу учета.
а если я открываю движения в регистре (что прикрепил в виде таблице и скрина) то там все движения идут по разделу "Товары на складах"
а главное что как я ни мучил базу, я не смог добиться чтобы отчет показал мне строку из регистра, где остаток кол-ва 0, а себестоимость не ноль.
на всякий случай привожу процедуру с запросами которые дают эту ошибку, которые находятся в модуле менеджера в документе "РасчетСебестоимостиТоваров"
Процедура ПроверитьКорректностьОстатковВРегистреСебестоимостьТоваров(Дата, Организация)
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Организации.Ссылка КАК Организация
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО
| ИЛИ Организации.Ссылка = &Организация";
Запрос.УстановитьПараметр("Организация", Организация);
МассивОрганизаций = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Организация");
Запрос.Текст = "
|ВЫБРАТЬ
| Таб.РазделУчета КАК РазделУчета,
| Таб.ВидЗапасов КАК ВидЗапасов,
| Таб.Организация КАК Организация,
| АналитикаНоменклатуры.Номенклатура КАК Номенклатура,
| АналитикаНоменклатуры.Номенклатура.Код КАК КодНоменклатуры,
| АналитикаНоменклатуры.Характеристика КАК Характеристика,
| АналитикаНоменклатуры.Склад КАК Склад,
| Таб.Количество КАК Количество,
| Таб.Стоимость КАК Стоимость,
| Таб.СтоимостьБезНДС КАК СтоимостьБезНДС,
| Таб.СуммаДопРасходов КАК СуммаДопРасходов,
| Таб.СуммаДопРасходовБезНДС КАК СуммаДопРасходовБезНДС,
| Таб.СтоимостьРегл КАК СтоимостьРегл
|
|ИЗ
| (ВЫБРАТЬ
| Т.РазделУчета КАК РазделУчета,
| Т.ВидЗапасов КАК ВидЗапасов,
| Т.Организация КАК Организация,
| Т.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| Т.КоличествоОстаток КАК Количество,
| Т.СтоимостьОстаток КАК Стоимость,
| Т.СтоимостьБезНДСОстаток КАК СтоимостьБезНДС,
| Т.СуммаДопРасходовОстаток КАК СуммаДопРасходов,
| Т.СуммаДопРасходовБезНДСОстаток КАК СуммаДопРасходовБезНДС,
| Т.СтоимостьРеглОстаток КАК СтоимостьРегл
| ИЗ
| РегистрНакопления.СебестоимостьТоваров.Остатки(&ГраницаДатаОкончания,
| Организация В (&МассивОрганизаций)) КАК Т
| ) КАК Таб
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
| ПО Таб.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
|
|ГДЕ
| Таб.Количество = 0
| И НЕ(Таб.Стоимость = 0
| И Таб.СтоимостьБезНДС = 0
| И Таб.СуммаДопРасходов = 0
| И Таб.СуммаДопРасходовБезНДС = 0
| И Таб.СтоимостьРегл = 0)";
Запрос.УстановитьПараметр("МассивОрганизаций", МассивОрганизаций);
Запрос.УстановитьПараметр("ГраницаДатаОкончания", Новый Граница(КонецМесяца(Дата), ВидГраницы.Включая));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПредставлениеТовара = НоменклатураКлиентСервер.ПредставлениеНоменклатуры(Выборка.Номенклатура, Выборка.Характеристика);
ПредставлениеТовара = ПредставлениеТовара + ", код: " + Выборка.КодНоменклатуры;
ПредставлениеТовара = ПредставлениеТовара + ", склад: " + Выборка.Склад + ", организация: " + Выборка.Организация;
ПредставлениеТовара = ПредставлениеТовара + ", раздел учета: " + Выборка.РазделУчета;
Если ЗначениеЗаполнено(Выборка.ВидЗапасов) Тогда
ПредставлениеТовара = ПредставлениеТовара + ", вид запасов: " + Выборка.ВидЗапасов;
КонецЕсли;
ПредставлениеНекорректногоОстатка = "Количество = 0"
+ ?(Выборка.Стоимость <> 0,", Стоимость = " + Выборка.Стоимость, "")
+ ?(Выборка.СтоимостьБезНДС <> 0,", СтоимостьБезНДС = " + Выборка.СтоимостьБезНДС, "")
+ ?(Выборка.СуммаДопРасходов <> 0,", СуммаДопРасходов = " + Выборка.СуммаДопРасходов, "")
+ ?(Выборка.СуммаДопРасходовБезНДС <> 0,", СуммаДопРасходовБезНДС = " + Выборка.СуммаДопРасходовБезНДС, "")
+ ?(Выборка.СтоимостьРегл <> 0,", СтоимостьРегл = " + Выборка.СтоимостьРегл, "");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'По номенклатуре %1 обнаружен некорректный остаток в регистре ""Себестоимость товаров"" на дату %3 : %2'"),
ПредставлениеТовара,
ПредставлениеНекорректногоОстатка,
КонецМесяца(Дата));
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Расчет себестоимости'"),
УровеньЖурналаРегистрации.Ошибка,
,
Строка(Выборка.Номенклатура) + " (" + СокрЛП(Выборка.КодНоменклатуры) + ")",
ТекстОшибки,
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецЦикла;
КонецПроцедуры