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

08.05.13

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

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

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

Скачать файлы

Наименование Файл Версия Размер
Отчет Получить предыдущие цены номенклатуры
.erf 5,80Kb
81
.erf 5,80Kb 81 Скачать

Для примера создадим 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 УФ, в обычном режиме нужно будет выбрать вид цен через кнопку настройки.

 

См. также

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

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

10560 9504 руб.

29.10.2014    210187    620    524    

439

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

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

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

13200 руб.

20.11.2015    150730    367    375    

501

Простое ценообразование (установка цен номенклатуры) для 1С 8.3 (УТ 11 / ERP 2 / КА 2 / Розница 2) + (УТ 10.3 / УПП / КА 1 / Розница 1)

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

Есть проблемы с расчетом и установкой цен на товары? Универсальная подсистема для ценообразования в 1С поможет навести порядок с ценами! Механизм позволяет задавать произвольные правила расчета колонок цен для разных групп товаров и легко их изменять. Может автоматически (по расписанию) обновлять цены в 1С и выполнять проверку наличия и корректности цен на все товары.

30000 руб.

13.11.2017    77905    40    11    

46

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

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

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

2000 руб.

22.04.2019    91948    511    186    

293

Универсальная загрузка остатков и цен поставщиков в 1С (УТ 11, КА 2, ERP 2.0) из файлов Excel, CSV, XML (YML и CML)

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

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

12000 руб.

23.01.2017    58862    59    48    

68

Пересчет, расчет цены на процент от другой цены в документе Установка цен. УТ 11.5, Розница 2.3

Ценообразование, анализ цен Платформа 1С v8.3 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Расширение добавляет возможность рассчитать (изменить) цену как процент от другого вида цены в документе Установка цен номенклатуры. Для конфигураций УТ 11.5 и Розница 2.3

7200 руб.

10.08.2022    8502    5    2    

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

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

Изменения в строке 7 и 10.
prog1c_vl; it_sar; kladovoy; +3 Ответить
5. Virikus 61 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 151 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 13 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 61 28.07.22 19:38 Сейчас в теме
(19) Платформа тут не причем, значит ВидЦены нет более в структуре регистра и нужно адаптировать под текущее решение.
Оставьте свое сообщение