Имя: Пароль:
1C
1С v8
Вопрос по СКД
,
0 hawk1
 
06.11.15
19:01
Есть внешняя обработка, в качестве источника данных используется запрос
ВЫБРАТЬ
    ПересдачаКладовщикаТаблицаДанных.Ссылка.НачСмена,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.КонСмена,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.СкладОтправитель КАК СдалСклад,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.СкладПолучатель КАК ПолучилСклад,
    ПересдачаКладовщикаТаблицаДанных.Номенклатура,                            
    СУММА(ПересдачаКладовщикаТаблицаДанных.Остаток) КАК ОстатокДок,
    СУММА(ПересдачаКладовщикаТаблицаДанных.Факт) КАК ФактДок
ПОМЕСТИТЬ ПересдачаДок
ИЗ
    Документ.ПересдачаКладовщика.ТаблицаДанных КАК ПересдачаКладовщикаТаблицаДанных
ГДЕ
    ПересдачаКладовщикаТаблицаДанных.Ссылка = &ДокПересдачи
    И ПересдачаКладовщикаТаблицаДанных.Номенклатура.Родитель В(&ГотоваяПродукция)

СГРУППИРОВАТЬ ПО
    ПересдачаКладовщикаТаблицаДанных.Номенклатура,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.СкладПолучатель,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.СкладОтправитель,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.НачСмена,
    ПересдачаКладовщикаТаблицаДанных.Ссылка.КонСмена
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПересдачаКладовщикаТаблицаДанных.Номенклатура,
    СУММА(ПересдачаКладовщикаТаблицаДанных.Факт) КАК ФактНачДок
ПОМЕСТИТЬ ДокументФактНач
ИЗ
    Документ.ПересдачаКладовщика.ТаблицаДанных КАК ПересдачаКладовщикаТаблицаДанных
ГДЕ
    ПересдачаКладовщикаТаблицаДанных.Ссылка = &ДокДляНачФакта
    И ПересдачаКладовщикаТаблицаДанных.Номенклатура.Родитель В(&ГотоваяПродукция)

СГРУППИРОВАТЬ ПО
    ПересдачаКладовщикаТаблицаДанных.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК Приход,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК Расход,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОприходованиеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.ВидОприходования = ЗНАЧЕНИЕ(Перечисление.ВидыОприходования.СПроизводства)
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
            ИНАЧЕ 0
        КОНЕЦ) КАК Приход_Цех,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
                    И (ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Код = "00000000023"
                        ИЛИ ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Код = "00000002818"
                        ИЛИ ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Код = "00000002780"
                        ИЛИ ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Код = "00000000022")
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
            ИНАЧЕ 0
        КОНЕЦ) КАК Приход_Чужой,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладОтправитель = &СкладВозвратов
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель В (&СкладПродукции)
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
            ИНАЧЕ 0
        КОНЕЦ) КАК ПриходХороший,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладОтправитель В (&СкладПродукции)
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель = &ДоработкаЦех
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК НаДоработку,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладОтправитель = &ДоработкаЦех
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель В (&СкладПродукции)
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
            ИНАЧЕ 0
        КОНЕЦ) КАК СДоработки,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель В (&СкладФасовки)
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК НаФасовку,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладОтправитель В (&СкладФасовки)
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель В (&СкладПродукции)
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход
            ИНАЧЕ 0
        КОНЕЦ) КАК СФасовки,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладОтправитель В (&СкладПродукции)
                    И ТоварыНаСкладахОстаткиИОбороты.Регистратор.СкладПолучатель = &ПереработкаЦех
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК НаПереработку
ПОМЕСТИТЬ ОборотТов
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
            &НачалоПериода,
            &КонецПериода,
            Авто,
            ,
            Номенклатура.Родитель В (&ГотоваяПродукция)
                И Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ОстаткиТоваров.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
    ХаляваОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Номенклатура,
    СУММА(ВЫБОР
            КОГДА ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                    И ТоварыНаСкладахОбороты.Регистратор.СкладОтправитель В (&СкладФасовки)
                    И ТоварыНаСкладахОбороты.Регистратор.СкладПолучатель = &ПереработкаЦех
                ТОГДА ТоварыНаСкладахОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК Крошка
ПОМЕСТИТЬ НаКрошку
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Авто, Номенклатура.Родитель В (&ГотоваяПродукция)) КАК ТоварыНаСкладахОбороты

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МИНИМУМ(ВложенныйЗапрос.НачСмена) КАК НачСмена,
    МИНИМУМ(ВложенныйЗапрос.КонСмена) КАК КонСмена,
    МАКСИМУМ(ВложенныйЗапрос.СдалСклад) КАК СдалСклад,
    МАКСИМУМ(ВложенныйЗапрос.ПолучилСклад) КАК ПолучилСклад,
    ВложенныйЗапрос.Номенклатура,
    СУММА(ВложенныйЗапрос.ФактНачДок) КАК ФактНачДок,
    СУММА(ВложенныйЗапрос.Оприходовано) КАК Приход_Цех,
    СУММА(ВложенныйЗапрос.Приход_Чужой+ВложенныйЗапрос.ПриходХороший) КАК ПриходПрочее,
    СУММА(ВложенныйЗапрос.ОстатокДок) КАК ОстатокКонДок,
    СУММА(ВложенныйЗапрос.ФактДок) КАК ФактКонДок,
    СУММА(ВложенныйЗапрос.НачОст) КАК НачОст,
    СУММА(ВложенныйЗапрос.Приход) КАК Приход,
    СУММА(ВложенныйЗапрос.Расход) КАК Расход,
    СУММА(ВложенныйЗапрос.КонОст) КАК КонОст,
    СУММА(ВложенныйЗапрос.НаДоработку - ВложенныйЗапрос.СДоработки + ВложенныйЗапрос.Клипсы + ВложенныйЗапрос.Крошка + ВложенныйЗапрос.Столовая + ВложенныйЗапрос.Бонус + ВложенныйЗапрос.ПредстРасходы) КАК РасходПрочее,
    СУММА(ВложенныйЗапрос.СДоработки) КАК СДоработки,
    СУММА(ВЫБОР
            КОГДА НЕ ВложенныйЗапрос.НаДоработку = 0
                ТОГДА (ВложенныйЗапрос.НаДоработку - ВложенныйЗапрос.СДоработки) / ВложенныйЗапрос.НаДоработку * 100
            ИНАЧЕ 0
        КОНЕЦ) КАК ПотериНаДоработкеПроц,
    СУММА(ВложенныйЗапрос.ОстатокДок - ВложенныйЗапрос.ФактДок) КАК Потери,
    ВложенныйЗапрос.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа
ИЗ
    (ВЫБРАТЬ
        ПересдачаДок.НачСмена КАК НачСмена,
        ПересдачаДок.КонСмена КАК КонСмена,
        ПересдачаДок.СдалСклад КАК СдалСклад,
        ПересдачаДок.ПолучилСклад КАК ПолучилСклад,
        ПересдачаДок.Номенклатура КАК Номенклатура,
        ПересдачаДок.ОстатокДок КАК ОстатокДок,
        ПересдачаДок.ФактДок КАК ФактДок,
        0 КАК Приход,
        0 КАК Расход,
        0 КАК Оприходовано,
        0 КАК НачОст,
        0 КАК КонОст,
        0 КАК Приход_Чужой,
        0 КАК ФактНачДок,
        0 КАК ПриходХороший,
        0 КАК НаДоработку,
        0 КАК СДоработки,
        0 КАК НаФасовку,
        0 КАК СФасовки,
        0 КАК Продано,
        0 КАК НаПереработку,
        0 КАК Столовая,
        0 КАК Дегустация,
        0 КАК Бонус,
        0 КАК ПредстРасходы,
        0 КАК Клипсы,
        0 КАК Крошка
    ИЗ
        ПересдачаДок КАК ПересдачаДок
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        ОборотТов.Номенклатура,
        0,
        0,
        ОборотТов.Приход,
        ОборотТов.Расход,
        ОборотТов.Приход_Цех,
        0,
        0,
        ОборотТов.Приход_Чужой,
        0,
        ОборотТов.ПриходХороший,
        ОборотТов.НаДоработку,
        ОборотТов.СДоработки,
        ОборотТов.НаФасовку,
        ОборотТов.СФасовки,
        0,
        ОборотТов.НаПереработку,
        0,
        0,
        0,
        0,
        0,
        0
    ИЗ
        ОборотТов КАК ОборотТов
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        ОстаткиТоваров.Номенклатура,
        0,
        0,
        0,
        0,
        0,
        ОстаткиТоваров.НачОст,
        ОстаткиТоваров.КонОст,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ИЗ
        ОстаткиТоваров КАК ОстаткиТоваров
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        ДокументФактНач.Номенклатура,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        ДокументФактНач.ФактНачДок,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ИЗ
        ДокументФактНач КАК ДокументФактНач
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        Продажи.Номенклатура,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        Продажи.КоличествоОборот,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ИЗ
        Продажи КАК Продажи
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        Халява.Номенклатура,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        Халява.Столовая,
        Халява.Дегустация,
        Халява.Бонус,
        Халява.ПредстРасходы,
        Халява.Клипсы,
        0
    ИЗ
        Халява КАК Халява
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "",
        "",
        "",
        "",
        НаКрошку.Номенклатура,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        НаКрошку.Крошка
    ИЗ
        НаКрошку КАК НаКрошку) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.НоменклатурнаяГруппа

Как настроить вывод полей ПриходПрочее и РасходПрочее?
1 Cyberhawk
 
06.11.15
19:07
Ага, прям так посмотрели все твой запрос и выдали ответ, надейся
2 Рэйв
 
06.11.15
19:07
(0)200$
3 Горогуля
 
06.11.15
19:08
а есть какая-то возможность избежать чтения запроса?
4 Горогуля
 
06.11.15
19:09
>Как настроить вывод полей ПриходПрочее и РасходПрочее?
сделай им формат жирным шрифтом и розовым цветом
5 Рэйв
 
06.11.15
19:09
(3)мне кажется, что именно текстом он гордится
6 Горогуля
 
06.11.15
19:10
(5) компенсирует недостачу в другом месте?
7 Рэйв
 
06.11.15
19:11
(6)я не Психиатор.
Возможно:-)
8 Горогуля
 
06.11.15
19:11
(0) если получилось _это_, то ты явно что-то делаешь не так
9 Рэйв
 
06.11.15
19:12
(6)Ждем реплик ТС для окончательного диагноза.
10 Cyberhawk
 
06.11.15
19:22
Позабавил текст запроса: начали с серьезной "ПересдачаКладовщика", а закончили "халявой" с "крошкой"
11 Горогуля
 
06.11.15
19:28
>ЗНАЧЕНИЕ(Перечисление.ВидыСписания.Списание)
здесь точно побывал адмирал Ясен Перец
12 Горогуля
 
06.11.15
19:31
>ПересдачаКладовщика.СкладПолучатель, ПересдачаКладовщика.СкладОтправитель
это какое-то новое значение слова "пересдача" или это тупо перемещение?
13 Redkiy
 
06.11.15
19:32
когда в запросе встречается это
>ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Код = "00000000023"
ветку можно закрывать
14 Горогуля
 
06.11.15
19:33
>ВложенныйЗапрос.ПриходХороший
теперь всё ясно
15 Горогуля
 
06.11.15
19:34
(13) он там эти товары на складах насилует несколько раз
16 User_Agronom
 
06.11.15
19:37
(0) Не хватает данных. Нужно ещё 100 гр водки и огурчик. Без них невозможно разобраться в таком количестве букв!
17 User_Agronom
 
06.11.15
19:38
(15) Нужно терпимо относится к окружающим. ТС, похоже, товарофил. И чё?
18 su_mai
 
06.11.15
21:12
(0) .Ссылка - убери везде это ведет к снижению производительности запроса и является грубой ошибкой. Кури ИТС.
19 su_mai
 
06.11.15
21:13
(0) Вместо такого огромного текста запроса надо было выложить СКД и указать релиз типовой конфы.
20 Горогуля
 
06.11.15
21:17
(18) обращение к таблице документа тебя не смутило?
(19) другое дело. Я б с удовольствием скачал файл, запустил платформу, созда новый отчёт, загрузил бы в него схему и насладился. Да, у меня нет жены, хотя б так
21 Горогуля
 
06.11.15
21:19
Да леший с ним, с запросом. Вы на вопрос человеку ответьте
22 su_mai
 
06.11.15
21:20
(21) А че нет жены то?
23 Горогуля
 
06.11.15
21:21
(22) такова се ля ви
24 su_mai
 
06.11.15
21:23
(23) :)
25 EvgeniuXP
 
06.11.15
21:23
(21) человек пусть книжки покупает, идет на курсы и решает затем задачи, нефиг тут флуд всякий писать.
26 su_mai
 
06.11.15
21:23
(20) По поводу .Ссылка - профилактика никогда не помешает :)