Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Регистр сведений Срез Последних


Автор: rarxxx 8.9.2010, 09:10
Понимаю тема заезжена много встретил таких же вопросов и решений но так и не понял как это сделать

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

Автор: Vasay 8.9.2010, 09:45
Цитата

если делаешь запрос а он дает тебе кучу значений по одной номенклатуре


Покажите запрос.

Автор: rarxxx 8.9.2010, 11:14
понял свою ошибку у меня в измерениях док регистратор и дата соответственно поэтому и отбырало по одной номенклатуре все показания... понимаю вопрос зачем так но зачем то надо было именно так

а не подскажешь как обработать запросом результат запроса и отобрать всю разную номенклатуру с условием максимальной даты

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

Автор: Zero 8.9.2010, 21:02
Цитата(rarxxx @  8.9.2010,  09:10 Найти цитируемый пост)
есть регистр сведений с изменяющимися ценами, подскажите как сделать чтобы одним запросом получить последние цены

Прежде чем изобретать велосипед, ты бы хоть в синтакс-помощник заглянул...

СрезПоследних (SliceLast)
Синтаксис:

СрезПоследних(<КонецПериода>, <Отбор>) 
Параметры:

<КонецПериода> (необязательный)

Тип: Дата; МоментВремени; Граница. Определяет момент времени, заканчивая которым необходимо выбрать записи.
Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра. 
<Отбор> (необязательный)

Тип: Структура. Структура, содержащая отбор по измерениям и реквизитам регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение. Если параметр не указан, то отбор не используется. 
Возвращаемое значение:

Тип: ТаблицаЗначений. Таблица значений, заполненная данными найденных записей регистра сведений. 
Описание:

Получает наиболее поздние записи регистра, соответствующие установленным в параметрах метода значениям ключевых полей. Записи подбираются для каждого сочетания из всех имеющихся значений измерений регистра.

Доступность: 

Сервер, толстый клиент, внешнее соединение. 
Примечание:

Применим только для периодических регистров сведений. 
Пример:
Код

МаркетингЦен = РегистрыСведений.МаркетингЦен;
ТекущиеЦеныКонкурентов = МаркетингЦен.СрезПоследних(ТекущаяДата());

 

Автор: rarxxx 9.9.2010, 10:40
а такой же отбор в запросе как сделать ?

Автор: Zero 10.9.2010, 21:12
Цитата(rarxxx @  9.9.2010,  10:40 Найти цитируемый пост)
а такой же отбор в запросе как сделать ?

Используй виртуальную таблицу регистра "<ИмяРегистра>.СрезПоследних" для выборки из неё нужных данных.
Например если у тебя есть периодический регистр сведений "Цены", то запрос будет выглядеть примерно так:
Код

ВЫБРАТЬ
    ЦеныСрезПоследних.Номенклатура,
    ЦеныСрезПоследних.Цена
ИЗ
    РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)