#0
by Pro100
Задача: Выбрать все продажи товаров(в том числе и возвраты) от определенного поставщика за определенный период В 1С запрос следующий: Что-то прямой запрос показывается все остатки и приход, расход совсем не такие какие выбрала 1С своим запросом. Гуру прямых запросов подскажите пожалуйста, где ошибся в прямом запросе? вот прямой запрос: FROM $Регистр.ПартииНаличие AS ПартииНаличие With (NOLOCK) ДвиженияИГраницыПериода, INNER JOIN $Регистр.ПартииНаличие AS ПартииНаличие With (NOLOCK) ON $ПартииНаличие.Фирма = Фирма AND $ПартииНаличие.Номенклатура = Номенклатура AND $ПартииНаличие.Партия = Партия INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ПартииНаличие.IDDOC = Журнал.IDDOC INNER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON $ПартииНаличие.Партия = Партии.ID, Количество) AS ПартииНаличиеОстаткиОбороты ON $ПартииНаличие.Фирма = ПартииНаличиеОстаткиОбороты.Фирма AND $ПартииНаличие.Номенклатура = ПартииНаличиеОстаткиОбороты.Номенклатура AND $ПартииНаличие.Партия = ПартииНаличиеОстаткиОбороты.Партия INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ПартииНаличие.IDDOC = Журнал.IDDOC INNER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON $ПартииНаличие.Партия = Партии.ID WHERE ($Партии.Поставщик = :ВыбПоставщик) GROUP BY ПартииНаличиеОстаткиОбороты.Период
#2
by GLazNik
Кривой запрос. $РегистрОстаткиОбороты.ПартииНаличие возвращает уже просуммированные данные. Так ты еще этот результат соединяешь с $Регистр.ПартииНаличие в результате чего у тебя просуммированные записи размножаются, а потом еще и суммируешь. И вообще я не люблю $РегистрОстаткиОбороты
#4
by GLazNik
+ Если на то пошло, приход и расход бери из $Регистр.ПартииНаличие. Начальный и конечный остаток из $РегистрОстаткиОбороты.ПартииНаличие, но убери джойны в параметрах виртуальных таблиц и вместо агрегатных функций sum для остатков используй, например max
#6
by Pro100
Не помогает, результат тот же. Этот регистр $РегистрОстаткиОбороты, нужен чтобы получить Нач.Остаток, приход, расход, кон.остаток.
#8
by GLazNik
я понимаю зачем он нужен. Но ты его используешь неправильно. И я понимаю зачем ты используешь $Регистр.ПартииНаличие (что б получить движения в разрезе кодов операций) Скорее всего задача стоит шире: переделать существующий функционал (отчет) на прямые запросы.
#10
by Pro100
$Регистр.ПартииНаличие использую чтобы получить Документ и КодОперации. Ну по поводу отчета, да слишком долго формируется и принял решение переделать на прямые запросы, вот и пытаюсь получить результат, иначе оставил бы запрос 1С и не спрашивал бы тут.
#11
by Pro100
В чем именно каша то? Выбираю Документ и КодОперации из $Регистр.ПартииНаличие, чтобы нормально документ показывался присоединяю журнал, чтобы сделать отбор по поставщику присоединяю справочник партий и оттуда выбираю поставщика. также соединяю с $РегистрОстаткиОбороты.ПартииНаличие чтобы получить цифры по нач.остаток, приход, расход, кон.остаток
#12
by GLazNik
ты вот убери группировку, и посмотри какую ерунду возвращает у тебя запрос. Возможно сам поймешь что не так.
#13
by Светлый Гений
А как ты думаешь, что вернет тебе соединение таблиц $Регистр.ПартииНаличие и $РегистрОстаткиОбороты.ПартииНаличие?
#15
by Pro100
что-то при соединении этих двух таблиц вернул цифры какие-то нереальные. Поэтому и прошу подсказать, как можно соединить, чтобы получить данные.
#16
by Светлый Гений
Вот и я о том же, что надо разобраться сначала на простых примерах, а потом уже огород городить
#17
by GLazNik
Без группировки скорее всего не совсем нереальные цифры. Скорее количество цифр нереальное :) Пойди от простого к сложному. Сперва получи только движения в нужном тебе виде. Затем только остатки. Потом уже соединяй эти наборы данных.
#19
by Pro100
Пробую по шагам. Делаю запрос: ДвиженияИГраницыПериода, INNER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON Партия = Партии.ID, Количество) AS ПартииНаличиеОстаткиОбороты ORDER BY ПартииНаличиеОстаткиОбороты.Период Данные верные показываются, например расход проверил по одной позиции номенклатуры, все верно. Вопрос следующий: Что присоединить к этому запросу, чтобы увидеть документ который сделал движение?
#20
by GLazNik
Если тебе нужен КодОперации то РегистрОстаткиОбороты не подойдет. Нужно приход и расход получать из $Регистр.ПартииНаличие. И правильно его сгруппировать.
#21
by Ёпрст
не надо ничего присоединять - всё и так есть. Задай нужную периодичность, конкретно Документ и наслаждайся
#25
by Pro100
Как получить из $Регистр.ПартииНаличие приход и расход? если там только количество есть и все... При периодичности документ появляется только позиция документа и вид документа, позиция документа - это что-то совсем не сам документ...
#27
by Pro100
Такс, с этим понял смысл. Но встает вопрос как за определенный период выбрать из этой таблицы? Ведь без периода, он мне всю таблицу попытается вывести, а мне это совсем не нужно
#29
by Ёпрст
Если че, все ПРОДАЖИ и ВОЗВРАТЫ и Поставщики есть в другом, "правильном" регистре - Продажи.
#30
by GLazNik
позицию документа и вид документа можно легко превратить в документ Примерно так: right(Таб.ПозицияДокумента) as [$Документ Док], Таб.ВидДокумента as Док_вид если у регистра установлен признак «Быстрая обработка движений», то можно повесить условие на DATE_TIME_IDDOC. Иначе соединяем с 1sjourn
#32
by Pro100
Не пойму как в данном запросе можно вид документа указать? Ругается, что не найдено дополнительное типизирующее поле для Док, ведь вид документа же следом идет ДвиженияИГраницыПериода, INNER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON Партия = Партии.ID,
#33
by GLazNik
Char - Идентификатор объекта, кроме того, в наборе данных должна находиться колонка с именем составленным из имени этой колонки и суффикса {_вид|_kind} (чувствительно к регистру), в которой должны содержаться идентификаторы видов документов. Тип колонки SQL: int, DBF: char.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- V7 Запрос по БухСчету (Не бух запрос)
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1с++ запрос. Как получить Родителя номенклатуры в регистре?
- v7: 1С V7.7 в сети
- v7: 1с++ Общие.Форма.Привязка.ert
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Прямой запрос 1С++ к DBF через OLEDBCommand и виртуальные таблицы
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- Как отключить пользователя от сервера Windows server 2008
- Бух 2.0 +Postgres+Карточка счета
- ДБО BS-Client v.3 (017.9.0)
- УТ 11, корректировка поступления (прием на комиссию)
- v7: ЗиК Сотрудник временно не работает
- Первое внедрение БСП в конфу. Не пойму пару пунктов.
- УТ 10.3 Запрет редактирования чека после проведения
- Сохранить таблицу значений (версионирование) ЗначениеВФаил
- как в запросе выдать только целую часть числа от деления?
- Убить консоль кластера
- 8.2.15 Режим открытия форм - программно
- Корректно завершить работу COM-соединения
- v7: Запрос по остаткам ТМЦ
- СКД: есть ли какие-то ограничения на использование вложенных запросов?
- Запрос... Свернуть по номенклатуре
- Можно ли запустить обработку в отдельном процессе/потоке?
- Обмен. Почему-то передается УдалениеОбъекта
- УФ. Меню Перейти в форме списка не отображает команду
- Нельзя использовать группу в качестве объекта контактной информации!
- v8: Как узнать, является ли партнёр юр. или физлицо, в форме договора?