Инвентаризация НЗП

1. nadina777 10.07.15 08:54 Сейчас в теме
Добрый день! Конфигурация для Казахстана поэтому регистры накопления отличаются.
В форму документа "Инвентаризация НЗП" на вкладку "Материалы "добавили кнопку "Заполнить по затратам".

Запрос написанный др человеком работает не корректно. Не можем разобраться.

[/ВЫБРАТЬ
    КлючиРаспределенияЗатрат.Продукция,
    КлючиРаспределенияЗатрат.НоменклатурнаяГруппа КАК НГ,
    КлючиРаспределенияЗатрат.Спецификация,
    СУММА(УчетЗатратРеглОбороты.КоличествоПриход) КАК КоличествоВыпуск,
    NULL КАК КоличествоНЗП
ПОМЕСТИТЬ ВТ_Выпуск
ИЗ
    РегистрНакопления.УчетЗатратРегл.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК УчетЗатратРеглОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КлючиВидаУчета
        ПО УчетЗатратРеглОбороты.АналитикаВидаУчета = КлючиВидаУчета.Ссылка
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаРаспределенияЗатрат КАК КлючиРаспределенияЗатрат
        ПО УчетЗатратРеглОбороты.АналитикаРаспределенияЗатрат = КлючиРаспределенияЗатрат.Ссылка
ГДЕ
    КлючиВидаУчета.РазделУчета.Ссылка = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Выпуск)
    И КлючиВидаУчета.ПодразделениеОрганизации = &ПодразделениеДокумента
    И УчетЗатратРеглОбороты.КоличествоПриход > 0

СГРУППИРОВАТЬ ПО
    КлючиРаспределенияЗатрат.НоменклатурнаяГруппа,
    КлючиРаспределенияЗатрат.Спецификация,
    КлючиРаспределенияЗатрат.Продукция

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ИнвентаризацияНЗППродукция.Номенклатура,
    ИнвентаризацияНЗППродукция.НоменклатурнаяГруппа,
    ИнвентаризацияНЗППродукция.Спецификация,
    NULL,
    СУММА(ИнвентаризацияНЗППродукция.Количество)
ИЗ
    Документ.ИнвентаризацияНЗП.Продукция КАК ИнвентаризацияНЗППродукция
ГДЕ
    ИнвентаризацияНЗППродукция.Ссылка = &СсылкаДок

СГРУППИРОВАТЬ ПО
    ИнвентаризацияНЗППродукция.Номенклатура,
    ИнвентаризацияНЗППродукция.НоменклатурнаяГруппа,
    ИнвентаризацияНЗППродукция.Спецификация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_Выпуск.Продукция,
    ВТ_Выпуск.НГ,
    ВТ_Выпуск.Спецификация,
    СУММА(ВТ_Выпуск.КоличествоВыпуск) КАК КоличествоВыпуск,
    СУММА(ВТ_Выпуск.КоличествоНЗП) КАК КоличествоНЗП
ПОМЕСТИТЬ ВТ_ВыпускГруппировка
ИЗ
    ВТ_Выпуск КАК ВТ_Выпуск

СГРУППИРОВАТЬ ПО
    ВТ_Выпуск.Продукция,
    ВТ_Выпуск.НГ,
    ВТ_Выпуск.Спецификация
;

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

СГРУППИРОВАТЬ ПО
    КлючиУчетаЗатрат.Затрата,
    КлючиРаспределенияЗатрат.НоменклатурнаяГруппа,
    КлючиВидаУчета.СчетУчетаБУ,
    КлючиВидаУчета.СчетУчетаНУ,
    КлючиВидаУчета.ВидУчетаНУ,
    КлючиУчетаЗатрат.СтатьяЗатрат
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка КАК Ссылка,
    ВЫБОР
        КОГДА АналогиНоменклатуры.Аналог ЕСТЬ NULL 
            ТОГДА СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура
        ИНАЧЕ АналогиНоменклатуры.Аналог
    КОНЕЦ КАК Номенклатура,
    СпецификацииНоменклатурыИсходныеКомплектующие.Количество / ВЫБОР
        КОГДА СпецификацииНоменклатурыВыходныеИзделия.Количество ЕСТЬ NULL 
                ИЛИ СпецификацииНоменклатурыВыходныеИзделия.Количество = 0
            ТОГДА 1
        ИНАЧЕ СпецификацииНоменклатурыВыходныеИзделия.Количество
    КОНЕЦ КАК Количество,
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК НоменклатураАналога
ПОМЕСТИТЬ ВТ_СпецификацияНоменклатураАналоги
ИЗ
    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВыпускГруппировка КАК ВТ_ВыпускГруппировка
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = ВТ_ВыпускГруппировка.Спецификация
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналогиНоменклатуры КАК АналогиНоменклатуры
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = АналогиНоменклатуры.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК СпецификацииНоменклатурыВыходныеИзделия
            ПО СпецификацииНоменклатуры.Ссылка = СпецификацииНоменклатурыВыходныеИзделия.Ссылка
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = СпецификацииНоменклатуры.Ссылка
ГДЕ
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка В
            (ВЫБРАТЬ
                ВТ_ВыпускГруппировка.Спецификация
            ИЗ
                ВТ_ВыпускГруппировка)
    И СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сборочная)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_ВыпускГруппировка.Продукция,
    ВТ_ВыпускГруппировка.Спецификация,
    (ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоВыпуск, 0) + ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоНЗП, 0)) * ВТ_СпецификацияНоменклатураАналоги.Количество КАК База,
    ВТ_ВыпускГруппировка.НГ,
    ВТ_СпецификацияНоменклатураАналоги.Номенклатура КАК Номенклатура,
    ВТ_СпецификацияНоменклатураАналоги.НоменклатураАналога
ПОМЕСТИТЬ ВТ_РасчетБазы
ИЗ
    ВТ_ВыпускГруппировка КАК ВТ_ВыпускГруппировка
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СпецификацияНоменклатураАналоги КАК ВТ_СпецификацияНоменклатураАналоги
        ПО ВТ_ВыпускГруппировка.Спецификация = ВТ_СпецификацияНоменклатураАналоги.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_ВыпускГруппировка.Продукция,
    ВТ_ВыпускГруппировка.Спецификация,
    (ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоВыпуск, 0) + ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоНЗП, 0)) * ВТ_СпецификацияНоменклатураАналоги.Количество КАК База,
    ВТ_ВыпускГруппировка.НГ,
    ВТ_СпецификацияНоменклатураАналоги.Номенклатура КАК Номенклатура,
    ВТ_СпецификацияНоменклатураАналоги.НоменклатураАналога
ПОМЕСТИТЬ ВТ_РасчетБазы_ПоСпец
ИЗ
    Документ.ИнвентаризацияНЗП.Продукция КАК ИнвентаризацияНЗППродукция
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ВыпускГруппировка КАК ВТ_ВыпускГруппировка
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СпецификацияНоменклатураАналоги КАК ВТ_СпецификацияНоменклатураАналоги
            ПО ВТ_ВыпускГруппировка.Спецификация = ВТ_СпецификацияНоменклатураАналоги.Ссылка
        ПО ИнвентаризацияНЗППродукция.Спецификация = ВТ_ВыпускГруппировка.Спецификация
ГДЕ
    ИнвентаризацияНЗППродукция.Ссылка = &СсылкаДок
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_РасчетБазы_ПоСпец.Продукция,
    ВТ_РасчетБазы_ПоСпец.Номенклатура КАК Номенклатура,
    ВТ_РасчетБазы_ПоСпец.База
ПОМЕСТИТЬ ВТ_База
ИЗ
    ВТ_РасчетБазы_ПоСпец КАК ВТ_РасчетБазы_ПоСпец

СГРУППИРОВАТЬ ПО
    ВТ_РасчетБазы_ПоСпец.Продукция,
    ВТ_РасчетБазы_ПоСпец.База,
    ВТ_РасчетБазы_ПоСпец.Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_РасчетБазы.Номенклатура,
    СУММА(ВТ_РасчетБазы.База) КАК База
ПОМЕСТИТЬ ВТ_БазаПоЗатрате
ИЗ
    ВТ_РасчетБазы КАК ВТ_РасчетБазы

СГРУППИРОВАТЬ ПО
    ВТ_РасчетБазы.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ВТ_ВыпускГруппировка.Продукция,
    ВТ_Затраты.СтатьяЗатрат,
    ВТ_Затраты.ВидУчетаНУ,
    ВТ_Затраты.СчетУчетаНУ,
    ВТ_Затраты.СчетУчетаБУ,
    ВТ_Затраты.Затрата,
    ВТ_Затраты.КоличествоПриход * (ВТ_База.База / ВТ_БазаПоЗатрате.База) * (ВТ_ВыпускГруппировка.КоличествоНЗП / (ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоНЗП, 0) + ЕСТЬNULL(ВТ_ВыпускГруппировка.КоличествоВыпуск, 0)))
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    СУММА(ВТ_БезГруппировки.Количество) КАК Количество,
    ВТ_БезГруппировки.СтатьяЗатрат,
    ВТ_БезГруппировки.ВидУчетаНУ,
    ВТ_БезГруппировки.СчетЗатратНУ,
    ВТ_БезГруппировки.СчетЗатратБУ,
    ВТ_БезГруппировки.Номенклатура
ИЗ
    ВТ_БезГруппировки КАК ВТ_БезГруппировки

СГРУППИРОВАТЬ ПО
    ВТ_БезГруппировки.Номенклатура,
    ВТ_БезГруппировки.СчетЗатратБУ,
    ВТ_БезГруппировки.СчетЗатратНУ,
    ВТ_БезГруппировки.ВидУчетаНУ,
    ВТ_БезГруппировки.СтатьяЗатрат 
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TMV 14 10.07.15 10:23 Сейчас в теме
(1) nadina777,
работает не корректно
. Что конкретно не так.
З.Ы. Телепатов нет тут.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот