|
Проблема с расчетом себестоимости в УТ 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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |