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

08.05.13

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

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Отчет Получить предыдущие цены номенклатуры
.erf 5,80Kb
82
82 Скачать (1 SM) Купить за 1 850 руб.

Для примера создадим 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С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

11100 руб.

29.10.2014    215536    648    526    

455

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

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

18000 руб.

23.01.2017    60080    68    51    

71

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    95356    556    187    

314

Загрузка и выгрузка в 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 форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.07.2024, версия 9.8 - 9.11)

14400 руб.

20.11.2015    154274    373    377    

507

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    57684    155    261    

147

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

Внешняя обработка «Загрузка из Excel в документы (4 вида) для УТ11.4-11.5 может загружать из файла Excel номенклатуру без характеристик и создавать 4 вида документов («Ввод начальных остатков», «Приобретение товаров и услуг», «Регистрация цен поставщика», «Установка цен номенклатуры»). С версии 1.6.3 при создании номенклатуры могут так же загружаться доп. реквизиты и сведения, номера ГТД. С версии 1.7.0 для УТ11.5 возможна загрузка полей:Текстовое описание, Файл описания для сайта, Файл картинки, Производитель, Ценовая группа, Ставка НДС, Срок годности товара.

3000 руб.

05.03.2019    46042    186    99    

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

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

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