Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Получение различных записей из регистра по полю Номенклатура

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

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

   Limes
 
21 - 08.10.16 - 13:25
(9) Минимальное значение. Все всем спасибо! Разобрался. Надо было сделать группировку

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

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

Я поражаюсь какой у людей бардак в голове
Язык вообще с мозгом не связан, описывают одно, делают другое
   iceman2112
 
23 - 08.10.16 - 17:36
(22) может его просто прет)) Был один такой уже
   Limes
 
24 - 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
   Mauser
 
25 - 09.10.16 - 20:27
(24) фраза "первая найденная запись" уже подазумевает порядок просмотра. Ты вот эти 1), 2) откуда взял?
   Limes
 
26 - 09.10.16 - 20:32
(25) Это значения для примера - с головы(Такие как могут быть реальности) . Получается, нужен срез первых
   hhhh
 
27 - 09.10.16 - 22:29
(26) это срез последних
   Limes
 
28 - 10.10.16 - 12:12
(24) Сделал так


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

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

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    АкцияНачало

   FIXXXL
 
30 - 11.10.16 - 17:46
(24) уясни для себя, чем тебе так нравится ПЕРВАЯ запись из твоего списка? что такого в ней уникального? отсюда и строй запрос


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует