8.х При условии выбрать одно значение

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Pentыch, 9 апр 2014.

  1. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, подскажите, пожалуйста.

    Есть запрос который делает расчет трудозатрат на производство номенклатуры, считается по формуле ТехОперацияКоличество * ТехОперацияРасченка.

    Нужно, чтобы при условии ТехОперация В (&Значения) бралось только одно значение количества (у тех ТехОпераций что в списке), а так как, оказалось, бывают разные количества нужно выбрать ТехОперацию с максимальным.

    PS. надеюсь внятно расписал :)
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Предварительно отбирайте максимальное значение.
  3. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Изначальный запрос

    Код:
    "ВЫБРАТЬ
            |    ЕСТЬNULL(СУММА(Выборка.ТрудоемкостьТО)/3600,0) КАК ТрудоемкостьТО,
            |    Выборка.Спецификация КАК Спецификация
            |    ИЗ
            |    (ВЫБРАТЬ
            |        ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
            |        ТехнологическиеКартыСпецификацийПланирования.Спецификация.Ссылка КАК Спецификация,
            |        ТехнологическиеКартыСпецификацийПланирования.ТехнологическаяКарта.Ссылка КАК ТехнологическаяКарта,
            |        ВЫБОР
            |            КОГДА ТКМ.ТехнологическаяОперация.Расценка <> 0
            |                ТОГДА (ТКМ.Количество * ТКМ.ТехнологическаяОперация.Расценка)
            |        КОНЕЦ КАК ТрудоемкостьТО,
            |        ТКМ.ТехнологическаяОперация.Расценка КАК Расценка,
            |        ТКМ.Количество КАК Количество
            |    ИЗ
            |        РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(
            |            &Период,
            |            Номенклатура = &Номенклатура
            |        ) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
            |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТехнологическиеКартыСпецификацийПланирования КАК ТехнологическиеКартыСпецификацийПланирования
            |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ТехнологическиеКартыПроизводства.Маршрут КАК ТКМ
            |                ПО ТехнологическиеКартыСпецификацийПланирования.ТехнологическаяКарта.Ссылка = ТКМ.Ссылка
            |            ПО ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры = ТехнологическиеКартыСпецификацийПланирования.Спецификация) КАК Выборка
            |СГРУППИРОВАТЬ ПО
            |   Выборка.Спецификация
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Не нашел у вас в запросе это условие.
  5. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    А его там ни нет, я пока не пойму как это осуществить.
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вставляйте где вам нужно это условие. Перед установкой параметра в запрос, сначала обработайте его.
  7. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Вы, наверное, не поняли. На данный момент, я не в курсе куда мне это условие нужно вставить. Точнее какую структуру использовать, ибо в таком виде, запрос (по моему мнению) не будет работать как мне нужно.
    И мне нужна именно помощь в понимании :)

    Мне нужно, определить, у например 2х из 4х ТехОпераций (2- которые подходят по условию) максимальную по количеству (если количество разное) и выбрать ее, если количество одинаковое то выбрать просто первую.
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Для понимания обычно книги читают. Это условие можно воткнуть куда угодно, тем более что у вас подзапросы используются.
  9. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Нужно упорядочить последний запрос в объединении, но пишет что нужно использовать конструкцию ПЕРВЫЕ, как упорядочить именно последний запрос?


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

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