Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 04:02

УТ 11. Отчет торг29. Получение цены номенклатуры

Автор roofless, 20 июн 2015, 11:52

0 Пользователей и 1 гость просматривают эту тему.

roofless

Здравствуйте.

При формировании отчета торг29 столкнулись с недоработкой, которая влияет на правильность выводимых данных.
А именно:
ЦитироватьКак формируются данные в отчете "Торг-29"?

В отчете будут показаны остатки товаров на дату начала и окончания периода отчета и документы, по которым оформлялось движение товаров по указанному складу и указанной организации. Суммовые показатели в отчете будут рассчитаны в соответствии с тем типом цен, который указан для выбранного в отчете склада. Информация о ценах заполняется теми значениями розничных цен, которые действуют на дату документа, указанного в отчете.
То есть, документ (например поступление ТиУ или перемещение товаров) выводится в ценах, которые действовали ДО даты документа.
Получается, что когда после поступления вводим новые цены, то отчет всё равно берет старые.

Прошу помощи по доработке запроса. Запрос большой, его обрезал. Размещен в конце сообщения

Насколько я понял, за получение цены на период документа отвечает этот кусок
(ВЫБРАТЬ
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
МАКСИМУМ(ЦеныДоИзменения.Период) КАК ДатаПрошлогоИзменения,
ЦеныНоменклатуры.Регистратор КАК Регистратор,
ЦеныНоменклатуры.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
ЦеныНоменклатуры.Характеристика КАК Характеристика
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныДоИзменения
ПО
ЦеныНоменклатуры.Период > ЦеныДоИзменения.Период  И

ЦеныНоменклатуры.Номенклатура = ЦеныДоИзменения.Номенклатура
И ЦеныНоменклатуры.Характеристика = ЦеныДоИзменения.Характеристика
И (&ВидЦены = ЦеныДоИзменения.ВидЦены)
ГДЕ
ЦеныНоменклатуры.ВидЦены = &ВидЦены
И ЦеныНоменклатуры.Период <= &КонецПериода

Могу ли я здесь получить срез последних на конец дня?
Пробовал в запросе через ДОБАВИТЬКДАТЕ добавлять секунды к периоду документа, не помогает. Наверное что-то не так делаю.

Половина текста запроса тут. Получился листинг, готовый для вставки в консоль запросов
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыОрганизаций.ПериодСекунда КАК Период,
ТоварыОрганизаций.Регистратор КАК Регистратор,
ТоварыОрганизаций.Номенклатура КАК Номенклатура,
ТоварыОрганизаций.Характеристика КАК Характеристика,
ТоварыОрганизаций.Склад КАК Склад,
ТоварыОрганизаций.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыОрганизаций.КоличествоПриход КАК КоличествоПриход,
ТоварыОрганизаций.КоличествоРасход КАК КоличествоРасход,
ТоварыОрганизаций.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ПОМЕСТИТЬ ОстаткиИОбороты
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&П, &П2, Авто, , (Склад = &П3) И Организация = &П4) КАК ТоварыОрганизаций
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТаблицаЦен.Период КАК Период,
ТаблицаЦен.Регистратор КАК Регистратор,
ТаблицаЦен.Номенклатура КАК Номенклатура,
ТаблицаЦен.Характеристика КАК Характеристика,
ВЫБОР
КОГДА ЦеныНоменклатурыА.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыА.Упаковка.Коэффициент, 0) = 0
ТОГДА ЦеныНоменклатурыА.Цена
ИНАЧЕ ЦеныНоменклатурыА.Цена / ЦеныНоменклатурыА.Упаковка.Коэффициент
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА ЦеныНоменклатурыБ.Цена ЕСТЬ NULL
ТОГДА 0
КОГДА ЦеныНоменклатурыБ.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыБ.Упаковка.Коэффициент, 0) = 0
ТОГДА ЦеныНоменклатурыБ.Цена
ИНАЧЕ ЦеныНоменклатурыБ.Цена / ЦеныНоменклатурыБ.Упаковка.Коэффициент
КОНЕЦ КАК СтараяЦена,
ВЫБОР
КОГДА ЦеныНоменклатурыА.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыА.Упаковка.Коэффициент, 0) = 0
ТОГДА ЦеныНоменклатурыА.Цена
ИНАЧЕ ЦеныНоменклатурыА.Цена / ЦеныНоменклатурыА.Упаковка.Коэффициент
КОНЕЦ - ВЫБОР
КОГДА ЦеныНоменклатурыБ.Цена ЕСТЬ NULL
ТОГДА 0
КОГДА ЦеныНоменклатурыБ.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыБ.Упаковка.Коэффициент, 0) = 0
ТОГДА ЦеныНоменклатурыБ.Цена
ИНАЧЕ ЦеныНоменклатурыБ.Цена / ЦеныНоменклатурыБ.Упаковка.Коэффициент
КОНЕЦ КАК Дельта
ПОМЕСТИТЬ ИзмененияЦен
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
МАКСИМУМ(ЦеныДоИзменения.Период) КАК ДатаПрошлогоИзменения,
ЦеныНоменклатуры.Регистратор КАК Регистратор,
ЦеныНоменклатуры.ВидЦены КАК ВидЦены,
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
ЦеныНоменклатуры.Характеристика КАК Характеристика
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныДоИзменения
ПО
ЦеныНоменклатуры.Период > ЦеныДоИзменения.Период  И

ЦеныНоменклатуры.Номенклатура = ЦеныДоИзменения.Номенклатура
И ЦеныНоменклатуры.Характеристика = ЦеныДоИзменения.Характеристика
И (&ВидЦены = ЦеныДоИзменения.ВидЦены)
ГДЕ
ЦеныНоменклатуры.ВидЦены = &ВидЦены
И ЦеныНоменклатуры.Период <= &КонецПериода

СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Регистратор,
ЦеныНоменклатуры.ВидЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Характеристика) КАК ТаблицаЦен
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыА
ПО ТаблицаЦен.Период = ЦеныНоменклатурыА.Период
И ТаблицаЦен.Номенклатура = ЦеныНоменклатурыА.Номенклатура
И ТаблицаЦен.Характеристика = ЦеныНоменклатурыА.Характеристика
И ТаблицаЦен.ВидЦены = ЦеныНоменклатурыА.ВидЦены
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыБ
ПО ТаблицаЦен.ДатаПрошлогоИзменения = ЦеныНоменклатурыБ.Период
И ТаблицаЦен.Номенклатура = ЦеныНоменклатурыБ.Номенклатура
И ТаблицаЦен.Характеристика = ЦеныНоменклатурыБ.Характеристика
И ТаблицаЦен.ВидЦены = ЦеныНоменклатурыБ.ВидЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения КАК ПериодСекунда,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, МИНУТА) КАК ПериодМинута,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, ЧАС) КАК ПериодЧас,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, ДЕНЬ) КАК ПериодДень,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, НЕДЕЛЯ) КАК ПериодНеделя,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, МЕСЯЦ) КАК ПериодМесяц,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, КВАРТАЛ) КАК ПериодКвартал,
НАЧАЛОПЕРИОДА(ТаблицаТоварыОрганизацийМаксимальныйПериод.ПериодДвижения, ГОД) КАК ПериодГод,
ТаблицаТоварыОрганизацийМаксимальныйПериод.Регистратор КАК Регистратор,
ТаблицаТоварыОрганизацийМаксимальныйПериод.Склад КАК Склад,
ТаблицаТоварыОрганизацийМаксимальныйПериод.Номенклатура КАК Номенклатура,
ТаблицаТоварыОрганизацийМаксимальныйПериод.Характеристика КАК Характеристика,
ЦеныНоменклатуры.Цена как Цена,
0 СтараяЦена1,
ЕСТЬNULL(ЦеныНоменклатуры.Цена * ТаблицаТоварыОрганизацийМаксимальныйПериод.КоличествоНачальныйОстаток, 0) КАК СуммаНачальныйОстаток,
ЕСТЬNULL(ЦеныНоменклатуры.Цена * ТаблицаТоварыОрганизацийМаксимальныйПериод.КоличествоПриход, 0) КАК СуммаПриход,
ЕСТЬNULL(ЦеныНоменклатуры.Цена * ТаблицаТоварыОрганизацийМаксимальныйПериод.КоличествоРасход, 0) КАК СуммаРасход,
ЕСТЬNULL(ЦеныНоменклатуры.Цена * ТаблицаТоварыОрганизацийМаксимальныйПериод.КоличествоКонечныйОстаток, 0) КАК СуммаКонечныйОстаток
ИЗ
(ВЫБРАТЬ
ТоварыОрганизаций.Период КАК ПериодДвижения,
ТоварыОрганизаций.Регистратор КАК Регистратор,
ТоварыОрганизаций.Номенклатура КАК Номенклатура,
ТоварыОрганизаций.Характеристика КАК Характеристика,
ТоварыОрганизаций.Склад КАК Склад,
ТоварыОрганизаций.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыОрганизаций.КоличествоПриход КАК КоличествоПриход,
ТоварыОрганизаций.КоличествоРасход КАК КоличествоРасход,
ТоварыОрганизаций.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодМаксимум
ИЗ
ОстаткиИОбороты КАК ТоварыОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ ИзмененияЦен КАК ЦеныНоменклатуры
ПО ТоварыОрганизаций.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ТоварыОрганизаций.Характеристика = ЦеныНоменклатуры.Характеристика
И ТоварыОрганизаций.Период >= ЦеныНоменклатуры.Период

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

Похожие темы (5)

Рейтинг@Mail.ru

Поиск