Имя: Пароль:
1C
1С v8
Помогите найти ошибку в запросе
0 Eeelena
 
24.08.18
09:41
Здравствуйте.

Есть следующий запрос, который должен выбрать Склад, который соответствует Основному средству из Документа Поступления Товаров и Услуг

ВЫБРАТЬ ПЕРВЫЕ 1
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство,
    СкладыХраненияОстатковГСМвОССрезПоследних.Склад
ПОМЕСТИТЬ Склады
ИЗ
    РегистрСведений.СкладыХраненияОстатковГСМвОС.СрезПоследних(&КонецПериода, ) КАК СкладыХраненияОстатковГСМвОССрезПоследних

СГРУППИРОВАТЬ ПО
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство,
    СкладыХраненияОстатковГСМвОССрезПоследних.Склад,
    СкладыХраненияОстатковГСМвОССрезПоследних.Период

УПОРЯДОЧИТЬ ПО
    СкладыХраненияОстатковГСМвОССрезПоследних.Период УБЫВ
;

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


Проблема в том, что если использовать ВЫБРАТЬ первые он не выводит Склад из Регистра СкладыХраненияОстатковГСМвОССрезПоследних. Использую Выбрать первые так как могут быть несколько складов для одного ОС, если выбрать первые не использовать, то склад из регистра выводится, но как я уже говорила, выводится несколько складов. Помогите разобраться почему так, почему не выводится склад из Регистра сведений.


Использую выбрать первые Выборка получилась:

Склад - Склад Трактор 111
СтоимостьРасход -100
Регистратор - Требование накладная
Основное средство- Пусто
Склад-Пусто

Не использую выбрать первые Выборка получилась:
Строка1
Склад - Склад Трактор 111
СтоимостьРасход -100
Регистратор - Требование накладная
Основное средство- Трактор 111
Склад-Склад Трактор 111

Строка 2
Строка1
Склад - Склад Трактор 111
СтоимостьРасход -100
Регистратор - Требование накладная
Основное средство- Трактор 111
Склад-Склад2 Трактор 111
1 Beduin
 
24.08.18
09:45
А в регистресведений есть записи для основного средства без склада?
2 Eeelena
 
24.08.18
09:50
(1) нет, там две записи, в одной склад Склад Трактор 111, в другой Склад2 Трактор 111, с одним и тем же ОС
3 Tonik992
 
24.08.18
09:53
"то склад из регистра выводится, но как я уже говорила, выводится несколько складов."

это все потому, что у вас группировка по периоду еще устанавливается в первом пакете запроса.
4 Лефмихалыч
 
24.08.18
09:56
какие еще измерения есть в регистре сведений?
5 Лефмихалыч
 
24.08.18
09:56
(3) нет, не по этому
6 Eeelena
 
24.08.18
09:58
(3) группировку вообще убрала , не помогло
7 Eeelena
 
24.08.18
09:58
(4) Измерение -Основное средство
Ресурс-Склад
8 VS-1976
 
24.08.18
09:59
(7) А зачем ты используешь ПОЛНОЕ СОЕДИНЕНИЕ?
9 Beduin
 
24.08.18
10:10
(2) А у тебя в регистраторе какой склад?
10 catena
 
24.08.18
10:28
Выбрать первые 1 вернет одну запись, вы о чем? Он и берет ровно одну пару ос-склад, все остальные ос идут лесом.

Если для одного ОС есть несколько складов, какой из них должен быть использован? Любой? Старший?

И почему соединение только по складу?

И зачем ссылку уточнять еще раз ссылкой? Имею в виду эту строчку:
ПО ПартииТоваровНаСкладахОбороты.Склад.Ссылка = Склады.Склад.Ссылка
11 dmt
 
24.08.18
10:54
(0)
ВЫБРАТЬ
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство,
    Максимум(СкладыХраненияОстатковГСМвОССрезПоследних.Склад) КАК Склад
ПОМЕСТИТЬ Склады
ИЗ
    РегистрСведений.СкладыХраненияОстатковГСМвОС.СрезПоследних(&КонецПериода, ) КАК СкладыХраненияОстатковГСМвОССрезПоследних

СГРУППИРОВАТЬ ПО
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство,
    СкладыХраненияОстатковГСМвОССрезПоследних.Период
12 Tonik992
 
24.08.18
10:57
(11) какое результат возвращает агрегатная функция МАКСИМУМ() для ссылочных значений?
13 Mankubus
 
24.08.18
11:08
(12) ссылку возвращает
14 Eeelena
 
24.08.18
11:12
(9) склад один и тот же ОС разные, прошу прощения пе6репутала
15 dmt
 
24.08.18
11:12
что-то (2) и (4) не согласуются
16 Eeelena
 
24.08.18
11:13
(10) там есть с одним и тем же периодом и выводится несколько записей

потому что только по складу их можно соединить

ссылка.ссылка это уже от безысходности)
17 Eeelena
 
24.08.18
11:14
(15) (15) что именно не согласуется
18 Мимохожий Однако
 
24.08.18
11:19
(16) Тогда сделай еще пару ссылка.ссылка. Авось полегчает.))
..
Покажи кусок регистра сведений, где есть склад с отбором по твоему ОС
19 dmt
 
24.08.18
11:20
(17) Если ОС - измерение, как "могут быть несколько складов для одного ОС"? Или это не единственное измерение?
20 Eeelena
 
24.08.18
11:27
(19) единственное
21 catena
 
24.08.18
11:28
(16)Если в один период у одного ОС два склада, какой нужно использовать?
22 Tonik992
 
24.08.18
11:32
(13) в том-то и делает, но какую именно ссылку он вернет?
23 Tonik992
 
24.08.18
11:35
(13) вот у вас сто элементов справочника "Склад".
Вы применяете в запросе функцию МАКСИМУМ(Склады.Ссылка).

Какую конкретно ссылку даст?
24 Eeelena
 
24.08.18
11:37
(21) любой из них, но один
25 catena
 
24.08.18
11:37
(22)Максимальную по идентификатору. Т.е., для учета фактически случайную.
26 catena
 
24.08.18
11:37
(24)Если любой, то и группируйте вон, хоть по максимум склады
27 catena
 
24.08.18
11:38
ВЫБРАТЬ ПЕРВЫЕ 1
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство,
    Максимум(СкладыХраненияОстатковГСМвОССрезПоследних.Склад)
ПОМЕСТИТЬ Склады
ИЗ
    РегистрСведений.СкладыХраненияОстатковГСМвОС.СрезПоследних(&КонецПериода, ) КАК СкладыХраненияОстатковГСМвОССрезПоследних

СГРУППИРОВАТЬ ПО
    СкладыХраненияОстатковГСМвОССрезПоследних.ОсновноеСредство
28 dmt
 
24.08.18
11:43
(27) Регистр оказывается с измерением ОС и ресурсом Склад, но при этом в СрезеПоследних "могут быть несколько складов для одного ОС"

С нетерпением ждем ответа на (18)
29 Eeelena
 
24.08.18
11:45
(27) проблема в том, что в таком случае он не выводит вообще склад из Регистра
30 Eeelena
 
24.08.18
11:45
и я не пойму почему
31 Eeelena
 
24.08.18
11:46
(18)Склад один и тот же, разные ОС
32 catena
 
24.08.18
11:46
(29)Значит нет у вас совпадений "случайного" склада и склада из регистра ПартииТоваровНаСкладах
33 catena
 
24.08.18
11:47
(31)А в (0) написано, что складов несколько у одного ОС. Определитесь.
34 Eeelena
 
24.08.18
11:49
(33) я после этого написала, что ошиблась (32) есть совпадения, я же написала , что когда не использую выбрать первые, то выводится две записи и в них заполнен склад из регистра, а когда делаю выбрать первые выводится одна запись со складом только из Партий
35 catena
 
24.08.18
11:56
(34)А я сказала, что не надо использовать ПЕРВЫЕ, надо группировать.
36 catena
 
24.08.18
11:57
(34)Вы свой запрос выбрать первые 1 запустите отдельно в консоли и посмотрите, что там совсем не то, что вы ожидаете.
37 dmt
 
24.08.18
12:11
(34) постараюсь своими словами описать, вы поправьте если что.
1. У вас есть документы ПТУ, в них есть склад в шапке и в табличной части ОС.
2. Есть рег.сведений с измерением ОС, ресурсом Склад. Наверное, в него делают движения документы ПТУ.
3. Разные ОС могут находиться на одном и том же складе, что логично.
Вопрос: вы хотите, зная только склад, однозначно получить ОС? Или кроме склада еще что-то известно?
38 Eeelena
 
24.08.18
12:50
(37) У меня есть документ требование накладная я беру оттуда Склад из Регистра накопления и есть регистр сведений
в котором хранится соответствие ОС-Склад, проблема в том, что почему то по тем складам у которых несколько записей, то есть несколько складов, я не могу получить последнее при связи с регистром накопления Партии, у меня получается две записи в выборке, поэтому я решила использовать первые чтобы получить одну запись, но так вообще склад из регистра сведений не попадает.
39 Eeelena
 
24.08.18
12:59
(36) да, вы правы, я почему то была уверена что у меня там записи только по нужному мне складу
40 Eeelena
 
24.08.18
13:30
(36) тогда не понимаю почему срез последних выдает мне две записи при разных перодах
41 catena
 
24.08.18
13:33
(40)Срез последних работает в разрезе всех измерений. Если склад не единственное измерение, значит эти две записи различаются значениями других измерений.
42 _stay true_
 
24.08.18
13:35
(40) потому что фотокарточки нет
43 Eeelena
 
24.08.18
13:38
(41) склад ресурс, измерение ОС
44 Eeelena
 
24.08.18
13:39
(41) как тогда быть в таком случае как получить одну запись?
45 catena
 
24.08.18
13:40
(44)Еще раз: если все равно, какую пару хочешь получить, группируй по тому полю, которое задваивается с любой агрегатной функцией по второму.
46 dmt
 
24.08.18
13:41
47 Eeelena
 
24.08.18
13:48
(45) огромное вам спасибо!!!!!!!!!!