Имя: Пароль:
1C
1С v8
Тренажер по запросам от IT-Решения не пропускает ответ.
🠗 (piter3 03.02.2022 14:22)
0 brenli
 
03.02.22
14:19
Всем добра.
Решил пройти все задания на тренажере запросов от IT-Решения,
и встрял на 64 задаче.
Пронумеровать уникальные пары {Производитель, ТипОборудования} из регистра сведений Оборудование, упорядочив их следующим образом:
- Наименование производителя по возрастанию;
- ТипОборудования в порядке Компьютеры, Ноутбуки, Принтеры.
Если некий производитель выпускает несколько типов оборудования, то выводить его имя только в первой строке. Остальные строки для ТАКОГО производителя должны содержать пустую строку символов ("").
Вывод: Номер (порядковый номер строки), Производитель (наименование производителя, либо ""), ТипОборудования.

https://disk.yandex.ru/i/JBLIl80C11LfCw

Ответ совпадает с эталоном, но решение не принимается.
1 Kuzmich123
 
03.02.22
14:21
(0) ну уж если начал рекламировать тренажер, то рекламируй до конца. что за зверь, с чем едят?
2 brenli
 
03.02.22
14:21
3 brenli
 
03.02.22
14:25
(2) + для создания своего пользователя логинимся под имемеи Guest
4 Ненавижу 1С
 
гуру
03.02.22
14:27
(0) ну может на эталоне проходит, а другие тесты нет
5 brenli
 
03.02.22
14:31
(4) Я не знаю алгоритм по которому выполняется проверка. Никаких этапов или тестов нету.
6 Ненавижу 1С
 
гуру
03.02.22
14:40
(5) давай уже свое решение, не стесняйся
7 brenli
 
03.02.22
14:42
(6)


ВЫБРАТЬ РАЗЛИЧНЫЕ
    Производитель,
    ТипОборудования

ПОМЕСТИТЬ ВТ_ПроизводителиИТипы    
ИЗ
    РегистрСведений.Оборудование КАК т1
;

ВЫБРАТЬ
        ВЫБОР      КОГДА т1.ТипОборудования.Наименование = "Компьютеры" ТОГДА  1   ИНАЧЕ
        ВЫБОР КОГДА  т1.ТипОборудования.Наименование = "Ноутбуки" ТОГДА   2   ИНАЧЕ 3
        КОНЕЦ
        КОНЕЦ КАК Группировка,
    ВЫБОР
        КОГДА т1.ТипОборудования.Наименование = "Ноутбуки" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Компьютеры") ТОГДА  
                               ВЫБОР
                    КОГДА   т1.ТипОборудования.Наименование = "Принтеры" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Компьютеры") ИЛИ  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Ноутбуки ") ТОГДА  ""
            КОНЕЦ
        ИНАЧЕ
               ВЫБОР
        КОГДА т1.ТипОборудования.Наименование = "Принтеры" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Компьютеры") ТОГДА  
                               ВЫБОР
                    КОГДА   т1.ТипОборудования.Наименование = "Ноутбуки" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Компьютеры") ИЛИ  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                     
                              ТипОборудования.Наименование = "Принтеры") ТОГДА  ""
            КОНЕЦ
        ИНАЧЕ
            т1.Производитель
    КОНЕЦ
    КОНЕЦ КАК Производитель,
    т1.ТипОборудования
ПОМЕСТИТЬ ВТ_ВремТЗ
ИЗ
    ВТ_ПроизводителиИТипы    КАК т1
;
ВЫБРАТЬ
        ВЫБОР      КОГДА т1.ТипОборудования.Наименование = "Компьютеры" ТОГДА  1   ИНАЧЕ
        ВЫБОР КОГДА  т1.ТипОборудования.Наименование = "Ноутбуки" ТОГДА   2   ИНАЧЕ 3
        КОНЕЦ
        КОНЕЦ КАК Группировка,
        т2.Производитель,
        т1.ТипОборудования,
        т1.Производитель КАК ПроизводительДляГруппировки
ПОМЕСТИТЬ ВТ_ВремТЗ_2
ИЗ
ВТ_ПроизводителиИТипы КАК т1
ЛЕВОЕ  СОЕДИНЕНИЕ
ВТ_ВремТЗ КАК т2
ПО т1.ТипОборудования =  т2.ТипОборудования И т1.Производитель =  т2.Производитель
;
ВЫБРАТЬ
КОЛИЧЕСТВО(т2.ПроизводительДляГруппировки) КАК Номер,
т1.Производитель.Наименование КАК Производитель,
т1.ТипОборудования.Наименование КАК ТипОборудования
ИЗ
    ВТ_ВремТЗ_2 КАК т1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    ВТ_ВремТЗ_2 КАК т2
ПО
    т1.ПроизводительДляГруппировки.Наименование + т1.ТипОборудования.Наименование >= т2.ПроизводительДляГруппировки.Наименование + т2.ТипОборудования.Наименование
СГРУППИРОВАТЬ ПО т1.Производитель, т1.ПроизводительДляГруппировки, т1.ТипОборудования
УПОРЯДОЧИТЬ ПО Номер ВОЗР
8 brenli
 
03.02.22
15:03
Пардон за кипишь.
Задание решил. Два дня сидел над ним бошку ломал.
На мисте написал и пришло озарение ))


ВЫБРАТЬ РАЗЛИЧНЫЕ
    Производитель,
    ТипОборудования

ПОМЕСТИТЬ ВТ_ПроизводителиИТипы    
ИЗ
    РегистрСведений.Оборудование КАК т1
;

ВЫБРАТЬ
    КОЛИЧЕСТВО(т2.Производитель)  КАК Номер,
    т1.Производитель,
    т1.ТипОборудования
ПОМЕСТИТЬ  ВТ_ВремТЗ
ИЗ
        ВТ_ПроизводителиИТипы КАК т1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ВТ_ПроизводителиИТипы КАК т2
ПО    т1.Производитель.Наименование + т1.ТипОборудования.Наименование >=  т2.Производитель.Наименование + т2.ТипОборудования.Наименование
СГРУППИРОВАТЬ ПО     т1.Производитель,     т1.ТипОборудования // Сгруппируем и упорядочим результат
;
ВЫБРАТЬ
Номер,
ВЫБОР
        КОГДА т1.ТипОборудования.Наименование = "Ноутбуки" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Компьютеры") ТОГДА  
                               ВЫБОР
                    КОГДА   т1.ТипОборудования.Наименование = "Принтеры" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Компьютеры") ИЛИ  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Ноутбуки ") ТОГДА  ""
            КОНЕЦ
        ИНАЧЕ
               ВЫБОР
        КОГДА т1.ТипОборудования.Наименование = "Принтеры" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Компьютеры") ТОГДА  
                               ВЫБОР
                    КОГДА   т1.ТипОборудования.Наименование = "Ноутбуки" И  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Компьютеры") ИЛИ  т1.Производитель В (ВЫБРАТЬ Производитель ИЗ ВТ_ПроизводителиИТипы  ГДЕ                      
                              ТипОборудования.Наименование = "Принтеры") ТОГДА  ""
            КОНЕЦ
        ИНАЧЕ
            т1.Производитель.Наименование
    КОНЕЦ
    КОНЕЦ КАК Производитель,
    ТипОборудования.Наименование КАК ТипОборудования

ИЗ
    ВТ_ВремТЗ КАК т1
УПОРЯДОЧИТЬ ПО Номер