Как получить скидку по номенклатуре и номенклатурной группе в документе из регистра сведений Скидки

1. user1790696 07.01.23 18:04 Сейчас в теме
Всем доброго времени суток! Прошу помочь в решении курсовой. Есть задача: получить запросом срез последних на указанную дату с отбором по номенклатуре и номенклатурной группе и вернуть скидку, установленную для номенклатурной группы, если нет скидки для конкретной номенклатуры. В регистреСведений.Скидки Измерение составного типа:СправочникСсылка.НоменклатурныеГруппы, СправочникСсылка.Номенклатура. Скидку смог получить только отбором и то без выбора условия:

Функция СкидкаНаДату(НоменклатураНоменклатурнаяГруппа, Дата) Экспорт
	
	Скидка = 0;
	
	Отбор = Новый Структура("НоменклатураНоменклатурнаяГруппа",НоменклатураНоменклатурнаяГруппа);
	
	//Получить актуальные значения ресурсов регистра
	
		
	Если ТипЗнч(НоменклатураНоменклатурнаяГруппа) = Тип("СправочникСсылка.НоменклатурныеГруппы") Тогда
		
	КонецЕсли;
	ЗначенияРесурсов=РегистрыСведений.Скидки.ПолучитьПоследнее(Дата,Отбор);

	Возврат ЗначенияРесурсов.Скидка;
	
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vitaly1C8 07.01.23 19:37 Сейчас в теме
(1) выложите скриншот: РегистрыСведений.Скидки
чтобы была видна структура регистра
3. user1790696 08.01.23 06:02 Сейчас в теме
Скрин не прикрепляется, во вложении структура
Прикрепленные файлы:
8. user1958101 16.01.24 02:09 Сейчас в теме
Доброго времени суток!
(1)
помочь в решении курсовой. Есть задача: получить запросом срез последних на указанную дату с отбором по номенклатуре и номенклатурной группе и вернуть скидку, установленную для номенклатурной группы, если нет скидки для конкретной номенклатуры. В регистреСведений.Скидки Измерение составного типа:СправочникСсылка.НоменклатурныеГруппы, СправочникСсылка.Номенк
4. dehro 5 08.01.23 08:11 Сейчас в теме
Предположу, что регистр периодический.

Запрос = Новый Запрос("Выбрать Скидка из РегистрСведений.Скидки.СрезПоследних(&НаДату, НоменклатураНоменклатуранаяГруппа = &ОтборПоИзмерению)");
Запрос.УстановитьПараметр("НаДату", туточки указать нужную дату);
Запрос.УстановитьПараметр("ОтборПоИзмерению", туточки указать...);
РезЗапроса = Запрос.Выполнить();
Если РезЗапроса.Пустой() тогда
  Результат = 0;
Иначе
  Выборка = РезЗапроса.Выбрать();
  Выборка.Следующий();
  Результат = Выборка.Скидка;
КонецЕсли;
Показать
5. user1790696 08.01.23 17:33 Сейчас в теме
Да, скидки сейчас получает и по номенклатуре и по номенклатурной группе, но не подтягивает скидку по номенклатурной группе, когда в этой группе имеется номенклатура с незаведенной скидкой
6. user1790696 08.01.23 17:37 Сейчас в теме
Тут главное нужно, чтобы в функцию, которую мы разрабатываем может прийти НоменклатурнаяГруппа, может прийти номенклатура с установленной скидкой, а может прийти номенклатура, скидки на которую нет, но есть скидка на ее номенклатурную группу
вот третий случай у меня и не получается..
7. dhurricane 10.01.23 05:20 Сейчас в теме
Попробуйте следующий запрос (для простоты "НоменклатураНоменклатурнаяГруппа" я заменил на "Источник"):
ВЫБРАТЬ ПЕРВЫЕ 1
	ТаблицаСкидок.Скидка КАК Скидка
ИЗ
	РегистрСведений.Скидки.СрезПоследних(
			&Период,
			Источник В 
				(ВЫБРАТЬ
					&Источник
					
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					Номенклатура.НоменклатурнаяГруппа
				ИЗ
					Справочник.Номенклатура КАК Номенклатура
				ГДЕ
					Номенклатура.Ссылка = &Источник)) КАК ТаблицаСкидок

УПОРЯДОЧИТЬ ПО
	ВЫБОР
		КОГДА ТаблицаСкидок.Источник ССЫЛКА Справочник.Номенклатура
			ТОГДА 1
		ИНАЧЕ 2
	КОНЕЦ
Показать
9. user1958101 16.01.24 02:11 Сейчас в теме
(1) Доброго времени суток! Подскажите, пожалуйста, удалось ли выбрать скидку по номенклатурной группе? Уже второй день мучаюсь с этой задачей.
10. user589834_lanikitina2015 21.03.24 23:43 Сейчас в теме
я тоже с этой задачкой сижу уже второй день))
11. user589834_lanikitina2015 21.03.24 23:57 Сейчас в теме
Так не работает.
Все время берет данные по номенклатурной группе


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

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