Имя: Пароль:
1C
1С v8
ЗиК 8.2 СКД
0 Woiager1984
 
16.09.13
13:46
Добрый день!Подскажите пытаюсь написать небольшой отчет на СКД,нужно чтобы выводился сотрудник и его образование самое высшее,ну т.е если в таблице есть две записи среднее и высшее,то выводить высшее.Сам запрос:

ВЫБРАТЬ
    Axel_ПедагогическиеНагрузки.Сотрудник,
        ФизическиеЛицаОбразование.ВидОбразования
ИЗ
    Документ.Axel_ПедагогическиеНагрузки КАК Axel_ПедагогическиеНагрузки
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
        ПО (ФизическиеЛицаОбразование.Ссылка = Axel_ПедагогическиеНагрузки.Сотрудник.Физлицо)
ГДЕ
    Axel_ПедагогическиеНагрузки.ДатаНачала <= &НачалоПериода
    И Axel_ПедагогическиеНагрузки.ДатаОкончания >= &КонецПериода

Но выводятся данные о всех образованиях.Не знаю как организовать отбор?
1 shuhard
 
16.09.13
13:52
(0) [Не знаю как организовать отбор?]
ГДЕ ФизическиеЛицаОбразование.ВидОбразования=&Высшее
2 Woiager1984
 
16.09.13
14:01
Нет,нужно выбрать высшую ступень в образовании.
3 shuhard
 
16.09.13
14:16
(2) ну и ?
4 SherifSP
 
16.09.13
14:18
Высшая будит самая позжая, сделай сортировку по дате и выбрать Первые 1
5 SherifSP
 
16.09.13
14:20
+(4) По году окончания
6 spu79
 
16.09.13
14:21
лучше добавить временную таблицу, в которой задать индексы для каждого вида образования (выбор когда... ). а потом этот индекс использовать в итоговой таблице для сортировки и/или отбора
7 spu79
 
16.09.13
14:24
+ потом легко будет посчитать кол-во людей с каждым видом образования (вреднее, высшее, уч.степень и т.д.)
8 Woiager1984
 
16.09.13
14:45
Что то подобное?

ВЫБРАТЬ
    СтрокиОбразования.ФизЛицо КАК ФизЛицо,
    ФизическиеЛицаОбразование.ВидОбразования
ПОМЕСТИТЬ ВТОбразованиеФизлиц
ИЗ
    (ВЫБРАТЬ
        МАКСИМУМ(ФизическиеЛицаОбразование.НомерСтроки) КАК НомерСтроки,
        УровниОбразования.ФизЛицо КАК ФизЛицо
    ИЗ
        (ВЫБРАТЬ
            ФизическиеЛицаОбразование.Ссылка КАК ФизЛицо,
            МАКСИМУМ(ВЫБОР
                    КОГДА ФизическиеЛицаОбразование.ВидОбразования = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.ВысшееОбразование)
                        ТОГДА 4
                    КОГДА ФизическиеЛицаОбразование.ВидОбразования = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПрофессиональноеОбразование)
                        ТОГДА 3
                    КОГДА ФизическиеЛицаОбразование.ВидОбразования = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.НачальноеПрофессиональноеОбразование)
                        ТОГДА 2
                    КОГДА ФизическиеЛицаОбразование.ВидОбразования = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПолноеОбщееОбразование)
                        ТОГДА 1
                    ИНАЧЕ -1
                КОНЕЦ) КАК УровеньОбразования
        ИЗ
            Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
        
        СГРУППИРОВАТЬ ПО
            ФизическиеЛицаОбразование.Ссылка) КАК УровниОбразования
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
            ПО УровниОбразования.ФизЛицо = ФизическиеЛицаОбразование.Ссылка
                И (ВЫБОР
                    КОГДА УровниОбразования.УровеньОбразования = 1
                        ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПолноеОбщееОбразование)
                    КОГДА УровниОбразования.УровеньОбразования = 2
                        ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.НачальноеПрофессиональноеОбразование)
                    КОГДА УровниОбразования.УровеньОбразования = 3
                        ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПрофессиональноеОбразование)
                    КОГДА УровниОбразования.УровеньОбразования = 4
                        ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.ВысшееОбразование)
                    ИНАЧЕ """"
                КОНЕЦ = ФизическиеЛицаОбразование.ВидОбразования)
    
    СГРУППИРОВАТЬ ПО
        УровниОбразования.ФизЛицо) КАК СтрокиОбразования
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
        ПО СтрокиОбразования.ФизЛицо = ФизическиеЛицаОбразование.Ссылка
            И СтрокиОбразования.НомерСтроки = ФизическиеЛицаОбразование.НомерСтроки

ИНДЕКСИРОВАТЬ ПО
    ФизЛицо
;

ВЫБРАТЬ
    Axel_ПедагогическиеНагрузки.Сотрудник,
ИЗ
    Документ.Axel_ПедагогическиеНагрузки КАК Axel_ПедагогическиеНагрузки
ГДЕ
    Axel_ПедагогическиеНагрузки.ДатаНачала <= &НачалоПериода
    И Axel_ПедагогическиеНагрузки.ДатаОкончания >= &КонецПериода

Вот только как эти два запроса между собой увязать?
9 spu79
 
16.09.13
16:28
"Персик знаешь? Савсэм не похож" (с) вообще мысль в правильном направлении, но...
10 spu79
 
16.09.13
16:28
На вскидку, как то так

ВЫБРАТЬ
    ВЫБОР
        КОГДА ВидыОбразованияФизЛиц.Ссылка = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПолноеОбщееОбразование)
            ТОГДА 3
        КОГДА ВидыОбразованияФизЛиц.Ссылка = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.ВысшееОбразование)
            ТОГДА 1
        КОГДА ВидыОбразованияФизЛиц.Ссылка = ЗНАЧЕНИЕ(Справочник.ВидыОбразованияФизЛиц.СреднееПрофессиональноеОбразование)
            ТОГДА 2
        ИНАЧЕ 1000
    КОНЕЦ КАК ИндексОбразования,
    ВидыОбразованияФизЛиц.Наименование,
    ВидыОбразованияФизЛиц.Представление,
    ВидыОбразованияФизЛиц.Ссылка
ПОМЕСТИТЬ ВТ_Образование
ИЗ
    Справочник.ВидыОбразованияФизЛиц КАК ВидыОбразованияФизЛиц
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ФизическиеЛицаОбразование.Ссылка КАК ФизЛицо,
    МИНИМУМ(ВТ_Образование.ИндексОбразования) КАК ИндексОбразования
ПОМЕСТИТЬ ВТ_ФЛ_Образование
ИЗ
    ВТ_Образование КАК ВТ_Образование
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
        ПО ФизическиеЛицаОбразование.ВидОбразования = ВТ_Образование.Ссылка

СГРУППИРОВАТЬ ПО
    ФизическиеЛицаОбразование.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ФЛ_Образование.ФизЛицо КАК ФизЛицо,
    ВТ_ФЛ_Образование.ИндексОбразования КАК ИндексОбразования,
    ВЫБОР
        КОГДА ВТ_Образование.ИндексОбразования = 1000
            ТОГДА "Прочее"
        ИНАЧЕ ВТ_Образование.Представление
    КОНЕЦ КАК НаименованиеОбразования
ИЗ
    ВТ_ФЛ_Образование КАК ВТ_ФЛ_Образование
        Левое СОЕДИНЕНИЕ ВТ_Образование КАК ВТ_Образование
        ПО ВТ_ФЛ_Образование.ИндексОбразования = ВТ_Образование.ИндексОбразования

УПОРЯДОЧИТЬ ПО
    НаименованиеОбразования,
    ФизЛицо
ИТОГИ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизЛицо)
ПО
    ОБЩИЕ,
    НаименованиеОбразования
АВТОУПОРЯДОЧИВАНИЕ
11 spu79
 
16.09.13
16:29
в первой таблице есть лишние поля.
накидал в консоли запросов, без СКД