Имя: Пароль:
1C
1С v8
Непонятное с Запросом
, ,
0 asder117
 
07.07.22
21:17
Доброго времени суток.
Есть запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    ВЫБОР
        КОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента В (&Валюта)
            ТОГДА ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество * (КурсыВалют.Курс / КурсыВалют.Кратность)
        ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество
    КОНЕЦ КАК Цена,
    ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
    ПоступлениеТоваровУслугТовары.Количество КАК Количество,
    ВЫБОР
        КОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента В (&Валюта)
            ТОГДА ПоступлениеТоваровУслугТовары.Сумма / (КурсыВалют.Курс / КурсыВалют.Кратность)
        ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма
    КОНЕЦ КАК СуммаПокупки,
    ВЫБОР
        КОГДА НЕ ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента В (&Валюта)
            ТОГДА ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество
        ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество / (КурсыВалют.Курс / КурсыВалют.Кратность)
    КОНЕЦ КАК ЦенаУЕ,
    ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента КАК ВалютаДокумента
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО (НАЧАЛОПЕРИОДА(КурсыВалют.Период, ДЕНЬ) = НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ))
            И (ВЫБОР
                КОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента В (&Валюта)
                    ТОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента = КурсыВалют.Валюта
                ИНАЧЕ ИСТИНА
            КОНЕЦ)
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)
    И КурсыВалют.Валюта В(&Валюта)
    И НЕ ПоступлениеТоваровУслугТовары.Ссылка.Образец
    И ПоступлениеТоваровУслугТовары.Номенклатура.ОтветственныйМенеджерЗаПокупки = &ОтветственныйМенеджерЗаПокупки
    И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура
При простом его запуске без группировок все суммы и количества нормальные какие и должны быть. Как только добавляю группировки по полям так суммы удваиваются если не утраиваются. Все перерыл. В чем может быть причина что при группировке идет задвоение или затроение сумм. Спасибо
1 Волшебник
 
07.07.22
21:19
Перестаньте делать запросы к документам в надежде получить остатки по товарам.
2 asder117
 
07.07.22
21:21
(1) а где я остатки получаю уважаемый? я получаю цену и количество...
3 Ёпрст
 
07.07.22
21:31
(0) выкинь нелепое условие на валюту из внутреннего соединения, для начала
4 asder117
 
07.07.22
21:36
(3) хм пробовал просто если в течении месяца или периода были поступления одного и того же материала и в рубликах и в валюте то криво показываются данные
5 Hans
 
07.07.22
21:40
(4) Запрос кривой даже разбираться лень в чем он кривой.
6 Hans
 
07.07.22
21:41
У тебя как минимум должно быть левое соединение и получение среза последних на каждый документ.
7 Hans
 
07.07.22
21:43
выбери сначала в ВТ все что тебе нужно с отбором, потом соединяй.
8 asder117
 
07.07.22
21:45
(5) писали франчи, а я разбраюсь с этим хламом
(6) то что срез последних согласен я это в другом варианте сделал
(7) Как вариант
Прост если не делать грппировок все нормально показывает как группировки сделаю так все летит..это больше бесит
9 Hans
 
07.07.22
21:49
(8) Теоретически эти группировки в запросе не должны влиять. Зачем тут РАЗЛИЧНЫЕ еще не понятно.
10 Hans
 
07.07.22
21:49
Разбить запрос по ВТ и понять что там криво.
11 asder117
 
07.07.22
21:50
(6) Срез последних только на курс валют...
(5) а мне блин как лень, но блин задача есть вот и решаю...достался хлам в наследство
12 asder117
 
07.07.22
21:54
(9) без него сами записи дублируются...
13 Hans
 
07.07.22
22:10
сделай хотя бы так
Внутреннее СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО (НАЧАЛОПЕРИОДА(КурсыВалют.Период, ДЕНЬ) = НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ))
            И ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента = КурсыВалют.Валюта
              

Убери Различные оно тут нафиг не нужно. Это от кривого соединения дублит.
14 asder117
 
07.07.22
22:17
(13) При таком вообще ничего не выводит...вообще ничего не пойму
15 Волшебник
 
07.07.22
22:23
(11) Это не хлам. Это продукт людей, которым была оказана благодарность в виде денег.
16 asder117
 
07.07.22
22:25
(15) Кривой продукт, который не работает правильно..а деньги при этом получили
17 Волшебник
 
07.07.22
22:30
(16) Если Вы будете поддерживать это заблуждение, то ветка будет удалена.
18 Йохохо
 
07.07.22
22:32
(16) ужас, 10 секунд на решение последнего предложения в (0)
19 asder117
 
07.07.22
22:34
(18) И какое позвольте спросить?
20 Йохохо
 
07.07.22
22:37
(19) обернуть
21 asder117
 
07.07.22
22:40
(20) В полном отчете у меня там два запроса первый это средняя за месяц а вторая за полгода (все завернуты в ВТ) и делается сравнение цен
22 Йохохо
 
07.07.22
22:46
(21) по тексту запроса у Вас упр и бред, и фин отчет ни кому не нужный. Скинуть задачу - все исходные запросы не трогая вообще в вт, и потом скд
23 Волшебник
 
07.07.22
22:53
(21) Прислушайтесь к Йохохо
Он Ваш бесплатный системный аналитик
24 asder117
 
07.07.22
22:53
(22) (23) Спасибо буду разбираться..
25 Йохохо
 
07.07.22
22:55
(24) тут надо позвонить
26 asder117
 
07.07.22
23:01
(25) Кому? куда? зачем?
27 Йохохо
 
07.07.22
23:09
(26) 96% что (22) решает задачу
Заказчику, монсёр
28 asder117
 
07.07.22
23:15
(27) Спасибо за совет. Сам решу и разберусь..попробую ваш совет. (22) тут не фин отчет а нужных для отдела снабжения..А с остальным разберусь
29 rudnitskij
 
08.07.22
01:16
(4) разве не нужно данные в какую-то одну валюту пересчитать и потом показывать?
30 rudnitskij
 
08.07.22
01:19
Если я правильно прочитал запрос - в него не попадут поступления, в которые не было ввода курса валюты в 1с. Соединение же внутреннее
31 rudnitskij
 
08.07.22
01:19
* поступления за те дни, в которые не было ввода курса валюты
32 rudnitskij
 
08.07.22
01:23
И ПоступлениеТоваровУслугТовары.Номенклатура.ОтветственныйМенеджерЗаПокупки = &ОтветственныйМенеджерЗаПокупки
    И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура...
Очень интересное условие
А нельзя эти же данные получить из регистра накопления "Закупки"? Или нет такого?
33 rudnitskij
 
08.07.22
01:25
И (ВЫБОР
                КОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента В (&Валюта)
                    ТОГДА ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента = КурсыВалют.Валюта
                ИНАЧЕ ИСТИНА
            КОНЕЦ)
------------------
может из-за этого двоит цифры. соединяет с таблицей курсов независимо от того, какая валюта в документе. А какой курс для расчета цены уе берется - вообще хрен пойми
34 asder117
 
08.07.22
08:39
(29) Данные надо показать по 3 валютам
35 asder117
 
08.07.22
08:41
(33) Да возможно вы и правы. Ночь переспал со всеми мыслями и понял. Этот кусок был введен для того чтобы если в течении месяца или периода был приход в разных валютах то был отсев...а мысль проверю. Спасибо
36 asder117
 
08.07.22
08:43
(32) Регистр есть. Тоже думал из регистров вытянуть инфу. Еще раз напишу делали франчи и в спешном порядке мне его надо переделать. А так поидее да нужно брать с регистар за разные периоды и их сравнивать. Цель сравнить цены поставщиков за период
37 rudnitskij
 
08.07.22
11:12
(36) с курсами валют лучше левым соединением соединяться - если там гарантированно есть записи на все валюты за каждый день
38 asder117
 
08.07.22
12:03
(37) А вот тут и загвоздка на валюты курс есть без проблем а вот на рублик то курсов никто не заводит он 1 есть всегда. (33) тут я и пытался обойти..но понял надо делать условия не на список курсов а только на одну валюту
39 rudnitskij
 
08.07.22
15:21
(38) а рубль в справочнике валют предопределенный? тогда можно прописать для него прямо в запросе
40 asder117
 
08.07.22
15:59
(39) Я так и сделал. на его условие завязал вроде взлетело. Спасибо за пинок в направлении
41 Сергиус
 
08.07.22
17:27
(0)Покажи как группируешь. Сама по себе группировка не может давать лишнего, значит в запросе получаются "избыточные" записи. Лучше всего смотреть в консоли.