Запрос 1С получения данных (цен, валют и т.д.) периодического РС на дату документа

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

Запрос на самом деле довольно прост:

Первый запрос пакета выбирает данные и максимальный период по регистру цен, то есть период (меньший или равный дате документа) последней записи в регистре цены номенклатуры по выбранному типу цен. Второй запрос собирает данные и цены вместе по выбранному периоду цен.

Данный алгоритм посчастливилось протестировать и на файловой и на sql версии, в принципе быстродействие довольно неплохое. Отрабатывает в пределах 0-3 сек. Не забываем, что все зависит от объема данных в базе и железа. После замера времени выполнения можно смело использовать данный запрос.

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

 

Добавить комментарий

Ваш e-mail не будет опубликован.