И опять запрос

1. ShuSU 61 16.07.23 07:17 Сейчас в теме
Привет всем. Опять затык в запросе. нужно обойти всю номенклатуру в далионе что впринцепи легко:
			Запрос.Текст = "ВЫБРАТЬ
			               |	Номенклатура.Ссылка КАК Ссылка,
			               |	Номенклатура.Родитель КАК Родитель,
			               |	Номенклатура.Код КАК Код,
			               |	Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
			               |ИЗ
			               |	Справочник.Номенклатура КАК Номенклатура";
	
			Результат = Запрос.Выполнить();
			Выборка = Результат.Выбрать();
Показать


на каждую позицию нужно заполнить остатками что отдельным запросом тоже легко сделать
			Запрос = Новый Запрос;
			Запрос.Текст = "ВЫБРАТЬ
			               |	ОстаткиНоменклатурыОстатки.Фирма КАК Фирма,
			               |	ОстаткиНоменклатурыОстатки.Склад КАК Склад,
			               |	ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
			               |	ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура
			               |ИЗ
			               |	РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
			               |ГДЕ
			               |	ОстаткиНоменклатурыОстатки.Номенклатура = &Номенклатура
			               |	И ОстаткиНоменклатурыОстатки.Склад = &Склад
			               |	И ОстаткиНоменклатурыОстатки.Фирма = &Фирма";
	
			Запрос.УстановитьПараметр("Номенклатура", Номенкратура);
			Запрос.УстановитьПараметр("Фирма", Фирма);
			 Запрос.УстановитьПараметр("Склад", Склад);
			Выборка=Запрос.Выполнить().Выбрать();
			Если Выборка.Следующий() Тогда
				Воз=Выборка.КоличествоОстаток;
			Конецесли;	
	        Возврат Воз;
Показать


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


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

вопрос как ускорить? если все выполнить в одном запросе будет ли быстрее? еще отдельно почему то запрос цены не берет последнюю текущую цену, а берет самую первую установленную цену.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
34. ShuSU 61 17.07.23 14:14 Сейчас в теме
(33)
Всем кто подсказывал и скидываем примеры, ОГРОМНОЕ СПАСИБО.
Особая благодарность dvk09


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

Запрос.Текст = "ВЫБРАТЬ
               |	Номенклатура.Ссылка КАК Ссылка,
               |	Номенклатура.Родитель КАК Родитель,
               |	Номенклатура.Код КАК Код,
               |	Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
               |ПОМЕСТИТЬ Номенклатура
               |ИЗ
               |	Справочник.Номенклатура КАК Номенклатура
               |ГДЕ
               |	Номенклатура.ЭтоГруппа = ЛОЖЬ
               |;
               |
               |////////////////////////////////////////////////////////////­////////////////////
               |ВЫБРАТЬ
               |	ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
               |	ЦеныСрезПоследних.Цена КАК Цена
               |ПОМЕСТИТЬ ЗакупочныеЦены
               |ИЗ
               |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен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. nomad_irk 76 16.07.23 09:59 Сейчас в теме +0.1 $m
(1)
В чем сложности сделать левые соединения с таблицей остатков и цен в одном запросе?
ТаблицаЦен и ТаблицаОстатков сформировать как временные таблицы отдельными запросами с нужными отборами. ТаблицаЦен сформировать из СрезПоследних.

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

Будет быстрее хотя бы из-за того, что не будет запросов в цикле.
4. ShuSU 61 16.07.23 12:44 Сейчас в теме
(2)
В чем и дело. Сначало освоишься в запросах, вроде все получается. Потом на год забросишь, а как понадобится ни чего не помнишь. Простыми запросами начинаешь все решать.
11. pitcher 33 17.07.23 05:38 Сейчас в теме
(1) "запрос цены не берет последнюю текущую цену" Срез последних сделать
3. starjevschik 16.07.23 12:00 Сейчас в теме
А если перенести условия в параметры виртуальных таблиц... но это уже слишком, наверное, для 30 звездочек о)
user1357043; +1 Ответить
5. ShuSU 61 16.07.23 12:59 Сейчас в теме
(3)
Сарказм. Уважаю. Но здесь вопрос близок, "а в чем разница фроденда и бекэда". Если верстальщик занимается только версткой, от поплывет в решения какой ни будь задачи в беке.
7. Said-We 16.07.23 23:50 Сейчас в теме
(3)
наверное, для 30 звездочек
Что такое 30 звездочек?
12. user1880116 17.07.23 09:23 Сейчас в теме
(7)
Что такое 30 звездочек?
Это как с коньяком. 30 клопов раздавили, значит.
13. ShuSU 61 17.07.23 09:51 Сейчас в теме
(12)
да Господа. Забавно наблюдать что точка преткновения оказалось количество звезд.
Вместо того что бы показать свое превосходство на примере рабочего запроса, закрывающий мой вопрос. что бы понял где я опростоволосился. Вы долбите прутиком по воде.
Звезды не означают крутизну в коденге. А означает что я узнав нюанса в каком то вопросе и не сидел над ними как над златом, мое, только я знаю, ХЫХЫХЫ. А поделился с общественностью, что бы кто то если натыкнулся на данную проблему, мог ее решить.
14. user1880116 17.07.23 09:58 Сейчас в теме
(13)
А с чего ты взял, что наша цель - показать своё превосходство или закрыть твой вопрос?
15. ShuSU 61 17.07.23 10:03 Сейчас в теме
(14)
А зачем тогда сидеть в этом разделе?
Не для того что бы если что то знаешь, поделиться решением. Или найти ответ на свою задачу путем поиска аналогичных запросов.
Вроде прикрыли лавочку фарма стартов через сообщения.
17. user1880116 17.07.23 10:05 Сейчас в теме
(15)
А зачем тогда
https://infostart.ru/about/rules/
Пункт 7.8:
Infostart.ru не гарантирует, что: сервисы будут соответствовать Вашим требованиям;
19. ShuSU 61 17.07.23 10:14 Сейчас в теме
(17)
Прости. Больше вопросов нет. Имя в профиле все сказало )))
20. starjevschik 17.07.23 10:37 Сейчас в теме
(13) не там ищешь. Тут надо или изучать, что такое запросы, как они работают, как устроена база данных и т.д., это не объяснить в рамках сообщений на форуме. Или же сделать готовое решение, что возможно, но это работа и она стоит денег, а не 0.15 манек. Я думаю, что если ты предложишь тысяч 10, то вопрос будет решен в течение нескольких часов. И это будет справедливо и правильно. А искать, кто сделает работу нахаляву - несправедливо и неправильно.
25. ShuSU 61 17.07.23 10:50 Сейчас в теме
(20)
ищешь. Тут надо или изучать, что такое запросы, как они работают, как устроена база данных и т.д., это не объяснить в рамках сообщений на форуме. Или же сделать готовое решение, что возможно, но это работа и она стоит денег, а не 0.15 манек. Я думаю, что если ты предложишь тысяч 10, то вопрос будет решен в течение нескольких часов. И это будет справедливо и правильно. А искать, кто сделает работу нахаляву - несправедливо и неправильно.

Вы не правы. Не кто не спрашивает, дайте мне готовы код. Да и поправить запрос за 10к не многовато ли.
Вы дали наводку что через временные таблицы скомпоновать. Спасибо за это. Копаю, перебираю.
21. nomad_irk 76 17.07.23 10:40 Сейчас в теме
(13)
....на примере рабочего запроса, закрывающий мой вопрос

Пример приведен в (2), вам необходимо его адаптировать под свои реалии.
31. ShuSU 61 17.07.23 12:56 Сейчас в теме
(21)
Спасибо, добрый человек. По твоему примеру я и объединил в один запрос обход двух цен
Код
Запрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатуры1.Цена КАК Цена1,
               |    ЦеныНоменклатуры1.КатегорияЦен КАК КатегорияЦен1,
               |    ЦеныНоменклатуры2.Цена КАК Цена2,
               |    ЦеныНоменклатуры2.КатегорияЦен КАК КатегорияЦен2,
               |    ЦеныНоменклатуры1.Номенклатура КАК Номенклатура
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
               |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры2
               |        ПО ЦеныНоменклатуры1.Номенклатура = ЦеныНоменклатуры2.Номенклатура
               |            И (ЦеныНоменклатуры1.КатегорияЦен = &КатегорияЦен1)
               |            И (ЦеныНоменклатуры2.КатегорияЦен = &КатегорияЦен2)
               |ГДЕ
               |    ЦеныНоменклатуры1.Номенклатура = &Номенклатура";
Показать полностью

но со срезом не догнал и как в таблицу поместить для общего обхода.
33. nomad_irk 76 17.07.23 13:48 Сейчас в теме
(31)Результат этого запроса по своей сути будет чушью, т.к. если по КатергорияЦен1 не будет данных, то и по КатегорияЦен2 так же не будет данных даже в случае их наличия в регистре.
Данный запрос так же не получает последнее значение цены и я боюсь себе представить какое количество записей он вернет

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

Да и когда СКД в принцепи в текучке не используешь, как то тонкости глубже знать не обязательно. Если что то нужно сделать, мне проще на примере похожего разобрать. Почему и все старты сжигаются. рад бы и 10 стартов отдать тому кто поможет да нема уже.
30. пользователь 17.07.23 11:44
Сообщение было скрыто модератором.
...
32. ShuSU 61 17.07.23 13:02 Сейчас в теме
(30)
Просто раздал по мере конструктивных сообщений, которые навели меня куда копать.

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

Нужна вся, для разовой обработки данных.
45. пользователь 17.07.23 23:42
Сообщение было скрыто модератором.
...
46. ShuSU 61 18.07.23 00:06 Сейчас в теме
(45)
заполнить отдельную табличную часть всей номенклатуры, для дальнейший отдельных манипуляций по условиям. Сразу по условиям заполнять не вариант, так как корректируется условия по ходу изучения всего списка.
6. user1880116 16.07.23 16:16 Сейчас в теме
(4)
Потом на год забросишь
А ты не забрасывай.
8. Oldsad 17.07.23 04:52 Сейчас в теме +0.05 $m
все условия на измерения регистров нужно прописывать в параметрах виртуальных таблиц.
Запрос.Текст = "ВЫБРАТЬ
|    ОстаткиНоменклатурыОстатки.Фирма КАК Фирма,
|    ОстаткиНоменклатурыОстатки.Склад КАК Склад,
|    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
|    ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура
|ИЗ
|    РегистрНакопления.ОстаткиНоменклатуры.Остатки(
|			,
|    		Номенклатура = &Номенклатура
|   		 И Склад = &Склад
|   		 И Фирма = &Фирма) КАК ОстаткиНоменклатурыОстатки";
Показать


что бы получить последнюю цену, нужно использовать СрезПоследних
Запрос.Текст = "ВЫБРАТЬ
|    ЦеныНоменклатуры.Цена КАК Цена,
|    ЦеныНоменклатуры.КатегорияЦен КАК КатегорияЦен,
|    ЦеныНоменклатуры.Номенклатура КАК Номенклатура
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних( 
|			,
|    		Номенклатура = &Номенклатура
|    		И КатегорияЦен = &КатегорияЦен) КАК ЦеныНоменклатуры";
Показать
9. ShuSU 61 17.07.23 05:15 Сейчас в теме
(8) прикол в том что срез не отрабатывает и пускает в замкнутый цикл пока не сбросишь, даже в отладке первый результат обхода не дает

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


если период использовать тоже в цикл уходит. И фиг знает толь Далион закоцана база, толи хз
16. Said-We 17.07.23 10:04 Сейчас в теме
Я реально до сих пор не знаю, что означает 30 звезд.
18. ShuSU 61 17.07.23 10:10 Сейчас в теме
(16)
сколько раз поблагодарили люди
Прикрепленные файлы:
35. Said-We 17.07.23 14:33 Сейчас в теме
(18)
сколько раз поблагодарили люди
А как я могу кого-то поблагодарить?
Это на какую кнопку и где нажать? Вижу только +-, ответить, пожаловаться, скопировать ссылку, перейти, изменить.
36. Sashares 35 17.07.23 14:37 Сейчас в теме
(35) Это сколько раз публикации автора поставили плюсы и добавили в избранное.
42. пользователь 17.07.23 23:38
Сообщение было скрыто модератором.
...
47. nomad_irk 76 18.07.23 06:25 Сейчас в теме
(42)точно нет
Прикрепленные файлы:
48. пользователь 18.07.23 09:44
Сообщение было скрыто модератором.
...
49. nomad_irk 76 18.07.23 09:47 Сейчас в теме
(48)звезда может появится и без скачивания, она говорит о том, что пользователь добавил работу в свое "избранное"
50. user1880116 18.07.23 10:49 Сейчас в теме
(49) Можно сделать публикацию о том что в феврале не может быть 30 дней, завести пару десятков твинков-однодневок, в каждом добавить работу в избранное... Готово, вы - звезда!
51. nomad_irk 76 18.07.23 10:51 Сейчас в теме
(50)именно так это работает, к сожалению
22. dvk09 2 17.07.23 10:47 Сейчас в теме +0.15 $m
Вот вариант только с ценами:
Запрос.Текст = "ВЫБРАТЬ
|	Номенклатура.Ссылка КАК Ссылка,
|	Номенклатура.Родитель КАК Родитель,
|	Номенклатура.Код КАК Код,
|	Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
|ПОМЕСТИТЬ Номенклатура
|ИЗ
|	Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|	Номенклатура.ЭтоГруппа = ЛОЖЬ
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
|	ЦеныСрезПоследних.Цена КАК Цена
|ПОМЕСТИТЬ ЗакупочныеЦены
|ИЗ
|	РегистрСведений.Цены.СрезПоследних(, ТипЦен = &ТипЦенЗакупочные) КАК ЦеныСрезПоследних
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
|	ЦеныСрезПоследних.Цена КАК Цена
|ПОМЕСТИТЬ РозничныеЦены
|ИЗ
|	РегистрСведений.Цены.СрезПоследних(, ТипЦен = &ТипЦенРозничные) КАК ЦеныСрезПоследних
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ЭлементыНоменклатуры.Ссылка КАК Ссылка,
|	ЭлементыНоменклатуры.Родитель КАК Родитель,
|	ЭлементыНоменклатуры.Код КАК Код,
|	ЭлементыНоменклатуры.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
|	ЕСТЬNULL(ЗакупочныеЦены.Цена, 0) КАК ЗакупочнаяЦена,
|	ЕСТЬNULL(РозничныеЦены.Цена, 0) КАК РозничнаяЦена
|ИЗ
|	Номенклатура КАК ЭлементыНоменклатуры
|		ЛЕВОЕ СОЕДИНЕНИЕ ЗакупочныеЦены КАК ЗакупочныеЦены
|		ПО ЭлементыНоменклатуры.Ссылка = ЗакупочныеЦены.Номенклатура
|		ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
|		ПО ЭлементыНоменклатуры.Ссылка = РозничныеЦены.Номенклатура
|";
Запрос.Параметры.Вставить("ТипЦенЗакупочные", ТипЦенЗакупочные); // <Типы цен>[], Справочники.ТипыЦен.ПустаяСсылка();
Запрос.Параметры.Вставить("ТипЦенРозничные", ТипЦенРозничные); // <Типы цен>[], Справочники.ТипыЦен.ПустаяСсылка();
Показать

Но не забывайте, что в регистре могут быть и другие измерения (Подразделение, Организация, Проект...) Я не знаком с Далионом тесно.
Если подумать, то сможете по аналогии добавить временную таблицу остатков, ну или несколько таблиц, если по разным складам надо.
Ну и группировки можно применять...
24. dvk09 2 17.07.23 10:49 Сейчас в теме
И - Да, получить данные одним запросом обычно будет быстрее, ну и 1С в том числе это рекомендует
27. ShuSU 61 17.07.23 11:09 Сейчас в теме
(24)
спасибо! буду проверять. Вижу что в срезе у себя параметры не указывал
СрезПоследних(, ТипЦен = &ТипЦенЗакупочные)

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

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


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

Запрос.Текст = "ВЫБРАТЬ
               |	Номенклатура.Ссылка КАК Ссылка,
               |	Номенклатура.Родитель КАК Родитель,
               |	Номенклатура.Код КАК Код,
               |	Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения
               |ПОМЕСТИТЬ Номенклатура
               |ИЗ
               |	Справочник.Номенклатура КАК Номенклатура
               |ГДЕ
               |	Номенклатура.ЭтоГруппа = ЛОЖЬ
               |;
               |
               |////////////////////////////////////////////////////////////­////////////////////
               |ВЫБРАТЬ
               |	ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
               |	ЦеныСрезПоследних.Цена КАК Цена
               |ПОМЕСТИТЬ ЗакупочныеЦены
               |ИЗ
               |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, КатегорияЦен = &КатегорияЦен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);
Запрос.УстановитьПараметр("Склад", Склад);
Показать
38. user1880116 17.07.23 15:10 Сейчас в теме
(34)
Рабочий код полностью удовлетворяющий мне
Мимими.

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

Заводи новую тему.
39. ShuSU 61 17.07.23 15:16 Сейчас в теме
(38)
блин точно
Спасибо за замечание
Буду исправлять.
Правельно понимаю что нужно открепить от левого соединения
43. пользователь 17.07.23 23:39
Сообщение было скрыто модератором.
...
44. пользователь 17.07.23 23:40
Сообщение было скрыто модератором.
...
37. Said-We 17.07.23 14:41 Сейчас в теме
Понятно. Я ничего не публиковал и не планирую - поэтому и не в курсе.
Спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот