Вывод розничной цены в СКД для 1С:Розницы
Всем привет. Помогите разобраться с СКД. сделал отчет, нужно в вытянуть Розничную цену и подставить в поле в макете.
не получается сделать связь по ВидуЦены магазина.
не получается сделать связь по ВидуЦены магазина.
Прикрепленные файлы:
Ведомость_2_2.erf
По теме из базы знаний
- Отчет о прибыли из последних поступлений товаров для Розницы 2.
- Отчет по номенклатуре, характеристикам и свойствам с выводом УИД (UID)
- Фискальные операции при продаже маркированной продукции - Розница [Честный знак]
- Анализ остатков и цен для 1С:Розница 2.2 - 2.3
- Анализ цен продажи и цен номенклатуры. Розница 2.3
Найденные решения
(14)
1. Было бы неплохо увидеть как именно ругается. Возможно регистр сведений ЦеныНоменклатуры просто непериодический?
2. Не получил ответа на вопрос, как связаны магазин и видцены. В дальнейшем буду исходить из того, что &ВидЦены задается параметром и является одним и тем же для всех магазинов. Кроме того, это немного упростит запрос.
3. Было бы неплохо сначала разобраться с работой более простого запроса, использующего СрезПоследних, даже если его данные не вполне достоверны.
4. Попробуем тогда написать запрос, получающий розничные цены на дату документа поступления. Поскольку структура регистра сведений ЦеныНоменклатуры не вполне известна, предполагаю что дата установки цены находится в поле Период. Если поле называется иначе, необходимо заменить поле Период в тексте запроса на нужное.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(ПоступлениеТоваровТовары.Номенклатура) КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.Цена) КАК Цена,
МАКСИМУМ(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена * ПоступлениеТоваровТовары.Количество) КАК Сумма1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.НомерСтроки
запрос может быть немного сложен для новичка, попробую прокомментировать. Сначала создается временная таблица ТабДатыЦен, определяющая ближайшие даты установки цен номенклатуры в разрезе дат поступления и номенклатуры. Далее используя таблицу ТабДатыЦен получаем цены, соответствующие найденным датам и помещаем в таблицу ТабЦены. И последним запросом получаем уже итоговую таблицу для СКД.
1. Было бы неплохо увидеть как именно ругается. Возможно регистр сведений ЦеныНоменклатуры просто непериодический?
2. Не получил ответа на вопрос, как связаны магазин и видцены. В дальнейшем буду исходить из того, что &ВидЦены задается параметром и является одним и тем же для всех магазинов. Кроме того, это немного упростит запрос.
3. Было бы неплохо сначала разобраться с работой более простого запроса, использующего СрезПоследних, даже если его данные не вполне достоверны.
4. Попробуем тогда написать запрос, получающий розничные цены на дату документа поступления. Поскольку структура регистра сведений ЦеныНоменклатуры не вполне известна, предполагаю что дата установки цены находится в поле Период. Если поле называется иначе, необходимо заменить поле Период в тексте запроса на нужное.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(ПоступлениеТоваровТовары.Номенклатура) КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.Цена) КАК Цена,
МАКСИМУМ(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена * ПоступлениеТоваровТовары.Количество) КАК Сумма1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.НомерСтроки
запрос может быть немного сложен для новичка, попробую прокомментировать. Сначала создается временная таблица ТабДатыЦен, определяющая ближайшие даты установки цен номенклатуры в разрезе дат поступления и номенклатуры. Далее используя таблицу ТабДатыЦен получаем цены, соответствующие найденным датам и помещаем в таблицу ТабЦены. И последним запросом получаем уже итоговую таблицу для СКД.
Всем спасибо. Помогли разобраться с СКД. Особая благодарность user952544, за то что показал как формировать Запрос с обработкой полученных данных.
Итог полученного результата, который меня полностью удовлетворил, прилагаю, для ознакомления.
Итог полученного результата, который меня полностью удовлетворил, прилагаю, для ознакомления.
Прикрепленные файлы:
Ведомость_2_9.erf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)А где у вас там связь по виду цен?
У вас идет связь для Цена1 по номенклатуре и периоду:
ПО МаксЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
И МаксЦен.Дата = ЦеныНоменклатуры.Период
Посмотрите есть ли в РС запись на дату Периода для выбранной номенклатуры, скорее всего дата и Период РС не совпадают
У вас идет связь для Цена1 по номенклатуре и периоду:
ПО МаксЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
И МаксЦен.Дата = ЦеныНоменклатуры.Период
Посмотрите есть ли в РС запись на дату Периода для выбранной номенклатуры, скорее всего дата и Период РС не совпадают
(5) Гуглите "Срез последних на каждую дату", там где про 2 набора данных. Вряд ли у вас каждый день цена устанавливается, вам нужно получать на каждую дату поступления актуальную цену, это в СКД делается через 2 набора.
Хорошо. Опять затык. Как из НабораДанных1 перенести в макет Кол. Цена, Сумма, которых нет в НабореДанных2. при формирование ссылается что нет полей.
Прикрепленные файлы:
Ведомость_2_3.erf
Непонятно, как связано поле ВидЦены с магазином или правилом ценообразования. Если ВидЦены и есть правило ценообразования, то запрос будет примерно такой
при этом розничные цены будут на конец периода. Двух источников данных не нужно.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Количество КАК Количество,
ПоступлениеТоваровТовары.Цена КАК Цена,
ПоступлениеТоваровТовары.Сумма КАК Сумма,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена1
ПОМЕСТИТЬ ТабПост
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончания, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ПоступлениеТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ПоступлениеТоваровТовары.Ссылка.Магазин.ПравилоЦенообразования = ЦеныНоменклатурыСрезПоследних.ВидЦены
ИНДЕКСИРОВАТЬ ПО
Номенклатура Показатьпри этом розничные цены будут на конец периода. Двух источников данных не нужно.
(13)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончания, ) КАК ЦеныНоменклатурыСрезПоследних
Ругается на срез при формирование. На эту ошибку сто раз уже натыкался.
Плюс из за того что помещена в временную таблицу, остальные реквизиты не находит макет
Посути мне надо цена розницы, созданная на основание поступление, а не влюбой другой момент. пытался через связи ПоступлениеТовара, УстановкаЦены, но тоже, то нелогические связи то за пределы массива.
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончания, ) КАК ЦеныНоменклатурыСрезПоследних
Ругается на срез при формирование. На эту ошибку сто раз уже натыкался.
Плюс из за того что помещена в временную таблицу, остальные реквизиты не находит макет
Посути мне надо цена розницы, созданная на основание поступление, а не влюбой другой момент. пытался через связи ПоступлениеТовара, УстановкаЦены, но тоже, то нелогические связи то за пределы массива.
(14)
1. Было бы неплохо увидеть как именно ругается. Возможно регистр сведений ЦеныНоменклатуры просто непериодический?
2. Не получил ответа на вопрос, как связаны магазин и видцены. В дальнейшем буду исходить из того, что &ВидЦены задается параметром и является одним и тем же для всех магазинов. Кроме того, это немного упростит запрос.
3. Было бы неплохо сначала разобраться с работой более простого запроса, использующего СрезПоследних, даже если его данные не вполне достоверны.
4. Попробуем тогда написать запрос, получающий розничные цены на дату документа поступления. Поскольку структура регистра сведений ЦеныНоменклатуры не вполне известна, предполагаю что дата установки цены находится в поле Период. Если поле называется иначе, необходимо заменить поле Период в тексте запроса на нужное.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(ПоступлениеТоваровТовары.Номенклатура) КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.Цена) КАК Цена,
МАКСИМУМ(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена * ПоступлениеТоваровТовары.Количество) КАК Сумма1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.НомерСтроки
запрос может быть немного сложен для новичка, попробую прокомментировать. Сначала создается временная таблица ТабДатыЦен, определяющая ближайшие даты установки цен номенклатуры в разрезе дат поступления и номенклатуры. Далее используя таблицу ТабДатыЦен получаем цены, соответствующие найденным датам и помещаем в таблицу ТабЦены. И последним запросом получаем уже итоговую таблицу для СКД.
1. Было бы неплохо увидеть как именно ругается. Возможно регистр сведений ЦеныНоменклатуры просто непериодический?
2. Не получил ответа на вопрос, как связаны магазин и видцены. В дальнейшем буду исходить из того, что &ВидЦены задается параметром и является одним и тем же для всех магазинов. Кроме того, это немного упростит запрос.
3. Было бы неплохо сначала разобраться с работой более простого запроса, использующего СрезПоследних, даже если его данные не вполне достоверны.
4. Попробуем тогда написать запрос, получающий розничные цены на дату документа поступления. Поскольку структура регистра сведений ЦеныНоменклатуры не вполне известна, предполагаю что дата установки цены находится в поле Период. Если поле называется иначе, необходимо заменить поле Период в тексте запроса на нужное.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(ПоступлениеТоваровТовары.Номенклатура) КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.Цена) КАК Цена,
МАКСИМУМ(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена * ПоступлениеТоваровТовары.Количество) КАК Сумма1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.НомерСтроки
запрос может быть немного сложен для новичка, попробую прокомментировать. Сначала создается временная таблица ТабДатыЦен, определяющая ближайшие даты установки цен номенклатуры в разрезе дат поступления и номенклатуры. Далее используя таблицу ТабДатыЦен получаем цены, соответствующие найденным датам и помещаем в таблицу ТабЦены. И последним запросом получаем уже итоговую таблицу для СКД.
(15)
(15)
РЕСПЕКТ!!! Только во втором запросе опечатка )))
(15)
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатурыВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)РЕСПЕКТ!!! Только во втором запросе опечатка )))
(15)
простите за наглость. А не могли бы подсказать как вытянуть данные ПоступлениеТоваровТоварыПоДаннымПоставщика.Количество, в случае если есть расхождение, если нет то заполнять количеством из ПоступлениеТоваровТовары.Количество. ЕЩЕ касяк, в моем варианте, если в по данным поставщика больше строк чем по факту, то не все входят в отчет.
простите за наглость. А не могли бы подсказать как вытянуть данные ПоступлениеТоваровТоварыПоДаннымПоставщика.Количество, в случае если есть расхождение, если нет то заполнять количеством из ПоступлениеТоваровТовары.Количество. ЕЩЕ касяк, в моем варианте, если в по данным поставщика больше строк чем по факту, то не все входят в отчет.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(ПоступлениеТоваровТовары.Номенклатура) КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.Цена) КАК Цена,
МАКСИМУМ(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена * ПоступлениеТоваровТовары.Количество) КАК Сумма1,
ПоступлениеТоваровТоварыПоДаннымПоставщика.Количество КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровТоварыПоДаннымПоставщика
ПО ПоступлениеТоваровТовары.Номенклатура = ПоступлениеТоваровТоварыПоДаннымПоставщика.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.НомерСтроки,
ПоступлениеТоваровТоварыПоДаннымПоставщика.Количество
УПОРЯДОЧИТЬ ПО
НомерСтроки Показать
ВЫБРАТЬ
Запр.Ссылка КАК Ссылка,
Запр.Номенклатура КАК Номенклатура,
МАКСИМУМ(Запр.НомерСтроки) КАК НомерСтроки,
СУММА(Запр.Количество) КАК Количество,
СУММА(Запр.Количество1) КАК Количество1,
СУММА(Запр.Сумма) КАК Сумма,
СУММА(Запр.Сумма1) КАК Сумма1,
МАКСИМУМ(Запр.Магазин) КАК Магазин,
ВЫБОР КОГДА СУММА(Запр.Количество)=0 ТОГДА 0 ИНАЧЕ СУММА(Запр.Сумма)/СУММА(Запр.Количество) конец КАК Цена,
ВЫБОР КОГДА СУММА(Запр.Количество)=0 ТОГДА 0 ИНАЧЕ СУММА(Запр.Сумма1)/СУММА(Запр.Количество) конец КАК Цена1,
МАКСИМУМ(Запр.Дата) КАК Дата
ИЗ
(ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
// МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена)*СУММА(ПоступлениеТоваровТовары.Количество) КАК Сумма1,
0 КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыПоДаннымПоставщика.Ссылка КАК Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура КАК Номенклатура,
0 КАК Количество,
0 КАК НомерСтроки,
0 КАК Сумма,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Дата) КАК Дата,
// 0 КАК Цена1,
0 КАК Сумма1,
СУММА(ТоварыПоДаннымПоставщика.Количество) КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ТоварыПоДаннымПоставщика
ГДЕ
ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура) Запр
СГРУППИРОВАТЬ ПО Запр.Номенклатура,Запр.Ссылка
///////////////////
В таком случае лучше использовать ОБЪЕДИНИТЬ ВСЕ, и после использования обернуть в подзапрос и заново сгруппировать. Писал все прямо в браузере, опечаток может быть больше
Запр.Ссылка КАК Ссылка,
Запр.Номенклатура КАК Номенклатура,
МАКСИМУМ(Запр.НомерСтроки) КАК НомерСтроки,
СУММА(Запр.Количество) КАК Количество,
СУММА(Запр.Количество1) КАК Количество1,
СУММА(Запр.Сумма) КАК Сумма,
СУММА(Запр.Сумма1) КАК Сумма1,
МАКСИМУМ(Запр.Магазин) КАК Магазин,
ВЫБОР КОГДА СУММА(Запр.Количество)=0 ТОГДА 0 ИНАЧЕ СУММА(Запр.Сумма)/СУММА(Запр.Количество) конец КАК Цена,
ВЫБОР КОГДА СУММА(Запр.Количество)=0 ТОГДА 0 ИНАЧЕ СУММА(Запр.Сумма1)/СУММА(Запр.Количество) конец КАК Цена1,
МАКСИМУМ(Запр.Дата) КАК Дата
ИЗ
(ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
// МАКСИМУМ(ТабЦены.Цена) КАК Цена1,
МАКСИМУМ(ТабЦены.Цена)*СУММА(ПоступлениеТоваровТовары.Количество) КАК Сумма1,
0 КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыПоДаннымПоставщика.Ссылка КАК Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура КАК Номенклатура,
0 КАК Количество,
0 КАК НомерСтроки,
0 КАК Сумма,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Дата) КАК Дата,
// 0 КАК Цена1,
0 КАК Сумма1,
СУММА(ТоварыПоДаннымПоставщика.Количество) КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ТоварыПоДаннымПоставщика
ГДЕ
ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура) Запр
СГРУППИРОВАТЬ ПО Запр.Номенклатура,Запр.Ссылка
///////////////////
В таком случае лучше использовать ОБЪЕДИНИТЬ ВСЕ, и после использования обернуть в подзапрос и заново сгруппировать. Писал все прямо в браузере, опечаток может быть больше
(22) При такой отработки:
Получается что цены розницы не обходит. И еще в итоге СуммаЗакупи должна формироваться от КолПоДокументу*ЦенуЗакуп. А СуммаРозницы от КолПоФакту*ЦенуРозници. Соответственно если расхождения нету КолПоФакту должен быть идентичен КолПоДокументу
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Запр.Ссылка КАК Ссылка,
Запр.Номенклатура КАК Номенклатура,
МАКСИМУМ(Запр.НомерСтроки) КАК НомерСтроки,
СУММА(Запр.Количество) КАК Количество,
СУММА(Запр.Количество1) КАК Количество1,
СУММА(Запр.Сумма) КАК Сумма,
СУММА(Запр.Сумма1) КАК Сумма1,
МАКСИМУМ(Запр.Магазин) КАК Магазин,
ВЫБОР
КОГДА СУММА(Запр.Количество) = 0
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма) / СУММА(Запр.Количество)
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА СУММА(Запр.Количество) = 0
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма1) / СУММА(Запр.Количество)
КОНЕЦ КАК Цена1,
МАКСИМУМ(Запр.Дата) КАК Дата
ИЗ
(ВЫБРАТЬ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) * СУММА(ПоступлениеТоваровТовары.Количество) КАК Сумма1,
0 КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура,
0,
0,
0,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Магазин),
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Дата),
0,
СУММА(ТоварыПоДаннымПоставщика.Количество)
ИЗ
Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ТоварыПоДаннымПоставщика
ГДЕ
ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура) КАК Запр
СГРУППИРОВАТЬ ПО
Запр.Номенклатура,
Запр.Ссылка
УПОРЯДОЧИТЬ ПО
НомерСтроки ПоказатьПолучается что цены розницы не обходит. И еще в итоге СуммаЗакупи должна формироваться от КолПоДокументу*ЦенуЗакуп. А СуммаРозницы от КолПоФакту*ЦенуРозници. Соответственно если расхождения нету КолПоФакту должен быть идентичен КолПоДокументу
Прикрепленные файлы:
1.Для вывода цен розницы надо выбрать на закладке параметров ВидЦены. Или наконец определиться со связью вида цены в регистре цен с магазином. Но тогда надо будет доделать запрос.
2. КолПоДокументу - это с ТоварыПоДаннымПоставщика? А там цена в реквизитах табличной части есть? И если нет, то что с товарами, которых не в табличной части Товары?
2. КолПоДокументу - это с ТоварыПоДаннымПоставщика? А там цена в реквизитах табличной части есть? И если нет, то что с товарами, которых не в табличной части Товары?
(25) ВидЦены через условие подцепляю. Глаза замылены, не увидел. с розницей все ок сейчас:
В ТоварыПоДаннымПоставщика все те же реквезиты что и в ПоступлениеТоваровТовары. Цена есть. ))
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
И ЦеныНоменклатуры.ВидЦены = &ВидЦены
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Запр.Ссылка КАК Ссылка,
Запр.Номенклатура КАК Номенклатура,
МАКСИМУМ(Запр.НомерСтроки) КАК НомерСтроки,
СУММА(Запр.Количество) КАК Количество,
СУММА(Запр.Количество1) КАК Количество1,
СУММА(Запр.Сумма) КАК Сумма,
СУММА(Запр.Сумма1) КАК Сумма1,
МАКСИМУМ(Запр.Магазин) КАК Магазин,
ВЫБОР
КОГДА СУММА(Запр.Количество) = 0
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма) / СУММА(Запр.Количество)
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА СУММА(Запр.Количество) = 0
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма1) / СУММА(Запр.Количество)
КОНЕЦ КАК Цена1,
МАКСИМУМ(Запр.Дата) КАК Дата
ИЗ
(ВЫБРАТЬ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) * СУММА(ПоступлениеТоваровТовары.Количество) КАК Сумма1,
0 КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура,
0,
0,
0,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Магазин),
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Дата),
0,
СУММА(ТоварыПоДаннымПоставщика.Количество)
ИЗ
Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ТоварыПоДаннымПоставщика
ГДЕ
ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура) КАК Запр
СГРУППИРОВАТЬ ПО
Запр.Номенклатура,
Запр.Ссылка
УПОРЯДОЧИТЬ ПО
НомерСтроки ПоказатьВ ТоварыПоДаннымПоставщика все те же реквезиты что и в ПоступлениеТоваровТовары. Цена есть. ))
(27)
Пока ждал отклика по заявке и ответа в форуме сам поправил все как мне надо
если кому то пригодиться:
Пока ждал отклика по заявке и ответа в форуме сам поправил все как мне надо
если кому то пригодиться:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
ПОМЕСТИТЬ ТабДатыЦен
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И ПоступлениеТоваровТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата КАК ДатаПрихода,
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена,
ПоступлениеТоваровТовары.Ссылка.ЕстьРасхождения КАК ЕстьРасхождения
ПОМЕСТИТЬ ТабЦены
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабДатыЦен КАК ТабДатыЦен
ПО (ТабДатыЦен.Номенклатура = ПоступлениеТоваровТовары.Номенклатура)
И (ТабДатыЦен.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Период = ТабДатыЦен.ДатаЦены)
И (ТабДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ВидЦены = &ВидЦены)
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
И ЦеныНоменклатуры.ВидЦены = &ВидЦены
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Номенклатура,
ПоступлениеТоваровТовары.Ссылка.Дата,
ПоступлениеТоваровТовары.Ссылка.ЕстьРасхождения
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
ДатаПрихода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Запр.Ссылка КАК Ссылка,
Запр.Номенклатура КАК Номенклатура,
МАКСИМУМ(Запр.НомерСтроки) КАК НомерСтроки,
СУММА(Запр.Количество) КАК Количество,
СУММА(Запр.Количество1) КАК Количество1,
СУММА(Запр.Сумма) КАК Сумма,
СУММА(Запр.Сумма1) КАК Сумма1,
МАКСИМУМ(Запр.Магазин) КАК Магазин,
ВЫБОР
КОГДА СУММА(Запр.Количество1) = 0
И Запр.Ссылка.ЕстьРасхождения = ИСТИНА
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма) / СУММА(Запр.Количество1)
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА СУММА(Запр.Количество) = 0
ТОГДА 0
ИНАЧЕ СУММА(Запр.Сумма1) / СУММА(Запр.Количество)
КОНЕЦ КАК Цена1,
МАКСИМУМ(Запр.Дата) КАК Дата
ИЗ
(ВЫБРАТЬ
ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
МАКСИМУМ(ПоступлениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
СУММА(ВЫБОР
КОГДА ТабЦены.ЕстьРасхождения = ИСТИНА
ТОГДА 0
ИНАЧЕ ПоступлениеТоваровТовары.Сумма
КОНЕЦ) КАК Сумма,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Магазин) КАК Магазин,
МАКСИМУМ(ПоступлениеТоваровТовары.Ссылка.Дата) КАК Дата,
МАКСИМУМ(ТабЦены.Цена) * СУММА(ПоступлениеТоваровТовары.Количество) КАК Сумма1,
ВЫБОР
КОГДА ТабЦены.ЕстьРасхождения = ЛОЖЬ
ТОГДА ПоступлениеТоваровТовары.Количество
ИНАЧЕ 0
КОНЕЦ КАК Количество1
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ ТабЦены КАК ТабЦены
ПО (ТабЦены.ДатаПрихода = ПоступлениеТоваровТовары.Ссылка.Дата)
И ПоступлениеТоваровТовары.Номенклатура = ТабЦены.Номенклатура
ГДЕ
ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ПоступлениеТоваровТовары.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровТовары.Ссылка,
ПоступлениеТоваровТовары.Номенклатура,
ВЫБОР
КОГДА ТабЦены.ЕстьРасхождения = ЛОЖЬ
ТОГДА ПоступлениеТоваровТовары.Количество
ИНАЧЕ 0
КОНЕЦ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура,
0,
0,
ТоварыПоДаннымПоставщика.Сумма,
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Магазин),
МАКСИМУМ(ТоварыПоДаннымПоставщика.Ссылка.Дата),
0,
СУММА(ВЫБОР
КОГДА ТабЦены.ЕстьРасхождения = ИСТИНА
ТОГДА ТоварыПоДаннымПоставщика.Количество
ИНАЧЕ 0
КОНЕЦ)
ИЗ
Документ.ПоступлениеТоваров.ТоварыПоДаннымПоставщика КАК ТоварыПоДаннымПоставщика,
ТабЦены КАК ТабЦены
ГДЕ
ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента >= &ДатаНачала
И ТоварыПоДаннымПоставщика.Ссылка.ДатаВходящегоДокумента <= &ДатаОкончания
СГРУППИРОВАТЬ ПО
ТоварыПоДаннымПоставщика.Ссылка,
ТоварыПоДаннымПоставщика.Номенклатура,
ТоварыПоДаннымПоставщика.Сумма) КАК Запр
СГРУППИРОВАТЬ ПО
Запр.Номенклатура,
Запр.Ссылка,
Запр.Ссылка.ЕстьРасхождения
УПОРЯДОЧИТЬ ПО
НомерСтроки Показать
Всем спасибо. Помогли разобраться с СКД. Особая благодарность user952544, за то что показал как формировать Запрос с обработкой полученных данных.
Итог полученного результата, который меня полностью удовлетворил, прилагаю, для ознакомления.
Итог полученного результата, который меня полностью удовлетворил, прилагаю, для ознакомления.
Прикрепленные файлы:
Ведомость_2_9.erf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
