Регистр накопления закупки (Запрос)
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В КА 1.3. Создал отчет (Закупки), с колонкам - контрагент, номенклатура, количество, цена и сумма. И надо добавить еще одна колонка который будить отображать последняя цена товара. Последняя цена товара - выбираем из Регистр накопления - Закупки.ОстаткиИОбороты - ЦенаПриход.
Написал запрос, было группировка, изменил запрос и сейчас нечего не показывает. Как могу решить эту задачу. С объединением, макетам или как?
Спасибо всем за ранее.
Запрос стандартного отчета (С колонкам - контрагент, номенклатура, количество, цена и сумма) -
Запрос который выбирает последняя цена товара. Можем выбрать это 2 способом. Первый РН -
Второй Документ - Поступление товаров услуг -
И самый последний -
В последним запросе результат не верный по-моему там я делаю группировку. Но без группировку номенклатура дублируются.
Написал запрос, было группировка, изменил запрос и сейчас нечего не показывает. Как могу решить эту задачу. С объединением, макетам или как?
Спасибо всем за ранее.
Запрос стандартного отчета (С колонкам - контрагент, номенклатура, количество, цена и сумма) -
ВЫБРАТЬ
Закупка.Контрагент,
Закупка.Номенклатура,
Закупка.КоличествоПриход КАК Количество,
Закупка.ЦенаПриход КАК Цена,
Закупка.СуммаПриход КАК Сумма
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , , , ) КАК Закупка
Запрос который выбирает последняя цена товара. Можем выбрать это 2 способом. Первый РН -
ВЫБРАТЬ ПЕРВЫЕ 1
ЗакупкиОстаткиИОбороты.Номенклатура,
ЗакупкиОстаткиИОбороты.ЦенаПриход
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , Авто, , Номенклатура = &Номенклатура) КАК ЗакупкиОстаткиИОбороты
ГДЕ
ТИПЗНАЧЕНИЯ(ЗакупкиОстаткиИОбороты.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
УПОРЯДОЧИТЬ ПО
ЗакупкиОстаткиИОбороты.Регистратор.Дата УБЫВ
ПоказатьВторой Документ - Поступление товаров услуг -
ВЫБРАТЬ Первые 1
ПоступлениеТоваровУслугТовары.Цена КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура
УПОРЯДОЧИТЬ ПО
ПоступлениеТоваровУслугТовары.Ссылка.Дата УБЫВ
ПоказатьИ самый последний -
ВЫБРАТЬ
Закупка.Контрагент,
Закупка.Номенклатура,
Закупка.КоличествоПриход КАК Количество,
Закупка.ЦенаПриход КАК Цена,
Закупка.СуммаПриход КАК Сумма
ПОМЕСТИТЬ втЗакупки
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , , , ) КАК Закупка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура.Наименование
ПОМЕСТИТЬ втПоступление
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура.Наименование
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втЗакупки.Контрагент,
втЗакупки.Номенклатура,
втЗакупки.Количество КАК Количество,
втЗакупки.Цена КАК Цена,
втЗакупки.Сумма КАК Сумма,
втПоступление.ПоследняяЦена КАК ПоследняяЦена
ИЗ
втЗакупки КАК втЗакупки
ЛЕВОЕ СОЕДИНЕНИЕ втПоступление КАК втПоступление
ПО втЗакупки.Номенклатура.Наименование = втПоступление.НоменклатураНаименование
ПоказатьВ последним запросе результат не верный по-моему там я делаю группировку. Но без группировку номенклатура дублируются.
По теме из базы знаний
- Объектная модель запроса "Схема запроса" - теория и примеры использования
- Боремся с запросами в циклах. Мой опыт рефакторинга запросов
- Пример доработки проведения в ERP 2.5 по одному регистру накопления
- Описание расчета вычисляемых цен номенклатуры, формируемых в документах Установка цен номенклатуры и Прайс-лист, произвольным запросом к данным ИБ "Себестоимость с доп. расходами" в УТ 11, КА 2, ERP 2, заложенного стандартным механизмом 1С
- Оплата счетов в 1С:Бухгалтерии: выставлено и оплачено
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)Во вложении мой отчет, форма под обычное приложение, поэтому если у Вас управляемые формы, уберите форму отчета
Прикрепленные файлы:
Цена последней покупки.erf
Чуть чуть не так. Вот так попробуйте
ВЫБРАТЬ
Закупка.Контрагент,
Закупка.Номенклатура,
Закупка.КоличествоПриход КАК Количество,
Закупка.ЦенаПриход КАК Цена,
Закупка.СуммаПриход КАК Сумма
ПОМЕСТИТЬ втЗакупки
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , , , ) КАК Закупка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата)
ПОМЕСТИТЬ втПоступление
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втЗакупки.Контрагент,
втЗакупки.Номенклатура,
втЗакупки.Количество КАК Количество,
втЗакупки.Цена КАК Цена,
втЗакупки.Сумма КАК Сумма,
втПоступление.ПоследняяЦена КАК ПоследняяЦена
ИЗ
втЗакупки КАК втЗакупки
ЛЕВОЕ СОЕДИНЕНИЕ втПоступление КАК втПоступление
ПО втЗакупки.Номенклатура= втПоступление.Номенклатура
Показать
(2)Спасибо за вниманию. Но здесь нам не надо максимальная цена. Цену надо выбрать из подледного документа поступление (для каждого номенклатуры они разные).
Запрос по-моему будить такой но не могу записать финальный запрос.
ИЛИ
Запрос по-моему будить такой но не могу записать финальный запрос.
ВЫБРАТЬ Первые 1
ПоступлениеТоваровУслугТовары.Цена КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура
УПОРЯДОЧИТЬ ПО
ПоступлениеТоваровУслугТовары.Ссылка.Дата УБЫВ
ПоказатьИЛИ
ВЫБРАТЬ ПЕРВЫЕ 1
ЗакупкиОстаткиИОбороты.Номенклатура,
ЗакупкиОстаткиИОбороты.ЦенаПриход
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , Авто, , Номенклатура = &Номенклатура) КАК ЗакупкиОстаткиИОбороты
ГДЕ
ТИПЗНАЧЕНИЯ(ЗакупкиОстаткиИОбороты.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
УПОРЯДОЧИТЬ ПО
ЗакупкиОстаткиИОбороты.Регистратор.Дата УБЫВ
Показать
(4) ну вот максимально для чего. Вот смотрите например у вас на одну дату получилось два прихода с разной цено - тогда вам нужно будет взять какую то одну ведь запись - поэтому можно взять максимальную. А вот если использовать сумма(цена) - это чуть чуть не верный подход в виду того что если будет на одну дату две цены - то запрос их суммирует, а так не должно
(8) Вот в этот отчет допишите,
МАКСИМУ(Цена),
МАКСИМУ(Дата);
СГРУППИРОВАТЬ ПО Номенклатура
То есть вот так, что у вас получиться - должно все как надо получиться! Вставьте в консколь то что ниже написано и посмотрите. Вы для номенклатуры получите последнюю цену. (если их будет две и более) то возьмется максимальная
МАКСИМУ(Цена),
МАКСИМУ(Дата);
СГРУППИРОВАТЬ ПО Номенклатура
То есть вот так, что у вас получиться - должно все как надо получиться! Вставьте в консколь то что ниже написано и посмотрите. Вы для номенклатуры получите последнюю цену. (если их будет две и более) то возьмется максимальная
ВЫБРАТЬ
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата)
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
Показать
(2)Можете объяснить почему здесь в результате последняя цена пусто. С консулам смотрю нечего не отображаются.
ВЫБРАТЬ
Закупка.Контрагент,
Закупка.Номенклатура,
Закупка.КоличествоПриход КАК Количество,
Закупка.ЦенаПриход КАК Цена,
Закупка.СуммаПриход КАК Сумма
ПОМЕСТИТЬ втЗакупки
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , , , ) КАК Закупка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ Первые 1
СУММА(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата
ПОМЕСТИТЬ втПоступление
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура,
ПоступлениеТоваровУслугТовары.Ссылка.Дата
УПОРЯДОЧИТЬ ПО
Дата УБЫВ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втЗакупки.Контрагент,
втЗакупки.Номенклатура,
втЗакупки.Количество КАК Количество,
втЗакупки.Цена КАК Цена,
втЗакупки.Сумма КАК Сумма,
втПоступление.ПоследняяЦена КАК ПоследняяЦена
ИЗ
втЗакупки КАК втЗакупки
ЛЕВОЕ СОЕДИНЕНИЕ втПоступление КАК втПоступление
ПО втЗакупки.Номенклатура= втПоступление.Номенклатура
Показать
(5) да могу обяснить. Смотрите у вас написано в запросе по таблице втПоступление - ВЫБРАТь ПЕРВЫЕ 1. То есть из всего регистра вас программа выберет только одну запись, а нужно не одну, должна быть по одной по каждой номенклатуре.
Вот запрос такой пробуйте и все получиться
Вот запрос такой пробуйте и все получиться
ВЫБРАТЬ
Закупка.Контрагент,
Закупка.Номенклатура,
Закупка.КоличествоПриход КАК Количество,
Закупка.ЦенаПриход КАК Цена,
Закупка.СуммаПриход КАК Сумма
ПОМЕСТИТЬ втЗакупки
ИЗ
РегистрНакопления.Закупки.ОстаткиИОбороты(, , , , ) КАК Закупка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата)
ПОМЕСТИТЬ втПоступление
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втЗакупки.Контрагент,
втЗакупки.Номенклатура,
втЗакупки.Количество КАК Количество,
втЗакупки.Цена КАК Цена,
втЗакупки.Сумма КАК Сумма,
втПоступление.ПоследняяЦена КАК ПоследняяЦена
ИЗ
втЗакупки КАК втЗакупки
ЛЕВОЕ СОЕДИНЕНИЕ втПоступление КАК втПоступление
ПО втЗакупки.Номенклатура= втПоступление.Номенклатура
Показать
(6)
таким образом вы получите максимальную, а не последнюю цену
ВЫБРАТЬ
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК ПоследняяЦена,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата)
ПОМЕСТИТЬ втПоступление
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
;
Показатьтаким образом вы получите максимальную, а не последнюю цену
ВЫБРАТЬ
МАКСИМУМ(ПриобретениеТоваровУслугТовары.Ссылка.Дата) КАК Дата,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ втНоменклатураДаты
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
ПоступлениеТоваровУслугТовары.Ссылка.Проведен
И ПоступлениеТоваровУслугТовары.Номенклатура В
(ВЫБРАТЬ
втЗакупки.Номенклатура
ИЗ
втЗакупки)
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втНоменклатураДаты.Дата КАК Дата,
втНоменклатураДаты.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК ЦенаПоследняя
ИЗ
втНоменклатураДаты КАК втНоменклатураДаты
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ПО втНоменклатураДаты.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
И втНоменклатураДаты.Дата = ПоступлениеТоваровУслугТовары.Ссылка.Дата
И (ПоступлениеТоваровУслугТовары.Ссылка.Проведен)
СГРУППИРОВАТЬ ПО
втНоменклатураДаты.Дата,
втНоменклатураДаты.Номенклатура
Показатьдолжно так заработать, но если несколько цен на одну секунду, то выбирается максимальная
можно заморочиться через момент времени, но там другие нюансы
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)