Имя: Пароль:
1C
 
Получить статью расходов из проводок
0 Flempy
 
03.02.23
10:58
Пытаюсь запросом вывести статью списания из проводок, но что-то не выходит

ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
    ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
    ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Количество,
    Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ХозрасчетныйДвиженияССубконто.СубконтоДт1.СтатьяРасходов КАК СтатьяРасходов
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
            ,
            ,
            Активность = ИСТИНА
                И Регистратор = &Документ,
            ,
            ) КАК ХозрасчетныйДвиженияССубконто
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО ХозрасчетныйДвиженияССубконто.СубконтоКт1 = Номенклатура.Ссылка
ИТОГИ
    СУММА(Сумма),
    СУММА(Количество)
ПО
    Регистратор
1 Flempy
 
03.02.23
11:00
2 vicof
 
03.02.23
11:10
А что ты сделал для того, чтобы проверить, почему она не вывелась?
3 Flempy
 
03.02.23
11:13
(2) Тестил в консоли запросов
4 vicof
 
03.02.23
11:17
Ну то есть вставлял текст запроса и нажимал кнопку "Выполнить", ничего не меняя в тексте запроса и в параметрах?
5 Flempy
 
03.02.23
11:21
(4)Пробовал менять по разному вот эту строку
ХозрасчетныйДвиженияССубконто.СубконтоДт1.СтатьяРасходов КАК СтатьяРасходов

А в параметрах то смысл что-то менять, там документ подставлять только уж
6 shuhard
 
03.02.23
11:27
(5) Статья расходов СубконтоДт, откуда там этот бред СубконтоДт1.СтатьяРасходов
7 vicof
 
03.02.23
11:27
Для начала нужно убрать все условия и соединения. И посмотреть, есть ли там данные, которые ты хочешь получить.
А потом, уже дополнительно накладывать по одному отборы и соединения и смотреть, а не испортилась ли картинка. Ну вроде все просто, метод дихотомии.
П.С. Внутренне соединение нахрен не нужно. И про выражение типов субконто почитай в виртуальных таблицах.
8 vicof
 
03.02.23
11:29
(6) Ну дай логику человеку поправить, чтобы не задавал потом тупых вопросов.
9 Flempy
 
03.02.23
11:29
(6) Да я по разному пробовал, скинул то, что последним тестил
(7) Оки, попробую, спасибо
10 Dmitrii
 
гуру
03.02.23
11:31
Субконто1 на 23-м счёте - типы затрат. Статьи затрат - Субконто2.
И вообще в дебете может быть любой другой счёт, включая те, у которых нет субконто "Статьи затрат" или это субконто стоит на другом месте (1-м или 3-м).
11 Dmitrii
 
гуру
03.02.23
11:36
В данном случае проще сделать запрос не к виртуальным таблицам, а к физическим таблицам Хозрасчетный и Хозрасчетный.Субконто, чтобы абстрагироваться и не париться на тему номера субконто Номенклатура и СтатьяЗатрат на счёте - первое оно, второе или третье.
12 Dmitrii
 
гуру
03.02.23
11:55
Что-то типа такого.

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

ИНДЕКСИРОВАТЬ ПО
    Регистратор,
    НомерСтроки
;

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

Хотя не совсем понятно - зачем итоги по Регистратор, если устанавливается отбор по Регистратор = &Документ.
13 Flempy
 
03.02.23
13:09
(12) Спасибо большое, получилось. Итоги, чтобы получить конечную сумму по документу. Вот конечный результат запроса, если кому пригодится

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

ИНДЕКСИРОВАТЬ ПО
    Регистратор,
    НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Хозрасчетный.Регистратор КАК Регистратор,
    ОборотыМеждуСубконто.Номенклатура КАК Номенклатура,
    ОборотыМеждуСубконто.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ОборотыМеждуСубконто.СтатьяЗатрат КАК СтатьяРасходов,
    Хозрасчетный.КоличествоКт КАК Количество,
    Хозрасчетный.Сумма КАК Сумма
ИЗ
    ОборотыМеждуСубконто КАК ОборотыМеждуСубконто
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
        ПО ОборотыМеждуСубконто.Регистратор = Хозрасчетный.Регистратор
            И ОборотыМеждуСубконто.НомерСтроки = Хозрасчетный.НомерСтроки
ГДЕ
    Хозрасчетный.Активность
ИТОГИ
    СУММА(Количество),
    СУММА(Сумма)
ПО
    Регистратор
14 Dmitrii
 
гуру
03.02.23
13:22
(13) Заменить.

СубконтоКт.Значение.ЕдиницаИзмерения КАК ЕдиницаИзмерения

на

ВЫРАЗИТЬ(СубконтоКт.Значение КАК Справочник.Номенклатура).ЕдиницаИзмерения КАК ЕдиницаИзмерения

чтобы избежать лишних неявных левых соединений.
15 Flempy
 
03.02.23
14:26
(14) Спасибо за помощь!