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

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
	|	КОНЕЦ";
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)