Как правильно создать запрос для поиска последней актуальной записи в регистрах в 8.3?

В регистрах сведений хранятся записи типа:
Измерение Шина (Элемент справочника)
Измерение Серийный номер (Строка)
Ресурс: ТипДвижения (Перечисление)
Ресурс ПробегПриУстановке (Число)
Ресурс ОбщийПробег (Число) и т.д.
Задача Найти в регистре последнюю запись для пары Наименование + Серийный номер.
Поиск в срезе последних не дает результат, если запись с парой не последняя.
Как правильно сделать запрос и возможно ли решение с такими исходными условиями?
Текст запроса:
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДвиженияШинСрезПоследних.ТипДвижения,
		|	ДвиженияШинСрезПоследних.Автомобиль,
		|	ДвиженияШинСрезПоследних.ОбщийПробегШины,
		|	ДвиженияШинСрезПоследних.Ось,
		|	ДвиженияШинСрезПоследних.ПробегАвтоПриУстановке,
		|	ДвиженияШинСрезПоследних.ТекущийПробегШины
		|ИЗ
		|	РегистрСведений.ДвиженияШин.СрезПоследних КАК ДвиженияШинСрезПоследних
		|ГДЕ
		|	ДвиженияШинСрезПоследних.Шина = &Шина
		|	И ДвиженияШинСрезПоследних.СерийныйНомер = &СерийныйНомер";
	
	Запрос.УстановитьПараметр("СерийныйНомер", СерийныйНомер);
	Запрос.УстановитьПараметр("Шина", Шина);
  • Вопрос задан
  • 1429 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Не вопрос, а ужасный сумбур.

1) >>Найти в регистре последнюю запись для пары Наименование и Измерение.
Наименование - это и есть измерение. Нужно только для конкретного Наименования искать значение? Или все же для полной пары Наименование+Серия?

2) >>Поиск в срезе последних не дает результат, если запись с парой не последняя.
Написанное противоречит самой идее среза последних. Или Вам нужны не самые последние данные - тут проверьте, что бы вы в параметры виртуальной таблицы передавали правильную дату. Или вам нужны данные по другим наборам измерений - тут проверьте отбор в параметрах виртуальной таблицы по измерениям.

3) Если вы железно уверены, что в параметры виртуальной таблицы среза последних вы передали правильное время и правильный отбор по измерениям, но при визуальном просмотре регистра сведений явно видите, что получаете неправильное значение, то значит у вас проблема с индексом - просто переиндексируйте регистр.

4) Все выше перечисленное справедливо для табличной и для объектной модели доступа к данным. Уточняю, так как вы забыли рассказать, как именно пытаетесь получить срез последних.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
nki
@nki
bezkart.ru готовая система лояльности
Поиск в срезе последних не дает результат, если запись с парой не последняя.

У регистра установлена периодичность?
Поиск в срезе последних не дает результат, если запись с парой не последняя.

Данные бы посмотреть и запрос.
Ответ написан
fosihas
@fosihas
Автоматизации учета на 1С.
А вот взглянуть на скриншотки как выглядит Регистр в конфигураторе.

Измерение Серийный номер (Строка)

Может быть в этом проблема. На сколько ты уверен в точности передаваемого параметра для поиска. Регистр букв, пробелы ...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы