Привет всем. Опять затык в запросе. нужно обойти всю номенклатуру в далионе что впринцепи легко:

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Родитель КАК Родитель,
    | Номенклатура.Код КАК Код,
    | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура";

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
```

на каждую позицию нужно заполнить остатками что отдельным запросом тоже легко сделать

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Фирма КАК Фирма,
    | ОстаткиНоменклатурыОстатки.Склад КАК Склад,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
    |ГДЕ
    | ОстаткиНоменклатурыОстатки.Номенклатура = &Номенклатура
    | И ОстаткиНоменклатурыОстатки.Склад = &Склад
    | И ОстаткиНоменклатурыОстатки.Фирма = &Фирма";

    Запрос.УстановитьПараметр("Номенклатура", Номенкратура);
    Запрос.УстановитьПараметр("Фирма", Фирма);
    Запрос.УстановитьПараметр("Склад", Склад);
    Выборка=Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Воз=Выборка.КоличествоОстаток;
    Конецесли;
    Возврат Воз;
```

а также заполнить ценами

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныНоменклатуры.Цена КАК Цена,
    | ЦеныНоменклатуры.КатегорияЦен КАК КатегорияЦен,
    | ЦеныНоменклатуры.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    |ГДЕ
    | ЦеныНоменклатуры.Номенклатура = &Номенклатура
    | И ЦеныНоменклатуры.КатегорияЦен = &КатегорияЦен";

    Запрос.УстановитьПараметр("Номенклатура", Номенкратура);
    Запрос.УстановитьПараметр("КатегорияЦен", КатегорияЦен);
    Выборка=Запрос.Выполнить().Выбрать();
```

но выполнение всего очень много времени занимает
еще нюанс что остатки нужно заполнить по одному складу но двух выбранных фирм
цены нужно заполнить также двумя, закупочной, и розничной которую при выборе указываешь

вопрос как ускорить? если все выполнить в одном запросе будет ли быстрее? еще отдельно почему то запрос цены не берет последнюю текущую цену, а берет самую первую установленную цену.
---
Всем кто подсказывал и скидываем примеры, ОГРОМНОЕ СПАСИБО.
Особая благодарность dvk09

Рабочий код полностью удовлетворяющий мне нижу.

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Родитель КАК Родитель,
    | Номенклатура.Код КАК Код,
    | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
    |ПОМЕСТИТЬ Номенклатура
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ЛОЖЬ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ ЗакупочныеЦены
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен1) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ РозничныеЦены
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен2) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ПОМЕСТИТЬ ОстаткиФирмы1
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | ,
    | Склад = &Склад
    | И Фирма = &Фирма1) КАК ОстаткиНоменклатурыОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ПОМЕСТИТЬ ОстаткиФирмы2
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | ,
    | Склад = &Склад
    | И Фирма = &Фирма2) КАК ОстаткиНоменклатурыОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЭлементыНоменклатуры.Ссылка КАК Ссылка,
    | ЭлементыНоменклатуры.Родитель КАК Родитель,
    | ЭлементыНоменклатуры.Код КАК Код,
    | ЭлементыНоменклатуры.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    | ЕСТЬNULL(ЗакупочныеЦены.Цена, 0) КАК ЗакупочнаяЦена,
    | ЕСТЬNULL(РозничныеЦены.Цена, 0) КАК РозничнаяЦена,
    | ЕСТЬNULL(ОстаткиФирмы1.КоличествоОстаток, 0) КАК ОстатокФирмы1,
    | ЕСТЬNULL(ОстаткиФирмы2.КоличествоОстаток, 0) КАК ОстатокФирмы2
    |ИЗ
    | Номенклатура КАК ЭлементыНоменклатуры
    | ЛЕВОЕ СОЕДИНЕНИЕ ЗакупочныеЦены КАК ЗакупочныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = ЗакупочныеЦены.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = РозничныеЦены.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиФирмы1 КАК ОстаткиФирмы1
    | ПО ЭлементыНоменклатуры.Ссылка = ОстаткиФирмы1.Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиФирмы2 КАК ОстаткиФирмы2
    | ПО ЭлементыНоменклатуры.Ссылка = ОстаткиФирмы2.Номенклатура";

    Запрос.УстановитьПараметр("КатегорияЦен1", Справочники.КатегорииЦен.НайтиПоНаименованию("Закупочная"));
    Запрос.УстановитьПараметр("КатегорияЦен2", Справочники.КатегорииЦен.НайтиПоНаименованию(КатегорияЦены));
    Запрос.УстановитьПараметр("Фирма1", Фирма1);
    Запрос.УстановитьПараметр("Фирма2", Фирма2);
    Запрос.УстановитьПараметр("Склад", Склад);
```
---
В чем сложности сделать левые соединения с таблицей остатков и цен в одном запросе?
ТаблицаЦен и ТаблицаОстатков сформировать как временные таблицы отдельными запросами с нужными отборами. ТаблицаЦен сформировать из СрезПоследних.

```1c
    Выбрать
    Номеклатура,
    КоличествоОстаток
    ПОМЕСТИТЬ ТаблицаОстатков
    ИЗ
    РегистрОстатков.Остатки(&Граница, Склад В(&Склады))
    ;
    Выбрать
    Номеклатура,
    ВидЦены,
    Цена
    ПОМЕСТИТЬ ТаблицаЦен
    ИЗ
    РегистрЦен.СрезПоследних(&Дата, )
    ;
    Выбрать
    Т1.Ссылка КАК Номенклатура
    Т2.КоличествоОстаток,
    Т3.Цена КАК Цена1
    Т4.Цена КАК Цена2
    ИЗ
    ТаблицаНоменклатуры КАК Т1
    Левое соединение ТаблицаОстатков КАК Т2
    ПО Т1.Ссылка = Т2.Номенклатура
    Левое соединение ТаблицаЦен КАК Т3
    ПО Т1.Ссылка = Т3.Номенклатура
    И ТаблицаЦен.ВидЦены = &ВидЦены1
    Левое соединение ТаблицаЦен КАК Т4
    ПО Т1.Ссылка = Т4.Номенклатура
    И ТаблицаЦен.ВидЦены = &ВидЦены2
```

Будет быстрее хотя бы из-за того, что не будет запросов в цикле.
---
В чем и дело. Сначало освоишься в запросах, вроде все получается. Потом на год забросишь, а как понадобится ни чего не помнишь. Простыми запросами начинаешь все решать.
---
"запрос цены не берет последнюю текущую цену" Срез последних сделать
---
А если перенести условия в параметры виртуальных таблиц... но это уже слишком, наверное, для 30 звездочек о)
---
Сарказм. Уважаю. Но здесь вопрос близок, "а в чем разница фроденда и бекэда". Если верстальщик занимается только версткой, от поплывет в решения какой ни будь задачи в беке.
---
наверное, для 30 звездочекЧто такое 30 звездочек?
---
Что такое 30 звездочек? Это как с коньяком. 30 клопов раздавили, значит.
---
да Господа. Забавно наблюдать что точка преткновения оказалось количество звезд.
Вместо того что бы показать свое превосходство на примере рабочего запроса, закрывающий мой вопрос. что бы понял где я опростоволосился. Вы долбите прутиком по воде.
Звезды не означают крутизну в коденге. А означает что я узнав нюанса в каком то вопросе и не сидел над ними как над златом, мое, только я знаю, ХЫХЫХЫ. А поделился с общественностью, что бы кто то если натыкнулся на данную проблему, мог ее решить.
---
А с чего ты взял, что наша цель - показать своё превосходство или закрыть твой вопрос?
---
А зачем тогда сидеть в этом разделе?
Не для того что бы если что то знаешь, поделиться решением. Или найти ответ на свою задачу путем поиска аналогичных запросов.
Вроде прикрыли лавочку фарма стартов через сообщения.
---
А зачем тогдаhttps://infostart.ru/about/rules/
Пункт 7.8:
Infostart.ru не гарантирует, что: сервисы будут соответствовать Вашим требованиям;
---
Прости. Больше вопросов нет. Имя в профиле все сказало )))
---
не там ищешь. Тут надо или изучать, что такое запросы, как они работают, как устроена база данных и т.д., это не объяснить в рамках сообщений на форуме. Или же сделать готовое решение, что возможно, но это работа и она стоит денег, а не 0.15 манек. Я думаю, что если ты предложишь тысяч 10, то вопрос будет решен в течение нескольких часов. И это будет справедливо и правильно. А искать, кто сделает работу нахаляву - несправедливо и неправильно.
---
ищешь. Тут надо или изучать, что такое запросы, как они работают, как устроена база данных и т.д., это не объяснить в рамках сообщений на форуме. Или же сделать готовое решение, что возможно, но это работа и она стоит денег, а не 0.15 манек. Я думаю, что если ты предложишь тысяч 10, то вопрос будет решен в течение нескольких часов. И это будет справедливо и правильно. А искать, кто сделает работу нахаляву - несправедливо и неправильно.
Вы не правы. Не кто не спрашивает, дайте мне готовы код. Да и поправить запрос за 10к не многовато ли.
Вы дали наводку что через временные таблицы скомпоновать. Спасибо за это. Копаю, перебираю.
---
....на примере рабочего запроса, закрывающий мой вопрос
Пример приведен в (2), вам необходимо его адаптировать под свои реалии.
---
Спасибо, добрый человек. По твоему примеру я и объединил в один запрос обход двух цен
КодЗапрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатуры1.Цена КАК Цена1,
               |    ЦеныНоменклатуры1.КатегорияЦен КАК КатегорияЦен1,
               |    ЦеныНоменклатуры2.Цена КАК Цена2,
               |    ЦеныНоменклатуры2.КатегорияЦен КАК КатегорияЦен2,
               |    ЦеныНоменклатуры1.Номенклатура КАК Номенклатура
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
               |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры2
               |        ПО ЦеныНоменклатуры1.Номенклатура = ЦеныНоменклатуры2.Номенклатура
               |            И (ЦеныНоменклатуры1.КатегорияЦен = &КатегорияЦен1)
               |            И (ЦеныНоменклатуры2.КатегорияЦен = &КатегорияЦен2)
               |ГДЕ
               |    ЦеныНоменклатуры1.Номенклатура = &Номенклатура";Показать полностью
но со срезом не догнал и как в таблицу поместить для общего обхода.
---
Результат этого запроса по своей сути будет чушью, т.к. если по КатергорияЦен1 не будет данных, то и по КатегорияЦен2 так же не будет данных даже в случае их наличия в регистре.
Данный запрос так же не получает последнее значение цены и я боюсь себе представить какое количество записей он вернет

Если внимательно читать (2), то в нем запрос цен строится к таблице СрезПоследних с указанием параметров виртуальной таблицы.
---
Точкой преткновения стало нереально огромное количество информации по работе с СКД. Причем как в свободном доступе, так и за символическую денежку. Как минимум книги "Язык запросов 1С:Предприятия" Хурсталевой и "Язык запросов 1С от зубов" Сайфутдинова с Сотниковым. Поэтому твоя попытка иронизировать про "сидеть над златом" неуместна - это расписано до уровня "объяснить на хлебушке". Если нет желания читать, то и учиться нет желания. А если нет желания учиться - что тогда хотеть от форумчан? Готового кода? Так это в фриланс и за деньги.
---
у каждого свой подход к изучению. Знаю много "спецов", кто и книжки прочли, и курсы, и сидят на жопе в ожидание вакансии мечты. Ни строчки кода не написали. Мне же удобнее по проектам шагать разбирая, даже если гдето вырвиглазный код но задачу выполняет. так и тут, работает, но коряво и хочу понять где касяк.

Да и когда СКД в принцепи в текучке не используешь, как то тонкости глубже знать не обязательно. Если что то нужно сделать, мне проще на примере похожего разобрать. Почему и все старты сжигаются. рад бы и 10 стартов отдать тому кто поможет да нема уже.
---
Сообщение было скрыто модератором.
---
Просто раздал по мере конструктивных сообщений, которые навели меня куда копать.

ПС. Давно же не было меня на форуме. Как поменялось сообщество.
---
Не знаю что там у тебя за «спецы» и что за сгоревшие старты (мир пеплу их), но базу тебе нужно подтянуть обязательно. Первый запрос с номенклатурой тебе зачем? Ты получаешь ВСЮ номенклатуру. Если ее 40000 то и строк будет 40000. Если ее полмиллиона, то и строк будет полмиллиона. Если тебе нужны остатки с определенными параметрами (Контрагент, Склад, ВидНоменклытуры, ЛюбоеДругоеБуйствоФантазии), то первой временной таблицей у тебя должна быть таблицей остатков. И уже к ней тебе нужно цеплять все остальное. Осталось два коробка спичек — ок, ты работаешь с этими двумя коробками, а не кладешь сервер изобилием номенклатуры Ашана.
---
(40) Первый запрос с номенклатурой тебе зачем? Ты получаешь ВСЮ номенклатуру.
Нужна вся, для разовой обработки данных.
---
Сообщение было скрыто модератором.
---
заполнить отдельную табличную часть всей номенклатуры, для дальнейший отдельных манипуляций по условиям. Сразу по условиям заполнять не вариант, так как корректируется условия по ходу изучения всего списка.
---
Потом на год забросишьА ты не забрасывай.
---
все условия на измерения регистров нужно прописывать в параметрах виртуальных таблиц.

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Фирма КАК Фирма,
    | ОстаткиНоменклатурыОстатки.Склад КАК Склад,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | ,
    | Номенклатура = &Номенклатура
    | И Склад = &Склад
    | И Фирма = &Фирма) КАК ОстаткиНоменклатурыОстатки";
```

что бы получить последнюю цену, нужно использовать СрезПоследних

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныНоменклатуры.Цена КАК Цена,
    | ЦеныНоменклатуры.КатегорияЦен КАК КатегорияЦен,
    | ЦеныНоменклатуры.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    | ,
    | Номенклатура = &Номенклатура
    | И КатегорияЦен = &КатегорияЦен) КАК ЦеныНоменклатуры";
```
---
прикол в том что срез не отрабатывает и пускает в замкнутый цикл пока не сбросишь, даже в отладке первый результат обхода не дает

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныНоменклатуры1.Цена КАК Цена1,
    | ЦеныНоменклатуры1.КатегорияЦен КАК КатегорияЦен1,
    | ЦеныНоменклатуры2.Цена КАК Цена2,
    | ЦеныНоменклатуры2.КатегорияЦен КАК КатегорияЦен2,
    | ЦеныНоменклатуры1.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры1
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры2
    | ПО ЦеныНоменклатуры1.Номенклатура = ЦеныНоменклатуры2.Номенклатура
    | И (ЦеныНоменклатуры1.КатегорияЦен = &КатегорияЦен1)
    | И (ЦеныНоменклатуры2.КатегорияЦен = &КатегорияЦен2)
    |ГДЕ
    | ЦеныНоменклатуры1.Номенклатура = &Номенклатура";
```
---
а если не срезом то самую первую цену

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныНоменклатуры1.Цена КАК Цена1,
    | ЦеныНоменклатуры1.КатегорияЦен КАК КатегорияЦен1,
    | ЦеныНоменклатуры2.Цена КАК Цена2,
    | ЦеныНоменклатуры2.КатегорияЦен КАК КатегорияЦен2,
    | ЦеныНоменклатуры1.Номенклатура КАК Номенклатура
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры2
    | ПО ЦеныНоменклатуры1.Номенклатура = ЦеныНоменклатуры2.Номенклатура
    | И (ЦеныНоменклатуры1.КатегорияЦен = &КатегорияЦен1)
    | И (ЦеныНоменклатуры2.КатегорияЦен = &КатегорияЦен2)
    |ГДЕ
    | ЦеныНоменклатуры1.Номенклатура = &Номенклатура";
```

если период использовать тоже в цикл уходит. И фиг знает толь Далион закоцана база, толи хз
---
Я реально до сих пор не знаю, что означает 30 звезд.
---
сколько раз поблагодарили люди
---
сколько раз поблагодарили люди А как я могу кого-то поблагодарить?
Это на какую кнопку и где нажать? Вижу только +-, ответить, пожаловаться, скопировать ссылку, перейти, изменить.
---
Это сколько раз публикации автора поставили плюсы и добавили в избранное.
---
Сообщение было скрыто модератором.
---
точно нет
---
Сообщение было скрыто модератором.
---
звезда может появится и без скачивания, она говорит о том, что пользователь добавил работу в свое "избранное"
---
Можно сделать публикацию о том что в феврале не может быть 30 дней, завести пару десятков твинков-однодневок, в каждом добавить работу в избранное... Готово, вы - звезда!
---
именно так это работает, к сожалению
---
Вот вариант только с ценами:

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Родитель КАК Родитель,
    | Номенклатура.Код КАК Код,
    | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
    |ПОМЕСТИТЬ Номенклатура
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ЛОЖЬ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ ЗакупочныеЦены
    |ИЗ
    | РегистрСведений.Цены.СрезПоследних(, ТипЦен = &ТипЦенЗакупочные) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ РозничныеЦены
    |ИЗ
    | РегистрСведений.Цены.СрезПоследних(, ТипЦен = &ТипЦенРозничные) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЭлементыНоменклатуры.Ссылка КАК Ссылка,
    | ЭлементыНоменклатуры.Родитель КАК Родитель,
    | ЭлементыНоменклатуры.Код КАК Код,
    | ЭлементыНоменклатуры.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    | ЕСТЬNULL(ЗакупочныеЦены.Цена, 0) КАК ЗакупочнаяЦена,
    | ЕСТЬNULL(РозничныеЦены.Цена, 0) КАК РозничнаяЦена
    |ИЗ
    | Номенклатура КАК ЭлементыНоменклатуры
    | ЛЕВОЕ СОЕДИНЕНИЕ ЗакупочныеЦены КАК ЗакупочныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = ЗакупочныеЦены.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = РозничныеЦены.Номенклатура
    |";
    Запрос.Параметры.Вставить("ТипЦенЗакупочные", ТипЦенЗакупочные); // <Типы цен>[], Справочники.ТипыЦен.ПустаяСсылка();
    Запрос.Параметры.Вставить("ТипЦенРозничные", ТипЦенРозничные); // <Типы цен>[], Справочники.ТипыЦен.ПустаяСсылка();
```

Но не забывайте, что в регистре могут быть и другие измерения (Подразделение, Организация, Проект...) Я не знаком с Далионом тесно.
Если подумать, то сможете по аналогии добавить временную таблицу остатков, ну или несколько таблиц, если по разным складам надо.
Ну и группировки можно применять...
---
И - Да, получить данные одним запросом обычно будет быстрее, ну и 1С в том числе это рекомендует
---
спасибо! буду проверять. Вижу что в срезе у себя параметры не указывал
```1c
    СрезПоследних(, ТипЦен = &ТипЦенЗакупочные)
```

Первый пустой параметр, дата, тоесть текущая берется.
---
Ну не совсем текущая, последняя.
Дату можно явно параметром задать, в примере (2) должно быть, если не ошибаюсь
---
Ну и к вопросу о параметрах.
Ещё раз повторю, в регистре могут быть и другие измерения, кроме номенклатуры и типа цен.
Это нужно учесть, и передавать и их в параметрах.

Или нужно группировать результат и получать Минимальное / Максимальное значение цены (ну или сумму для остатка, если несколько складов например и несколько организаций...)
Тут нужно подробно вникнуть в структуру и в задачу.
---
Всем кто подсказывал и скидываем примеры, ОГРОМНОЕ СПАСИБО.
Особая благодарность dvk09

Рабочий код полностью удовлетворяющий мне нижу.

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Родитель КАК Родитель,
    | Номенклатура.Код КАК Код,
    | Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
    |ПОМЕСТИТЬ Номенклатура
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ЛОЖЬ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ ЗакупочныеЦены
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен1) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    | ЦеныСрезПоследних.Цена КАК Цена
    |ПОМЕСТИТЬ РозничныеЦены
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен2) КАК ЦеныСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ПОМЕСТИТЬ ОстаткиФирмы1
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | ,
    | Склад = &Склад
    | И Фирма = &Фирма1) КАК ОстаткиНоменклатурыОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ПОМЕСТИТЬ ОстаткиФирмы2
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | ,
    | Склад = &Склад
    | И Фирма = &Фирма2) КАК ОстаткиНоменклатурыОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЭлементыНоменклатуры.Ссылка КАК Ссылка,
    | ЭлементыНоменклатуры.Родитель КАК Родитель,
    | ЭлементыНоменклатуры.Код КАК Код,
    | ЭлементыНоменклатуры.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    | ЕСТЬNULL(ЗакупочныеЦены.Цена, 0) КАК ЗакупочнаяЦена,
    | ЕСТЬNULL(РозничныеЦены.Цена, 0) КАК РозничнаяЦена,
    | ЕСТЬNULL(ОстаткиФирмы1.КоличествоОстаток, 0) КАК ОстатокФирмы1,
    | ЕСТЬNULL(ОстаткиФирмы2.КоличествоОстаток, 0) КАК ОстатокФирмы2
    |ИЗ
    | Номенклатура КАК ЭлементыНоменклатуры
    | ЛЕВОЕ СОЕДИНЕНИЕ ЗакупочныеЦены КАК ЗакупочныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = ЗакупочныеЦены.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
    | ПО ЭлементыНоменклатуры.Ссылка = РозничныеЦены.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиФирмы1 КАК ОстаткиФирмы1
    | ПО ЭлементыНоменклатуры.Ссылка = ОстаткиФирмы1.Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиФирмы2 КАК ОстаткиФирмы2
    | ПО ЭлементыНоменклатуры.Ссылка = ОстаткиФирмы2.Номенклатура";

    Запрос.УстановитьПараметр("КатегорияЦен1", Справочники.КатегорииЦен.НайтиПоНаименованию("Закупочная"));
    Запрос.УстановитьПараметр("КатегорияЦен2", Справочники.КатегорииЦен.НайтиПоНаименованию(КатегорияЦены));
    Запрос.УстановитьПараметр("Фирма1", Фирма1);
    Запрос.УстановитьПараметр("Фирма2", Фирма2);
    Запрос.УстановитьПараметр("Склад", Склад);
```
---
Рабочий код полностью удовлетворяющий мне Мимими.

Вот только вместо твоего изначального желаниянужно обойти всю номенклатуру в далионе Оно выведет тебе только номенклатуру на остатках Фирмы2.

Заводи новую тему.
---
блин точно
Спасибо за замечание
Буду исправлять.
Правельно понимаю что нужно открепить от левого соединения
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Понятно. Я ничего не публиковал и не планирую - поэтому и не в курсе.
Спасибо.