Имя: Пароль:
1C
1С v8
Получение различных записей из регистра по полю Номенклатура
0 Limes
 
07.10.16
20:20
Как из регистра сведений выбрать записи только с уникальной номенклатурой. Помимо измерения номенклатуры в регистре еще есть поле ДатаНачала
1 Mauser
 
07.10.16
20:22
Необходимо написать запрос. Он вернет поле  Номенклатура.
2 Limes
 
07.10.16
20:27
(1)
ВЫБРАТЬ
    АкцииКонтрагентов.Номенклатура,
    АкцииКонтрагентов.АкцияНачало
ИЗ
    РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов
ГДЕ
    АкцииКонтрагентов.Номенклатура В
            (ВЫБРАТЬ РАЗЛИЧНЫЕ
                АкцииКонтрагентов.Номенклатура КАК Номенклатура
            ИЗ
                РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов)

возвращает все записи запроса, а мне надо только, чтобы уникальные
3 Михаил Козлов
 
07.10.16
20:30
ВЫБРАТЬ РАЗЛИЧНЫЕ
    АкцииКонтрагентов.Номенклатура
ИЗ РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов
4 Limes
 
07.10.16
20:35
(3) Тогда пропадет поле АкцияНачало а оно тоже нужно
5 Mauser
 
07.10.16
20:36
(2) А говорил есть поле ДатаНачала...
6 Limes
 
07.10.16
20:38
(5) АкцияНачало имеет тип дата название не имеет значение
7 Mauser
 
07.10.16
20:40
(6) Хорошо, уговорил. Но как поле может быть типом дата название и при этом не иметь значения?
8 Limes
 
07.10.16
20:44
(7) Я имею введу, что все равно как поле назвать, главное, что оно есть и оно нужно
9 Михаил Козлов
 
07.10.16
23:54
(8) Так какое значение АкцияНачало Вы хотите увидеть рядом с полем Номенклатура (если их несколько)? Минимальная, максимальная?
10 Рэйв
 
07.10.16
23:56
(0)Открой для себя виртуальные таблицы и их параметры.
11 PR
 
08.10.16
00:11
(4) Сегодня что, день открытых дверей в дурдоме что ли?
ВЫБРАТЬ РАЗЛИЧНЫЕ
    АкцииКонтрагентов.Номенклатура,
    АкцииКонтрагентов.АкцияНачало
ИЗ
    РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов

ГДЕ
    АкцииКонтрагентов.Номенклатура В
            (ВЫБРАТЬ РАЗЛИЧНЫЕ
                АкцииКонтрагентов.Номенклатура КАК Номенклатура
            ИЗ
                РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов)
12 Сергиус
 
08.10.16
01:07
(11)Ага, а если у тебя будет такие записи:

1)Номенклатура1, 01.01.0001
2)Номенклатура1, 02.02.0002

Он тебе их обе и выдаст, а челу то хочется, чтобы одна была)
13 Сергиус
 
08.10.16
01:08
+(12) Другой вопрос, что правильно в (9) подметили, по какой принципу выбирать то?
14 Сергиус
 
08.10.16
01:10
+(13)*по-какому
15 PR
 
08.10.16
01:22
(12) Судя по (2) ему нужно просто дубли убрать.
Если чтобы еще и только одна запись для одной номенклатуры, то с этим к врачу.
16 Злопчинский
 
08.10.16
01:50
Я аачу трактуют так, что нужны записи по тем номенклатурам, которые в регистре сведений встречаются ОДИН раз
17 Злопчинский
 
08.10.16
01:51
Поэ тому яноменклатура1 из (12) вообще в результат не попадет
18 Сергиус
 
08.10.16
02:13
(17)Будет желание - проведи эксперимент)
19 Злопчинский
 
08.10.16
02:25
(18) мне эксперимент проводить смысла нет ибо номенклатура1 из примера (13) не попадает в результат согласно моему определению, а какие смыслы и запросы по написали другие коллеги мну пока неинтересно обсуждать из-за мутности тс
20 youalex
 
08.10.16
08:56
(0) ГДЕ Номенклатура В (ВЫБРАТЬ Номенклатура ИЗ ...
СГРУППИРОВАТЬ ПО Номенклатура
ИМЕЮЩИЕ Количество(*) = 1
21 Limes
 
08.10.16
13:25
(9) Минимальное значение. Все всем спасибо! Разобрался. Надо было сделать группировку

ВЫБРАТЬ
    АкцииКонтрагентов.Номенклатура,
    МИНИМУМ(АкцииКонтрагентов.АкцияНачало) КАК АкцияНачало
ИЗ
    РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов

СГРУППИРОВАТЬ ПО
    АкцииКонтрагентов.Номенклатура
22 Злопчинский
 
08.10.16
17:32
(21)  неверный результат запроса будет. Ты уж определись что тебе надо - уникальные номенклатуры или неуникальные

Я поражаюсь какой у людей бардак в голове
Язык вообще с мозгом не связан, описывают одно, делают другое
23 iceman2112
 
08.10.16
17:36
(22) может его просто прет)) Был один такой уже
24 Limes
 
09.10.16
20:19
(22) Точно не верный результат... (9) Значения полей Номенклатура и АкцияНачало должны быть из первой найденной записи. Например:
из
1)Номенклатура1, 03.01.0001
2)Номенклатура1, 04.02.0002
3)Номенклатура1, 01.01.0001
4)Номенклатура1, 02.02.0002
5)Номенклатура2, 01.01.0001
6)Номенклатура2, 02.02.0002
должны попасть в результат
1)Номенклатура1, 03.01.0001
5)Номенклатура2, 01.01.0001
25 Mauser
 
09.10.16
20:27
(24) фраза "первая найденная запись" уже подазумевает порядок просмотра. Ты вот эти 1), 2) откуда взял?
26 Limes
 
09.10.16
20:32
(25) Это значения для примера - с головы(Такие как могут быть реальности) . Получается, нужен срез первых
27 hhhh
 
09.10.16
22:29
(26) это срез последних
28 Limes
 
10.10.16
12:12
(24) Сделал так


ВЫБРАТЬ
    АкцииКонтрагентов.Номенклатура КАК Номенклатура,
    АкцииКонтрагентов.АкцияНачало КАК АкцияНачало,
    ВЫБОР
        КОГДА (АкцииКонтрагентов.Номенклатура, АкцииКонтрагентов.АкцияНачало) В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    АкцииКонтрагентовПервые.Номенклатура КАК Номенклатура,
                    АкцииКонтрагентовПервые.АкцияНачало КАК АкцияНачало
                ИЗ
                    РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентовПервые
                ГДЕ
                    АкцииКонтрагентовПервые.Номенклатура = АкцииКонтрагентов.Номенклатура)
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПерваяЗапись
ИЗ
    РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов
ГДЕ
    ВЫБОР
            КОГДА (АкцииКонтрагентов.Номенклатура, АкцииКонтрагентов.АкцияНачало) В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        АкцииКонтрагентовПервые.Номенклатура КАК Номенклатура,
                        АкцииКонтрагентовПервые.АкцияНачало КАК АкцияНачало
                    ИЗ
                        РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентовПервые
                    ГДЕ
                        АкцииКонтрагентовПервые.Номенклатура = АкцииКонтрагентов.Номенклатура)
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ = ИСТИНА

УПОРЯДОЧИТЬ ПО
    ПерваяЗапись УБЫВ,
    Номенклатура,
    АкцияНачало
29 Limes
 
11.10.16
17:00
Или так:

ВЫБРАТЬ
    АкцииКонтрагентов.Номенклатура КАК Номенклатура,
    АкцииКонтрагентов.АкцияНачало КАК АкцияНачало
ИЗ
    (ВЫБРАТЬ
        АкцииКонтрагентов.Номенклатура КАК Номенклатура,
        АкцииКонтрагентов.АкцияНачало КАК АкцияНачало,
        ВЫБОР
            КОГДА (АкцииКонтрагентов.Номенклатура, АкцииКонтрагентов.АкцияНачало) В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        АкцииКонтрагентовПервые.Номенклатура КАК Номенклатура,
                        АкцииКонтрагентовПервые.АкцияНачало КАК АкцияНачало
                    ИЗ
                        РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентовПервые
                    ГДЕ
                        АкцииКонтрагентовПервые.Номенклатура = АкцииКонтрагентов.Номенклатура)
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ПерваяЗапись
    ИЗ
        РегистрСведений.АкцииКонтрагентов КАК АкцииКонтрагентов) КАК АкцииКонтрагентов
ГДЕ
    АкцииКонтрагентов.ПерваяЗапись = ИСТИНА

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    АкцияНачало
30 FIXXXL
 
11.10.16
17:46
(24) уясни для себя, чем тебе так нравится ПЕРВАЯ запись из твоего списка? что такого в ней уникального? отсюда и строй запрос
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn