8.х помогите задать условие в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ленок87, 11 сен 2012.

  1. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    Мне необходимо выбрать из запроса цену на номенклатру
    По такому условию
    Если были документы поступления с контрагентом промкомплектация тогда цену нужно взять из последнего такого поступления
    Если нет таких документов от этого контрогента тогда от дугих посавщиков смотрим также последнее
    Иначе берем из последней реализации
    у меня условие выбора цены работает , но если таких документов было несколько тогда запрос мне выдает для каждого документа как указать что нужен именно последний документиз удовлетворяющих условию
    Код:
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ХозрасчетныйОстаткиИОбороты.Счет,
    | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Ном,
    | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
    | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток * -1 КАК Кол
    |ПОМЕСТИТЬ Товары
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , , , ) КАК ХозрасчетныйОстаткиИОбороты
    |ГДЕ
    | ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    | И ХозрасчетныйОстаткиИОбороты.Субконто2 = &Склад
    | И ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток < 0
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | Товары.Ном КАК Номенклатура,
    | Товары.Кол КАК Количество,
    | Товары.Ном.СтавкаНДС КАК СтавкаНДС,
    | ВЫБОР
    |  КОГДА ЕСТЬNULL(ПоступленияОтПромкомпл.Цена, 0) > 0
    |   ТОГДА ПоступленияОтПромкомпл.Цена
    |  ИНАЧЕ ВЫБОР
    |    КОГДА ЕСТЬNULL(ПоступленияОтДругихПоставщиков.Цена, 0) > 0
    |	 ТОГДА ПоступленияОтДругихПоставщиков.Цена
    |    ИНАЧЕ Реализации.Цена
    |   КОНЕЦ
    | КОНЕЦ КАК Цена,
    | ВЫБОР
    |  КОГДА ЕСТЬNULL(ПоступленияОтПромкомпл.Цена, 0) > 0
    |   ТОГДА ПоступленияОтПромкомпл.Дата
    |  ИНАЧЕ ВЫБОР
    |    КОГДА ЕСТЬNULL(ПоступленияОтДругихПоставщиков.Цена, 0) > 0
    |	 ТОГДА ПоступленияОтДругихПоставщиков.Дата
    |    ИНАЧЕ Реализации.Цена
    |   КОНЕЦ
    | КОНЕЦ КАК ДатаДокумента
    |ПОМЕСТИТЬ цены
    |ИЗ
    | Товары КАК Товары
    |  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |   РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |   РеализацияТоваровУслугТовары.Цена - РеализацияТоваровУслугТовары.Цена * 0.18 КАК Цена,
    |   РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    |   РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата
    |  ИЗ
    |   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |  ГДЕ
    |   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон) КАК Реализации
    |  ПО (Реализации.Номенклатура = Товары.Ном)
    |  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |   ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 0.05 КАК Цена,
    |   ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка,
    |   ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата
    |  ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |  ГДЕ
    |   ПоступлениеТоваровУслугТовары.Контрагент <> &Контрагент
    |   И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон) КАК ПоступленияОтДругихПоставщиков
    |  ПО (ПоступленияОтДругихПоставщиков.Номенклатура = Товары.Ном)
    |  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |   ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |   ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Цена, 0) КАК Цена,
    |   ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка,
    |   ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата
    |  ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |  ГДЕ
    |   ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Нач И &Кон
    |   И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент) КАК ПоступленияОтПромкомпл
    |  ПО (ПоступленияОтПромкомпл.Номенклатура = Товары.Ном)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | Товары.Ном,
    | Товары.Кол,
    | цены.СтавкаНДС,
    | цены.Цена,
    | цены.ДатаДокумента
    |ИЗ
    | Товары КАК Товары
    |  ЛЕВОЕ СОЕДИНЕНИЕ цены КАК цены
    |  ПО Товары.Ном = цены.Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ
  2. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    хотьбы поругались чтоли может я невнятно вопрос задала .пробовала пользоваться вложенными запросами безрезультатно
    как же мне выбрать для каждой из номенклатур именно последний документ поступления и реализации? :sm_rolleyes:
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а если документы отсортировать по дате по убыванию и взять первый?
  4. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Возьмите регистр накопления где у вас товары учитываются, соответственно по товару есть приход и расход
    поэтому для пары Товар - ВидДвижения , выбираете максимальную дату, затем для связки Товар - ВидДвижения - Дата, выбираете документ который будет поступление для прихода и реализацие для расхода.
  5. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    Вы простите за глупый вопрос но какой регистр можно взять в бухгалтерии?Я только учусь с запросами работать а подсказать некому
  6. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    я же не знаю(не вижу) вашей базы, посмотрите в движениях документа, что-то вроде остатков товаров, или взаиморасчетов с контрагентами.
  7. TopicStarter Overlay
    Ленок87
    Offline

    Ленок87 Опытный в 1С

    Регистрация:
    7 фев 2012
    Сообщения:
    261
    Симпатии:
    0
    Баллы:
    26
    справилась сгруппировала по номенклатуре вложенные запросы и цену взяла средней

Поделиться этой страницей