Нужна помощь в написании запроса #721715


#0 by capllary
Требуется получить ОборотКт 51 счета с отбором по статье движения денежных средств. Пока написал вот что, но почему то результат выходит нулевой, хотя в оборотке вижу движения за этот период по данным СДДС:
#2 by capllary
Последнюю строку не ту скопировал: Вместо: Сообщить(РезультатЗапроса.СуммаДокумента); Вот что: Сообщить(РезультатЗапроса.СуммаОборотКт);
#3 by Wobland
ну и сообщается тебе нулл согласно этогам
#4 by capllary
Сообщается не NULL, а 0
#6 by Wobland
ноль так ноль. итоги тебе зачем?
#8 by capllary
Щас качну консоль.
#9 by Wobland
запятую пропустил
#11 by capllary
Где запятую пропустил?
#12 by Wobland
перед неопределённым артиклем
#13 by capllary
Итоги убрал, все равно 0
#14 by Галахад
Чо-то, новое: Субконто1 В (&Субконто1, &Субконто2, &Субконто3)
#15 by Wobland
теперь сумму убери
#16 by capllary
Что за артикл?
#17 by capllary
Сумму убрал, эффект тот же.
#18 by Wobland
всё правильно
#19 by organizm
запихай Субконто1,2,3 в массив и сделай его параметром
#20 by organizm
ИТОГИ зачем? если есть агрегатная функция
#21 by ChiginAV
#22 by organizm
вид субконто определи в параметрах виртуальной таблицы
#23 by ChiginAV
Упс, последний параметр не установил
#24 by Cube
Начнем с того, что надо бы называть переменные своими именами. В частности в строке Метод запроса Выбрать возвращает выборку из результатов запроса, поэтому правильно писать Выборка = Запрос.Выполнить.Выбрать;
#25 by organizm
это то же очень оригинально. "Выборка.Следующий" отдельно вверх
#26 by Cube
Не взлетит. В запрос надо список значений сувать, а не массив.
#27 by ChiginAV
Зачем?
#28 by Cube
Здесь как раз, всё отлично.
#29 by ChiginAV
Попробуй сначала
#30 by organizm
да?!..
#31 by Cube
+ Ой, я думал, что у него написано Сообщить(?(Выборка.Следующий, Выборка.СуммаОборотКт, 0)); и тебе не нравится)))
#32 by capllary
Пробую.
#33 by organizm
#34 by Cube
+ Чёрд! Я точно помню, что не работало... Потому что в этом случае можно было бы пользоваться методом ВыгрузитьКолонку у ТЗ, но приходилось перебором создавать СЗ и скармливать его запросу...
#35 by organizm
в &ВС поставь ПВС
#36 by organizm
* ПВХ
#37 by organizm
в  консоли только СЗ, в коде и массив нормально кушает.
#38 by capllary
Пока что по прежнему 0
#39 by ChiginAV
Еще вот так, чтоб совсем хорошо было "ВЫРАЗИТЬ(Субконто2 КАК Справочник.СтатьиДвиженияДенежныхСредств) В (&МассивСтатейДДС)"
#40 by Cube
Убери отбор по статьям ДДС и в запрос добавь все поля, оттуда и пляши потом.
#41 by organizm
в &ВС устанавливаешь каким должен быть Субконто1 для отбора. Если у тебя 51 счет "Банковские счета", "Статьи ДС", можно в &ВС поставить ПВХ.СтатьиДС и отбирай как хотел.
#42 by organizm
короче посиди подумай, все должно работать. посмотри Оборотку, может там и нет ничего
#43 by ChiginAV
Посмотрел бы оборотку по 51, чтоб быть уверенным, что есть обороты за период по выбранным статьям
#44 by capllary
Оборот точно есть.
#45 by capllary
Мне просто вообще нужен отбор по 20 статьям ДДС.
#46 by capllary
И оборот точно Кт именно по 51 счету.
#47 by ChiginAV
Оборот есть. Запрос рабочий. Кто тогда слабое звено?
#48 by capllary
В не за данный период есть один документ Платежное поручение исходящее со статьей, у которой код 000000154
#49 by capllary
В ней, в оборотке
#50 by capllary
Убираю субконто, выдает полный оборотКт по 51 счету за данный период.
#52 by capllary
Значит точно проблема в Субконто1
#54 by organizm
#55 by capllary
Кстати, почему написано "ВЫРАЗИТЬ(Субконто2 КАК Справочник.СтатьиДвиженияДенежныхСредств) В (&МассивСтатейДДС)". В плане есть ли разница между Субконто1 и Субконто2?
#56 by organizm
#57 by organizm
смотри
#58 by capllary
Щас попробую.
#59 by ChiginAV
Тип значений разный
#60 by ChiginAV
Если выборка пустая, ошибка будет
#61 by organizm
ну можно и так:
#62 by hhhh
да, там на счете 51 статьи - это Субконто2
#63 by ChiginAV
То-есть если пустой, то сообщать об этом не надо?
#64 by organizm
можно еще и так:
#65 by organizm
сообщи
#66 by capllary
Пока никак, щас скину полный код, который у меня.
#67 by capllary
#68 by capllary
По этому Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000151") точно есть сумма за данный период
#69 by organizm
может они группа ?
#70 by capllary
Когда вставляю твой код, конструктор запроса пишет что поле не найдено.
#71 by ChiginAV
Субконто2 же
#72 by capllary
Где субконто2? Тут - Субконто1 В (&МассивСтатейДДС))?
#73 by ChiginAV
да
#74 by hhhh
а зачем ОстаткиИОбороты? Сделай просто Обороты
#75 by capllary
Ошибка обработки представления "РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты:Поле не найдено (Субконто2)" <<?>>РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета)), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиДвиженияДенежныхСредств), Субконто2 В (&МассивСтатейДДС)) КАК ХозрасчетныйОстаткиИОбороты
#76 by capllary
В данном случае мне кажется разницы никакой.
#77 by ChiginAV
У тебя в плане счетов у 51 субконто "СтатьиДДС" какое по счету?
#78 by capllary
Субконто2
#79 by capllary
Теперь я начал понимать в чем разница Субконто1 и Субконто2 и Субконто3
#80 by hhhh
он же поправил, задал свой порядок субконто ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиДвиженияДенежныхСредств),
#81 by hhhh
правильно написано. Субконто1
#82 by ChiginAV
Не порядок, а тип значения Неправильно
#83 by capllary
Сделал так, все равно 0 возвращает.
#84 by ChiginAV
Вставляем запрос из в консоль. Проверяем. Удостоверяемся, что он работает. Думаем
#85 by hhhh
синтакс помощник с вами не согласен Субконто Субконто (необязательный) Тип параметра: ПланВидовХарактеристикСсылка.; Массив; ФиксированныйМассив; СписокЗначений. Ссылка, или массив ссылок, или фиксированный массив ссылок, или список значений, содержащий ссылки, на виды субконто. Задает набор и порядок субконто, которыми можно оперировать в запросе. Накладывает фильтр на записи по видам субконто (если массив, то по И). Если параметр <Субконто> не задан, то субконто определяются позиционно. То есть выбирается вид субконто соответствующего счета из соответствующей позиции. Так, если <Субконто> не определен, и выполняется запрос по счету, у которого определены виды субконто первое "Материалы", второе "Склад", то поле "Субконто1" будет содержать материалы, а поле "Субконто2" - склады. Если выполняется запрос по двум счетам, при этом у первого настройка субконто "Материалы, Склад", а у второго "Склад, Материал" и не задан параметр <Субконто>, то поле "Субконто1" будет содержать и материалы для первого счета, и склады для второго счета. Поле "Субконто2" будет содержать склады для первого счета и материалы для второго. Если параметр <Субконто> задан, то выбираются данные только по тем счетам, у которых определены все указанные виды субконто. При этом поля "Субконто<N>" будут содержать значения, соответствующие переданным видам субконто. Например, если один счет имеет настройку субконто "Материалы, Склад", а второй "Склад, Материалы", и параметр "Виды субконто" задан как массив "Материалы, Склад", то поле "Субконто1" будет содержать материалы, а поле "Субконто2" - склады независимо от счета. Параметр "Субконто" не существует, если при конфигурировании для плана счетов не указаны субконто. Значение по умолчанию: Неопределено.
#86 by capllary
Все получилось, щас опишу как.
#87 by ChiginAV
Хм, не знал. Соглашусь
#88 by capllary
Все банально:
#89 by capllary
У меня изначально все верно было, надо было просто поменять Субконто1 на Субконто2.
#90 by capllary
Всем спасибо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

В этой группе 1С