Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отчет движения товаров с ценами номенклатуры

Отчет движения товаров с ценами номенклатуры
Я
   orman071
 
06.03.20 - 12:35
Добрый день друзья. Строю отчет движение товаров с ценами номенклатуры в скд. Конфигурация не типовая. Беру данные из таблицы остатки и обороты, начальный остаток, делю колонки прихода и расхода в разрезе документа движения и конечный остаток, далее левым соединение беру срез последних цен из регистра сведений цены номенклатуры срез последних и левым соединением присоединяю к таблице остатки и обороты с выводом этих данных проблем нет. В вычисляемых полях цену умножаю на количество конечный остаток, поле называю сумма чтобы было ясно дальнейший вопрос.Проблема заключается в том что когда происходит вывод отчета с группировкой по товарам поле сумма считается неверно. Но если выводить детальные записи, там где есть регистратор, все считается корректно. Прошу вас помочь мне. Я уже все что знал перепробовал. Возможно я чего то незнаю так как опыта еще не так много
Вот запрос
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Товар,
    ТоварыНаСкладахОстаткиИОбороты.Товар.Штрихкод,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ОприходованиеТоваров)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоОприходование,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ВозвратТоваровОтПокупателя)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоВозвратОтПокупателя,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ПоступлениеТоваров)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоПоступление,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ПеремещениеТоваров)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоПеремещениеНаСклад,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ПеремещениеТоваров)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоПеремещениеСоСклада,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.РеализацияТоваров)) <> НЕОПРЕДЕЛЕНО
                ИЛИ (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ВозвратТоваровОтПокупателя)) <> НЕОПРЕДЕЛЕНО
                ИЛИ (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ОтчетКассовойСмены)) <> НЕОПРЕДЕЛЕНО
                ИЛИ (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.Чек)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход - ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоПродаж,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.ВозвратПоставщику)) <> НЕОПРЕДЕЛЕНО
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
        ИНАЧЕ NULL
    КОНЕЦ КАК КоличествоВозвратПоставщику,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
    ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Авто, , Склад = &ВыбранныйСклад) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстаткиИОбороты.Товар = ЦеныНоменклатурыСрезПоследних.Номенклатура
 
 Партнерская программа EFSOL Oblako
   lodger
 
1 - 06.03.20 - 12:40
начнем с того, что конструкцию
(ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Документ.РеализацияТоваров)) <> НЕОПРЕДЕЛЕНО
надо заменить на
ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваров
   orman071
 
2 - 06.03.20 - 12:47
Хорошо. Сейчас переделаю
   orman071
 
3 - 06.03.20 - 12:53
Все так же как и было. Это не помогло
   lodger
 
4 - 06.03.20 - 12:55
(3) а это и не должно было помочь в исходной проблеме. это общая оптимизация.
далее
ИНАЧЕ NULL
на
ИНАЧЕ 0
это ж ресурс? нед движения = 0.

потом. "сумма", которое Колво*Цену в вычисляемых полях - придется прописывать в ресурсах по группировкам, на какое  Колво и какую цену ориентироваться.
ибо в группировке Склад общее колво умноженное на любую цену будет шняга - там должна быть сумма от умножений количества товара помноженное на цену товара. для начала, конца и оборота разные поля количеств.
   orman071
 
5 - 06.03.20 - 13:04
А как добавить одно вычисляемое поле с разными группировками. Отчет не будет ругаться при формировании на одинаковые поля?
   orman071
 
6 - 06.03.20 - 13:07
Я могу указать по каким полям рассчитать но это не даст результата. проблема в том что например товар 1 цена 14, начост 2 , приход 2 , кон ост 4 , сумма 28 при группировке по товару, а при группировке по детальным записям 56 тоесть детальные записи верно показывают. Я вот понять не могу почему так. Вроде в группировке по товару кон ост цифра верная а рассчет суммы ошибочный
   orman071
 
7 - 06.03.20 - 13:14
https://yadi.sk/i/9QBPzGHhvrNMRA


Вот ссылка с примером того как выводятся данные. Прошу вас помогите так как я уже все что знал перепробовал
   orman071
 
8 - 06.03.20 - 13:30
Начал эксперементы с вычисляемым полем. Изменил формулу написал туда просто показать КоличествоКонечныйОстаток. Выводит правильную цифру. Далее написал просто чтобы показал Цену, так же верно показал. Но когда я далее написал цена * КоличествоКонечныйОстаток то вывел непонятную цифру

Список тем форума
 
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.