Имя: Пароль:
1C
1С v8
подскажите какой нужно правильно указать тип в запросе
0 LivingStar
 
15.11.13
11:36
Вложенный запрос, представляет собой 3 пакетных запроса. В итоговом запросе необходимо вывести дату документа РеализацияТоваровУслуг. Либо номер и дату документа реализация товаров услуг, как мне свернуть это по остальным видам документов, что задать при выводе в их полях? Почему то таблица не сворачивается, пока пробую вывести только дату.



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

ОБЪЕДИНИТЬ ВСЕ

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    &ПустаяДата КАК ДатаРеализации,
    ВозвратТоваровОтПокупателяТовары.Ссылка.Контрагент,
    ВозвратТоваровОтПокупателяТовары.Номенклатура,
    0,
    0,
    0,
    0,
    ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.Количество, 0),
    ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.Сумма, 0)
ИЗ
    Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ГДЕ
    ВозвратТоваровОтПокупателяТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ВозвратТоваровОтПокупателяТовары.Ссылка.Проведен = ИСТИНА
    И ВозвратТоваровОтПокупателяТовары.Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)
1 Wobland
 
15.11.13
11:40
приведи пример желаемого
2 H A D G E H O G s
 
15.11.13
11:43
Меняй профессию, тебе уже не раз сказали.
3 Ненавижу 1С
 
гуру
15.11.13
11:45
(0) безнадежно
4 LivingStar
 
15.11.13
11:45
(1) сейчас числовые данные вывводятся по каждому документу в разных строках, я же хочу что бы они свернулись по контрагенту и номенклатуре, где в первом поле дата реализации, стояла бы дата документа реализация товаров услуг.
6 Ненавижу 1С
 
гуру
15.11.13
11:47
(4) ну допустим, а если реализаций несколько?
8 LivingStar
 
15.11.13
11:49
(6) это уже другой вопрос, пока хочется сделать как в (0) описано, или это может сработать только в итоговом запросе с группировкой?
12 LivingStar
 
15.11.13
11:52
(10) предлагаете сразу то есть учесть универсальность запроса на все вариации?
13 Sammo
 
15.11.13
11:54
(12) На все не на все, но чем больше вариантов, которые могут сломать твой запрос, будет предусмотрено, тем меньше проблем будет в дальнейшем.
14 Ненавижу 1С
 
гуру
15.11.13
11:55
(12) предлагаю ответить на (6), чтобы хоть немного понять картину происходящего
15 LivingStar
 
15.11.13
11:55
вот сейчас смотрите, ЗаказПокупателя свернулся с ВозвратомТоваровОтПокупателя, а РеализаияТоваровУслуг нет, почему???


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

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.ДатаРеализации,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Номенклатура
16 Wobland
 
15.11.13
11:56
(12) кхм.. так ваще-то обычно и делается
17 Ненавижу 1С
 
гуру
15.11.13
11:56
(15) потому что группируешь по дате, а они разные
18 Wobland
 
15.11.13
11:57
(15) даты кое-где разные
19 LivingStar
 
15.11.13
11:57
(14) Если реализаций будет несколько то пусть они тама где либо рядом и стоят, если связаны с заказом и возвратом, то пусть количество будет в строках, если нет то пусто пусть будет

ну а как в этих случаях тогда сворачивать??? даты всегда будут разные
20 LivingStar
 
15.11.13
11:59
(16) ну давайте учтем в этом запросе все вариации тогда?!!!

выбор документов ЗаказПокупателя, РеализацияТоваровУслуг, ВозвратТоваровОтПокупателя

нужен томер только документа реализация, все остальное должно свернуться
21 LivingStar
 
15.11.13
11:59
Сворачиваю по Дате, Контрагенту, Номенклатуре, по дате не сворачивается... как поступать?
22 Ненавижу 1С
 
гуру
15.11.13
12:00
"если связаны с заказом и возвратом"
уже что-то, но в твоем запросе про связи вообще речи нет

в целом куйня - надо делать на регистрах
23 Ненавижу 1С
 
гуру
15.11.13
12:01
предложу пальцем в попу:

ВЫБРАТЬ
    МАКСИМУМ(ВложенныйЗапрос.ДатаРеализации),
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Номенклатура
...
СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Номенклатура
24 Wobland
 
15.11.13
12:01
(20) а куда денешь даты возвратов и заказов?
25 LivingStar
 
15.11.13
12:02
(22) можете посоветовать по каким регистрам, если знаете?
хочу начать в этом разбираться, но сам никак не могу сдвинуться, вы в курсе, как делать по регистрам, и по каким регистрам делать эту выборку?
26 LivingStar
 
15.11.13
12:03
(24) я думал они свернутся, я же ставлю у них пустую дату, а оставляю только дату реализацииТоваровУслуг....

как это свернуть? нельзя????? сворачиваются только 0 и числа что ли?
27 Wobland
 
15.11.13
12:04
(26) а ты думал, раз дата пустая, то она испарится с первого пинка? это тоже значение
28 LivingStar
 
15.11.13
12:05
(27) я думал она свернётся, тип же один и тот же
29 LivingStar
 
15.11.13
12:06
(27) как тогда сворачивать то?
30 Ненавижу 1С
 
гуру
15.11.13
12:07
(28) что такое СГРУППИРОВАТЬ ты понимаешь вообще?
31 Ненавижу 1С
 
гуру
15.11.13
12:07
(29) см (23)
32 Wobland
 
15.11.13
12:08
+(30) открой в СП Свернуть и изучи
33 Мимохожий Однако
 
15.11.13
12:10
(28)Чтобы свернуть, надо сгруппировать. Дату документа можно привести на начало дня.
34 LivingStar
 
15.11.13
12:20
(28)(31)
А вот как значит. Спасибо по приведению даты на начало дня и использованию функции Максимум на дату. Её то и не хватало.

Приведение даты на начало дня это и есть использование функции максимум?

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

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Номенклатура
36 Ненавижу 1С
 
гуру
15.11.13
12:21
"Приведение даты на начало дня это и есть использование функции максимум?

И вот результат запроса сейчас тогда получается без учета того что может быть несколько реализаций, или могут быть просто отдельные документы без присутствия в выборке остальных. Сказывается наложение ограничения на период выборки и то что она по документам делается видимо."

мы учтем твой ЭКСПЕРТНОЕ мнение
37 Мимохожий Однако
 
15.11.13
12:27
(34)Функция НАЧАЛОПЕРИОДА
НАЧАЛОПЕРИОДА (<Дата периода>, <Тип периода>)

<Дата периода> – выражение типа ДАТА, указывающего дату периода;

<Тип периода> - тип периода, одно из: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ.

Функция предназначена для получения даты начала периода по дате, принадлежащей этому периоду.

Примеры:
ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), МЕСЯЦ)

Результат:

Поле1

01.10.2002 0:00:00


ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), ДЕНЬ)

Результат:

Поле1

12.10.2002 0:00:00
38 Мимохожий Однако
 
15.11.13
12:27
(34)Агрегатная функция МАКСИМУМ
Функция вычисляет максимальное значение из всех попавших в выборку значений поля.

В качестве параметра функции можно указывать выражения, содержащие значения любого типа. Не может применяться к выражениям с типом ХранилищеЗначения и Строкам неограниченной длины.

При определении максимального значения применяются правила сравнения значений, описанные в Правила сравнения значений.
39 Мимохожий Однако
 
15.11.13
12:28
(34)Ты запутался малехо
40 Ненавижу 1С
 
гуру
15.11.13
12:31
(39) малехо? запутался?
41 Мимохожий Однако
 
15.11.13
12:32
(40)Да.Да.
42 LivingStar
 
15.11.13
12:40
(39) Ок, спасибо!!!
43 LivingStar
 
15.11.13
12:51
(41) Скажите а приведение даты на НачалоПериода, это следует делать во вложенном запросе? У документов ЗаказПокупателя и ВозвратТоваровОтПокупателя? Я сейчас туда передаю пустую дату через параметр.
44 Wobland
 
15.11.13
12:52
(43) можешь передавать туда сразу самую пустую дату - полночь первого января первого года
45 Wobland
 
15.11.13
12:52
(44) а можешь эту полночь к началу дня привести
46 LivingStar
 
15.11.13
12:53
в запросе (35) правильно ли используется функция Максимум() ?
47 Ненавижу 1С
 
гуру
15.11.13
12:54
(46) нет
48 Ненавижу 1С
 
гуру
15.11.13
12:54
ты язык SQL когда нибудь видел?
49 LivingStar
 
15.11.13
12:55
(46+) Если в выборке у двух документов пустая дата, а у РеализацииТоваровУслуг она есть, она же должна выбраться?

(47) А как делать нужно в таком случае? Если дата в выборке нужна только у одного документа, у двух других документов дата не нужна.
50 LivingStar
 
15.11.13
12:56
(48) Видел, и что это дает?
51 Ненавижу 1С
 
гуру
15.11.13
12:56
(50) тебе ничего
52 Wobland
 
15.11.13
12:56
и вот тут как раз наступает такой момент, когда в одной колонке строк получается больше. даты нужны не все, а суммы все
53 LivingStar
 
15.11.13
13:01
так же нужно выбрать номер реализации, дату или ссылку, это возможно?
54 Ненавижу 1С
 
гуру
15.11.13
13:02
огласи цель отчета
55 LivingStar
 
15.11.13
13:04
(54) Построчно получить оборот товара в разрезе заказа, реализации, возврата. С выводом номера, даты реализайии, Контрагента, номенклатуры.
56 Wobland
 
15.11.13
13:06
>получить оборот товара
я всё же как-то надеялся, что цель запроса - получить документы, ан нет.
третий раз скажу. за такое на экзамене порят розгами прямо по простреленной коленке. и правильно делают
57 Ненавижу 1С
 
гуру
15.11.13
13:08
(55) если это типовая УТ 10 или что-то подобное, то есть уже готовый отчет Продажи
58 LivingStar
 
15.11.13
13:08
(56) это ясно, но я же написал (25)
59 LivingStar
 
15.11.13
13:09
(57) то есть из него брать пример и разбирать?
в (0) это часть выборки, к которой привязывается потом ещё всякая хрень .....
60 LivingStar
 
15.11.13
13:14
Я так понимаю что в (35) это не работоспособный запрос. Тогда подскажите пожалуйста, что в нем исправить что бы он стал работоспособным?
61 Мимохожий Однако
 
15.11.13
15:04
(58)Посмотри какие регистры двигаются при проведении документа и по ним строй запрос.
62 Ненавижу 1С
 
гуру
15.11.13
17:27
(59) нет, там все уже есть
63 LivingStar
 
18.11.13
07:56
(62) Там есть,  но не в том виде, там по группировкам, которые располагаются сверху, мне нужно было в одну строку.....
AdBlock убивает бесплатный контент. 1Сергей