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


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

Помогите найти ошибку в запросе

Помогите найти ошибку в запросе
Я
   Eeelena
 
24.08.18 - 09:41
Здравствуйте.

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

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

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

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

////////////////////////////////////////////////////////////////////////////////

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

   Eeelena
 
47 - 24.08.18 - 13:48
(45) огромное вам спасибо!!!!!!!!!!


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