Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывод одного значения из нескольких
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Здравствуйте! Есть клиенты и у каждого может быть как один так и несколько сегментов. как в скд всегда тянуть только один сегмент. ибо если 2 сегмента пример то строки дублируются а это не хорошо.

ВЫБРАТЬ
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.Характеристика,
    ЗаказКлиентаТовары.Количество,
    ЗаказКлиентаТовары.ВидЦены,
    ЗаказКлиентаТовары.Цена КАК ЦенаБазовая,
    ВЫБОР
        КОГДА ЗаказКлиентаТовары.Количество > 0
            ТОГДА ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество
        ИНАЧЕ 0
    КОНЕЦ КАК Цена,
    ЗаказКлиентаТовары.Сумма,
    ЗаказКлиентаТовары.Ссылка.Партнер,
    ЗаказКлиентаТовары.Ссылка.Организация,
    ЗаказКлиентаТовары.Ссылка.Соглашение.Валюта,
    ЗаказКлиентаТовары.Ссылка.Партнер.ОсновнойМенеджер,
    ЗаказКлиентаТовары.Ссылка.Сделка,
    ЗаказКлиентаТовары.Ссылка.Сделка.Статус КАК СтатусСделки,
    ЗаказКлиентаТовары.Ссылка.Статус,
    ЗаказКлиентаТовары.Ссылка.Санаторий,
    ЗаказКлиентаТовары.Ссылка.Номер,
    ЗаказКлиентаТовары.Ссылка,
    ВЫБОР
        КОГДА Взаиморасчёты.ПриходПоЗаказу > 0
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК НаличиеПредоплат,
    ВЫБОР
        КОГДА АктыВыполненныхРабот.СуммаВзаиморасчетов > 0
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ЕстьАктыВыполненныхРабот,
    ЗаказКлиентаТовары.Ссылка.Дата,
    АктыВыполненныхРабот.Ссылка КАК Ссылка1,
    ПартнерыСегмента.Сегмент
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РасчетыСКлиентамиОстатки.ЗаказКлиента.Ссылка КАК ЗаказКлиента,
            РасчетыСКлиентамиОстатки.СуммаОстаток * -1 КАК ПриходПоЗаказу
        ИЗ
            РегистрНакопления.РасчетыСКлиентами.Остатки КАК РасчетыСКлиентамиОстатки) КАК Взаиморасчёты
        ПО ЗаказКлиентаТовары.Ссылка = Взаиморасчёты.ЗаказКлиента
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            АктВыполненныхРаботУслуги.Ссылка.ЗаказКлиента КАК ЗаказКлиента,
            СУММА(АктВыполненныхРаботУслуги.Количество) КАК Количество,
            СУММА(АктВыполненныхРаботУслуги.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов,
            АктВыполненныхРаботУслуги.Ссылка КАК Ссылка
        ИЗ
            Документ.АктВыполненныхРабот.Услуги КАК АктВыполненныхРаботУслуги
        ГДЕ
            АктВыполненныхРаботУслуги.Номенклатура.ВидНоменклатуры.Наименование = "Путевки"
            И АктВыполненныхРаботУслуги.Ссылка.ПометкаУдаления = ЛОЖЬ
        
        СГРУППИРОВАТЬ ПО
            АктВыполненныхРаботУслуги.Ссылка.ЗаказКлиента,
            АктВыполненныхРаботУслуги.Ссылка) КАК АктыВыполненныхРабот
        ПО ЗаказКлиентаТовары.Ссылка = АктыВыполненныхРабот.ЗаказКлиента
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПартнерыСегмента КАК ПартнерыСегмента
        ПО ЗаказКлиентаТовары.Ссылка.Партнер = ПартнерыСегмента.Партнер
ГДЕ
    ЗаказКлиентаТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
takefive
burza @ Сегодня, 16:27 необходимо зарегистрироваться для просмотра ссылки ,
Функция МИНИМУМ
burza
группировка это не то.
sava1
А как по-вашему из трех выбрать один. какие предложения ? приоритеты...
Petre
QUOTE (burza @ 24.07.18, 11:50) необходимо зарегистрироваться для просмотра ссылки
группировка это не то.

Не что "не то"?

sava1 @ Today, 13:01 необходимо зарегистрироваться для просмотра ссылки ,
Модуль "нейронные сети"...
burza
sava1 @ Сегодня, 14:01 необходимо зарегистрироваться для просмотра ссылки ,

да не важно какое будет значение, главное чтобы было 1-но из нескольких имеющихся.
sava1
ну так почему не нравится группировка ?
twilight_dream
вместо ПартнерыСегмента.Сегмент пишем МАКСИМУМ(ПартнерыСегмента.Сегмент) КАК Сегмент

Если не надо по сегменту группировать, пусть так и остается агрегатным полем, а по остальным полям сгруппируйте.
Если надо группировку по сегменту, тогда не особо отличается:
внизу делаем группировку с итогами
Итоги ОБЩИЕ, Сегмент,... например

Вроде в 1С можно и в группировку вставить МАКСИМУМ(ПартнерыСегмента.Сегмент), тогда можно без итогов. Но это пробовать надо.
burza
twilight_dream @ 29.07.18, 22:12 необходимо зарегистрироваться для просмотра ссылки ,
суть в том что в таком способе все попадает в группировку, а мне этого не нужно.
sava1
вместо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПартнерыСегмента КАК ПартнерыСегмента
        ПО ЗаказКлиентаТовары.Ссылка.Партнер = ПартнерыСегмента.Партнер


пишем
ЛЕВОЕ СОЕДИНЕНИЕ (
    Выбрать максимум(Сегмент),
                    Партнер
    ИЗ  РегистрСведений.ПартнерыСегмента КАК ПартнерыСегмента
    Сгруппировать по Партнер
    ) как КАК ПартнерыСегмента
ПО ЗаказКлиентаТовары.Ссылка.Партнер = ПартнерыСегмента.Партнер
burza
sava1 @ Сегодня, 13:36 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо работает) не додумался сделать вложенным и там группировку сделать)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.