Имя: Пароль:
1C
1С v8
Странности запросов
,
0 UFO
 
07.07.15
16:18
Есть запрос №1:

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

, результат работы http://pixs.ru/showimage/001png_6869612_17941206.png
и есть запрос №2:

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

УПОРЯДОЧИТЬ ПО
    Товары.Склад, Период
ИТОГИ ПО Товары.Склад

, его результат http://pixs.ru/showimage/002png_3537956_17941235.png.
Правильный результат в запросе 2. Почему начальные остатки в 1 отличатются от 2, ведь там подкорректировано чуть-чуть?
1 UFO
 
07.07.15
16:19
Отличие по складу СкладЦКП_внутренний
2 UFO
 
07.07.15
16:23
Все остальные поля нормально.. только остаток и именно по этому складу.. куда копать, ума не приложу
3 UFO
 
07.07.15
16:23
База sql
4 UFO
 
07.07.15
16:24
На базе запроса 2 сделан запрос 1, и опа... фигня какая то, что делать, может кто подскажет?
5 UFO
 
07.07.15
16:26
4 тонны испарились
6 AllJoke
 
07.07.15
16:28
А если взять и посторить запрос просто по регистру и именно по этому складу - цифры в разнобой?
Запросы канешно убогие.
7 UFO
 
07.07.15
16:29
По регистру получается то что во втором
8 AllJoke
 
07.07.15
16:29
терзают смутные сомнения в "Бумага" в первом зпросе.
9 UFO
 
07.07.15
16:30
Это нужно чтобы отделить итоги по картону и бумаге
10 AllJoke
 
07.07.15
16:31
Запрос №1 - ИТОГИ ПО Товары.Склад, Бумага,
Запрос №2 - ИТОГИ ПО Товары.Склад
11 UFO
 
07.07.15
16:31
Правильно, чтобы не считать там в цикле, а просто итгами вывести
12 UFO
 
07.07.15
16:32
Я говорю,  проблема только в начальном остатке по одному складу. Не могу понять куда делись 4 с лишним тонны
13 AllJoke
 
07.07.15
16:32
если начальную дату поставить например - 01.01.1900
14 UFO
 
07.07.15
16:33
А зачем мне остатки на начало работы предприятия?
15 UFO
 
07.07.15
16:36
Изначальный запрос это 2, но понадобилось сделать детализацию по видам продукции, и в 1 сразу неправильный остаток стал показывать. :-(
16 AllJoke
 
07.07.15
16:42
во второй запрос добавить поле Товары.Продукция, а?
17 ХардHard
 
07.07.15
16:47
(0) Хотя бы бумагу(ссылки на неё) найди отдельно в во временной таблице или параметром устанавливай.
18 UFO
 
07.07.15
16:48
Бумаги у нас куча видов, и в ней общее только первое слово Бумага
19 AllJoke
 
07.07.15
16:49
что за конфа?
20 UFO
 
07.07.15
16:49
УПП
21 AllJoke
 
07.07.15
16:56
В Запросе №2 считает по всем товарам на начало, в Запросе №1 только по товару "бумага". Или виду продукции, как там у тебя.
22 UFO
 
07.07.15
16:58
И по бумаге и не по бумаге
23 UFO
 
07.07.15
17:01
ВОт чего я добивался создавая поле бумага
http://pixs.ru/showimage/003png_2489802_17941990.png
24 UFO
 
07.07.15
17:02
Должен быть остаток 1 262 830. Как, почему начальный остаток изменился, ума не приложу
25 AllJoke
 
07.07.15
17:04
за время выполнения твоих запросов не проводились доки задним числом? Выполни запрос №2 ещё раз - проверить суммы.
26 UFO
 
07.07.15
17:06
Это копия основной базы, никто там не работает, кроме меня
27 AllJoke
 
07.07.15
17:06
(26) понял
28 UFO
 
07.07.15
17:06
Что то с группировками да итогами.. пошел домой, буду думать
29 AllJoke
 
07.07.15
17:07
(28) упп под рукой нет, так бы помог
30 ХардHard
 
07.07.15
17:07
(0)     Товары.Продукция, может убрать из 1го? Я хз честно говоря, чем тебе помочь.  Удали все лишнее , так хоть разобраться легче будет.
31 hhhh
 
07.07.15
17:08
(26) так и должно быть. Потому что остатки по регистраторам - это костыль от 1с, с ним аккуратно надо, регистраторы должны идти подряд, а вы их разбили на 2 неравные кучки.
32 UFO
 
07.07.15
17:10
Вот у меня и есть на это подозрение,  похожее было месяц назад, когда делал схожий отчет... Но там только стоило сделать сортировку и остатки выровнялись..
33 UFO
 
07.07.15
19:13
Странно, стоит только во второй запрос добавить группировку по продукции, как второй запрос показывает тоже, что и первый... Гуру местные, почему?
34 UFO
 
08.07.15
05:53
На копии базы решилось тестированием и исправлением ошибок. Значит ошибка не в запросе.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан