Как получить предыдущую цену номенклатуры

08.05.13

Учетные задачи - Ценообразование, анализ цен

У новичков часто возникает вопрос как получить предыдущую цену или как получить предпоследнее значение из регистра сведений.

В данной публикации я на примере опишу как это можно сделать

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Отчет Получить предыдущие цены номенклатуры
.erf 5,80Kb
82 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Для примера создадим 3 документа установка цен номенклатуры.

1. На 1 мая.

 Рис. 1

2. На 2 мая. 

Рис. 2

3. На 3 мая.

 Рис. 3

 

Делаем выборку всех цен для наглядности.

 Рис. 4

 

Подготовка данных закончена, начинаем получение цен в нужном виде.

 

Получаем последние цены.

 

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

 

Рис. 5

 

Далее нам надо получить дату предыдущего изменения цены.

 

ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период <> ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена


 Рис. 6

  

Помещаем результат во временную таблицу втЦеныНоменклатуры.

Ну и соответственно получаем уже цены.

ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период <> ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)

 

Рис. 7

И еще раз таблица цен, чтобы удобнее было анализировать

Рис. 4

P.S.  Статья написана как пример и все запросы упрощены.
По умолчанию взял, что у нас нет характеристик, одна валюта и один тип упаковки.
Соответственно нет пересчета коэффициента и валюты.

 P.P.S Также приложил отчет для 8.2, протестировано на 8.2 УФ, в обычном режиме нужно будет выбрать вид цен через кнопку настройки.

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    232585    750    534    

498

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

3050 руб.

22.04.2019    119434    719    205    

377

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 14.05.2026, версия 9.3.1 - 10.7.2)

20740 руб.

20.11.2015    174982    428    396    

544

Прайсы Оптовая торговля Розничная торговля Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

122000 руб.

23.01.2017    64730    68    52    

72

Задачи пользователя Ценообразование, анализ цен 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

Расширение улучшает типовую обработку по подбору номенклатуры в документах: «Заказ клиента», «Реализация товаров и услуг», «Перемещение товаров», "Пересчет товаров", "Списание товаров", "Оприходование товаров", "Заказы поставщикам", "Приобретение товаров и услуг" Пользователь видит картинку с изображением товара, остатки на всех складах и цену в различных видах цен.

6100 руб.

03.10.2025    2127    9    3    

11

Логистика, склад и ТМЦ Ценообразование, анализ цен Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

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

2033 руб.

21.06.2022    12993    42    13    

25

Корректировка данных Ценообразование, анализ цен Мастера заполнения Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Теперь Вам не понадобится пересчитывать цену в другую валюту отдельно по каждой номенклатуре. Расширение сэкономит Ваше время, позволив сделать это при помощи групповой обработки в документе Установки цен.

5000 руб.

27.06.2023    3951    5    0    

5
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TrinitronOTV 16 08.05.13 10:53 Сейчас в теме
спасибо большое за данный материал, будет очень полезным для освоения и дальнейшей работы
3. Virikus 64 14.05.13 09:35 Сейчас в теме
(1),(2) спасибо за отзывы.
2. rimma_n 160 13.05.13 11:18 Сейчас в теме
Присоединяюсь к предыдущему оратору. спасибо!
4. 1cprogr_nsk 114 16.01.14 08:35 Сейчас в теме
Можно маленечко доработать виртуальную таблицу внЦеныНоменклатуры, чтобы запрос работал на указанную дату
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаАктуальнойЦены, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период > ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
Показать

Изменения в строке 7 и 10.
prog1c_vl; it_sar; kladovoy; +3 Ответить
5. Virikus 64 16.01.14 10:38 Сейчас в теме
(4) dr.death, да, конечно. Но я сознательно упрощал пример, чтобы новичкам было проще разобраться.
11. BigWig 16.02.18 16:07 Сейчас в теме
(4) к сожалению, отчет не будет работать ;-((
6. barat 12.03.14 10:28 Сейчас в теме
Спасибо, очень доступно, а печатной формы нет, с динамическим выводом колонок по типу цен???
7. CaptainMorgan 12.03.14 10:46 Сейчас в теме
P.S. Статья написана как пример и все запросы упрощены.

Для чего упрощать? В тексте статьи можно описание сделать упрощённо а в обработке надо делать правильно.
Дело в том, что основная ошибка начинающих программистов это непонимание значимости ХарактеристикаНоменклатуры СерияНоменклатуры
Вон уже отчеты с настраиваемыми колонками хотят.
И не понимают, что результаты этого отчета изначально ошибочны.
8. padfodnik 04.09.14 14:22 Сейчас в теме
Спасибо, познавательно!
9. triton_tver 160 28.11.14 10:34 Сейчас в теме
Спасибо огромное!!! Очень помогло, хороший прием!!!
10. пользователь 21.04.16 14:18
Сообщение было скрыто модератором.
...
12. it_sar 20 14.08.20 13:49 Сейчас в теме
Для УНФ (текущей на 2020.08.12) - подправил запрос. Версия №1


ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен В(&ТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период <> ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
Показать
13. it_sar 20 14.08.20 14:08 Сейчас в теме
Для УНФ Текущей (на 2020.08.14) Вариант №2 с параметром - дата выборки цены



ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаАктуальнойЦены, ВидЦен В(&ТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период > ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
Показать
14. it_sar 20 14.08.20 14:18 Сейчас в теме
Для УНФ Текущей (на 2020.08.14) Вариант №3 с параметром - дата выборки цены и МассивНоменклатуры, чтобы брать ТОЛЬКО НУЖНЫЕ Товары

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

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
Показать
15. it_sar 20 14.08.20 14:20 Сейчас в теме
Для УНФ Текущей (на 2020.08.14) Вариант №4 с параметром - дата выборки цены и МассивНоменклатуры, чтобы брать ТОЛЬКО НУЖНЫЕ Товары + Колонка Дата Предыдущей установки цены
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена,
	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаАктуальнойЦены, ВидЦен В(&ТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И ЦеныНоменклатурыСрезПоследних.Период > ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
ГДЕ (ЦеныНоменклатурыСрезПоследних.Номенклатура В (&МассивНоменклатуры)) 		

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена,
	втЦеныНоменклатуры.ПредыдущаяДата
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
Показать
16. it_sar 20 14.08.20 16:24 Сейчас в теме
Для УНФ Текущей (на 2020.08.14) Вариант №5 с параметром - дата выборки цены и МассивНоменклатуры, чтобы брать ТОЛЬКО НУЖНЫЕ Товары + Колонка Дата Предыдущей установки цены + Дата Текущей УСТАНОВКИ ЦЕНЫ

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

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
	
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЦеныНоменклатуры.Номенклатура,
	втЦеныНоменклатуры.Цена,
	ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена,
	втЦеныНоменклатуры.ПредыдущаяДата,
	втЦеныНоменклатуры.ТекущаяДата
ИЗ
	втЦеныНоменклатуры КАК втЦеныНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
			И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
			И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
Показать
17. it_sar 20 18.08.20 14:50 Сейчас в теме
Для УНФ Текущей (на 2020.08.14) Вариант №6 с параметром - дата выборки цены и МассивНоменклатуры, чтобы брать ТОЛЬКО НУЖНЫЕ Товары + Колонка Дата Предыдущей установки цены + Дата Текущей УСТАНОВКИ ЦЕНЫ + Дата Будущей установки цены и Будущая Цена (Может быть важно для вывод информации в различных местах, что скоро цена будет новая и поэтому нужно взять по текущей!!!

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата,
    МАКСИМУМ(ЦеныНоменклатурыБудущие.Период) КАК БудущаяДата,
    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Период) КАК ТекущаяДата
     
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаАктуальнойЦены, ВидЦен В(&ТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Период > ЦеныНоменклатуры.Период
            И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен)) )
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыБудущие
        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыБудущие.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Период < ЦеныНоменклатурыБудущие.Период
            И (ЦеныНоменклатурыБудущие.ВидЦен В(&ТипыЦен)) )
ГДЕ (ЦеныНоменклатурыСрезПоследних.Номенклатура В (&МассивНоменклатуры))         

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена
    
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    втЦеныНоменклатуры.Номенклатура,
    втЦеныНоменклатуры.Цена,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена,
    ЕСТЬNULL(ЦеныНоменклатурыБудущие.Цена, 0) КАК БудущаяЦена,
    втЦеныНоменклатуры.БудущаяДата,
    втЦеныНоменклатуры.ПредыдущаяДата,
    втЦеныНоменклатуры.ТекущаяДата
ИЗ
    втЦеныНоменклатуры КАК втЦеныНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
            И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыБудущие
        ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатурыБудущие.Номенклатура
            И втЦеныНоменклатуры.БудущаяДата = ЦеныНоменклатурыБудущие.Период
            И (ЦеныНоменклатурыБудущие.ВидЦен В(&ТипыЦен))
Показать
18. Logarifm_Andre 18 22.05.21 14:58 Сейчас в теме
Доброго дня.
А не производительнее ли будет для начала поместить РегистрСведений.ЦеныНоменклатуры во временную таблицу (ВТ) и после этого делать соединения с этой ВТ?
19. consplus_pavlov 20.07.22 16:35 Сейчас в теме
не работает в "Бухгалтерия предприятия, редакция 3.0 (3.0.108.36), платформа версии 8.3.20.1710": Ошибка в схеме компоновки данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(11, 24)}: Поле не найдено "ЦеныНоменклатуры.ВидЦены"
И (ЦеныНоменклатуры.<<?>>ВидЦены = &ВидЦены)
20. Virikus 64 28.07.22 19:38 Сейчас в теме
(19) Платформа тут не причем, значит ВидЦены нет более в структуре регистра и нужно адаптировать под текущее решение.
Для отправки сообщения требуется регистрация/авторизация