[РЕШЕНО] Запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Nekromant, 7 ноя 2014.

  1. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    Здрасти. Цель: собрать запросом номенклатуру из комплектующих и свернуть по владельцу.
    Код:
    ВЫБРАТЬ
        СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
        МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК Цена,
        ВЫБОР
            КОГДА КомплектующиеНоменклатуры.Номенклатура ЕСТЬ NULL
                ТОГДА ПоступлениеТоваровУслугТовары.Номенклатура
            ИНАЧЕ КомплектующиеНоменклатуры.Номенклатура
        КОНЕЦ КАК Номенклатура,
        МАКСИМУМ(ПоступлениеТоваровУслугТовары.Коэффициент) КАК Коэффициент,
        СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма,
        ПоступлениеТоваровУслугТовары.СтавкаНДС,
        СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
        ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
        ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения
    ИЗ
        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
            ПО ПоступлениеТоваровУслугТовары.Номенклатура = КомплектующиеНоменклатуры.Комплектующая
    ГДЕ
        ПоступлениеТоваровУслугТовары.Ссылка.Ссылка = &Ссылка
    
    СГРУППИРОВАТЬ ПО
        ВЫБОР
            КОГДА КомплектующиеНоменклатуры.Номенклатура ЕСТЬ NULL
                ТОГДА ПоступлениеТоваровУслугТовары.Номенклатура
            ИНАЧЕ КомплектующиеНоменклатуры.Номенклатура
        КОНЕЦ,
        ПоступлениеТоваровУслугТовары.СтавкаНДС,
        ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
        ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения
    Трабл: В данном виде не сворачивает.
    Безымянный.png
    Если убираю ЕдИзм, все ОК
    Безымянный.png
    Причина: Не спрашивайте даже какими мО_озгами это было сделано.....но так выглядит справочник ЕдИзм :
    Безымянный.png
    Как обойти ??
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Все логично и сделано правильно. Если наличие единицы измерения в результате запроса таки нужно, то можно вывести:
    • единицу по классификатору - она одна для однотипных единиц измерения
    • не саму единицу измерения, а ее наименование
    Nekromant нравится это.
  3. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Да, избавляться от ссылочности в ед. измерении.
  4. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    Я пробовал взять ее как ПРЕДСТАВЛЕНИЕ()..... так-же не группируют + мне результат в ТЧ загнать надо, а там естественно ссылка
    А вот так гуд:
    Безымянный.png
    Спасибо ;)
    --- Объединение сообщений, 7 ноя 2014 ---
    Эх......
    Безымянный.png
    Последнее редактирование: 7 ноя 2014
  5. Guzey
    Offline

    Guzey Опытный в 1С

    Регистрация:
    19 авг 2013
    Сообщения:
    77
    Симпатии:
    5
    Баллы:
    29
    Не верная логика, через представление мы получим текстовое значение ссылки, но при этому группировка все равно будет идти с учетом ссылки. Надо через ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Наименование и группировка соответственно.
  6. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    ОК:
    Безымянный.png
    НО :
    Безымянный.png
    ТЧ не заполняется...
    Безымянный.png
    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Ну так по классификатору соединитесь с таблицей единиц измерения и вытащите единицу измерения для номенклатуры.
  8. Guzey
    Offline

    Guzey Опытный в 1С

    Регистрация:
    19 авг 2013
    Сообщения:
    77
    Симпатии:
    5
    Баллы:
    29
    Если надо заполнить тч, то группировать нельзя, т.к. у упаковки есть владелец и если в вашей конфигурации ведется учета количества в разрезе упаковок, то нужно использовать именно ту упаковку, что есть в остатках. Если же вы хотите сгруппировать таблицу внутри условия, как было в первом посте, то нужно использовать наименование. Если же это заполнение прихода на основании чего то, то можно использовать поиск по справочнику единиц измерений, мы имеем владельца и наименование, найти ссылку не составит труда.
  9. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    А можно пример??? что-то я в голове не сложу эти таблицы никак...((
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Код:
    Выбрать
    Табл1.Номенклатура
    Табл2.Ссылка КАК ЕдиницаИзмерения
    Табл1.Количество
    Из ТЧДокумента КАК Табл1
    Левое Соединение Справочник.ЕдиницыИзмерения КАК Табл2
    ПО Табл1.Номенклатура = Табл2.Владелец
    И Табл1.ЕдиницаИзмерения = Табл2.ЕдиницаПоКлассификатору
    //И Табл1.ЕдиницаХраненияОстатков = Табл2.Ссылка//по желанию/необходимости
    Еще можно пересчет количества делать, если единицы измерения в ТЧ документа не совпадают с единицами измерения в копмлектации.
    Последнее редактирование: 7 ноя 2014
  11. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    У меня учет по "готовой краске", а некий контр. поставляет компоненты, которые физически смешивают для получения итога, вот я и заполняю доп ТЧ собирая компоненты(комплектующие) из ТЧ товары в ТЧ "продукция" , я это дело реализовал конечно в цикле с условиями, но меня никак не оставляет в покое этот запрос, благодаря которому код заполнения из 3х строк вместо 15...
    Я могу в ТЧ ссылку на классификатор поменять и все будет ОК....но хочется оставить справочник едизм.
    --- Объединение сообщений, 7 ноя 2014 ---
    Это как вложенный запрос или как следующее заполнение ТЧ, но только едИзм ?
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ну ежики..........
    Код:
    ВЫБРАТЬ
        ПоступлениеТоваровУслугТовары.Ссылка,
        ЕСТЬNULL(КомплектующиеНоменклатуры.Номенклатура, ПоступлениеТоваровУслугТовары.Номенклатура) КАК Номенклатура,
        ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору,
        ПоступлениеТоваровУслугТовары.Коэффициент КАК Коэффициент,
        СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
        ПоступлениеТоваровУслугТовары.Цена КАК Цена,
        СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма,
        ПоступлениеТоваровУслугТовары.СтавкаНДС,
        СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС) КАК СуммаНДС
    ПОМЕСТИТЬ ВТ_ДанныеДокумента
    ИЗ
        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
            ПО ПоступлениеТоваровУслугТовары.Номенклатура = КомплектующиеНоменклатуры.Комплектующая
    ГДЕ
        ПоступлениеТоваровУслугТовары.Ссылка.Ссылка = &Ссылка
    
    СГРУППИРОВАТЬ ПО
        ПоступлениеТоваровУслугТовары.СтавкаНДС,
        ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
        ЕСТЬNULL(КомплектующиеНоменклатуры.Номенклатура, ПоступлениеТоваровУслугТовары.Номенклатура),
        ПоступлениеТоваровУслугТовары.Коэффициент,
        ПоступлениеТоваровУслугТовары.Цена,
        ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ДанныеДокумента.Ссылка,
        ВТ_ДанныеДокумента.Номенклатура,
        ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения,
        ВТ_ДанныеДокумента.Коэффициент,
        ВТ_ДанныеДокумента.Количество,
        ВТ_ДанныеДокумента.Цена,
        ВТ_ДанныеДокумента.Сумма,
        ВТ_ДанныеДокумента.СтавкаНДС,
        ВТ_ДанныеДокумента.СуммаНДС
    ИЗ
        ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
            ПО ВТ_ДанныеДокумента.Номенклатура = ЕдиницыИзмерения.Владелец
                И ВТ_ДанныеДокумента.ЕдиницаИзмеренияЕдиницаПоКлассификатору = ЕдиницыИзмерения.ЕдиницаПоКлассификатору
                И ВТ_ДанныеДокумента.Номенклатура.ЕдиницаХраненияОстатков = ЕдиницыИзмерения.Ссылка
    Nekromant нравится это.
  13. TopicStarter Overlay
    Nekromant
    Offline

    Nekromant Опытный в 1С

    Регистрация:
    25 июл 2014
    Сообщения:
    71
    Симпатии:
    3
    Баллы:
    29
    Спасибо!

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