|   |   | 
| 
 | Взять в запросе максимум от выбор когда: 2 случая, один - проблемный | ☑ | ||
|---|---|---|---|---|
| 0
    
        Irkutsk 28.09.23✎ 21:45 | 
        Вот это взрывается, а если максимум убрать, то в конструкторе не дает в суммируемое поле добавить строку с "выбор когда":
 ВЫБРАТЬ ПЕРВЫЕ 20 АнкетаАбитуриентаКонтактнаяИнформация.Ссылка.ФизЛицо КАК ФизЛицо, Максимум(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентАдресПроживания) ТОГДА АнкетаАбитуриентаКонтактнаяИнформация.Представление ИНАЧЕ "" КОНЕЦ) КАК АдресПроживания ИЗ Документ.АнкетаАбитуриента.КонтактнаяИнформация КАК АнкетаАбитуриентаКонтактнаяИнформация Ошибка: Неверные параметры "МАКСИМУМ" максимум(<<?>>ВЫБОР А вот это работает: ВЫБРАТЬ МАКСИМУМ(ВЫБОР КОГДА ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПроживания) ТОГДА ФизическиеЛицаКонтактнаяИнформация.Представление ИНАЧЕ "" КОНЕЦ) КАК АдресПроживания, МАКСИМУМ(ВЫБОР КОГДА ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПроживания) ТОГДА ФизическиеЛицаКонтактнаяИнформация.Представление ИНАЧЕ "" КОНЕЦ) КАК АдресПоПрописке, МАКСИМУМ(ВЫБОР КОГДА ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.Телефон) ТОГДА ФизическиеЛицаКонтактнаяИнформация.Представление ИНАЧЕ "" КОНЕЦ) КАК Телефон, ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Ссылка ИЗ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация СГРУППИРОВАТЬ ПО ФизическиеЛицаКонтактнаяИнформация.Ссылка Скрин: https://picshare.ru/image/NsvG0 Скажите, пожалуйста, что неправильно сделал в первом случае? И как все же мне сгруппировать строки. Это для задачи транспонирования таблицы контактной информации в строку. | |||
| 1
    
        Donkey_hot 28.09.23✎ 23:18 | 
        (0) Для чего Вам эти танцы с ВЫБОРом? Выберите сначала во временную таблицу только контактную информацию интересующего Вас вида, а потом делайте с ней что хотите (как частный случай - можете снова соединить с основной таблицей документа).     | |||
| 2
    
        Donkey_hot 28.09.23✎ 23:24 | 
        (0) Если так уж хочется именно этим способом решить, попробуйте ВЫРАЗИТЬ(ТаблицаКИ.Представление КАК Строка(100)), но лучше сразу привыкать писать запросы с прицелом на то, что их кто-то потом будет дорабатывать. Даже если в конкретном случае этого не предполагается.     | |||
| 3
    
        Staffa 29.09.23✎ 08:18 | 
        (0) В первом случае забыли сгруппировать по ФизЛицо. Максимум() - группировочная функция.     | |||
| 4
    
        НафНаф 29.09.23✎ 08:26 | 
        Представление - свойство/поле, вычисляемое в 1С, а не в СУБД, поэтому с ним нельзя производить действия внутри запроса - получать максимумы, сравнивать, упорядочивать и т.п.     | |||
| 5
    
        Irkutsk 29.09.23✎ 09:11 | 
        (4) Представление в данном случае - это просто строка, насколько я понимаю.
 Вот как она выглядит: https://picshare.ru/image/Nsw7l Строка неограниченной длины. | |||
| 6
    
        Irkutsk 29.09.23✎ 09:12 | 
        (3) Не забыл, просто сюда не привел. Я привел только имеющую отношение к делу часть запроса.
 Ошибка-то вон как звучит - про максимум она. | |||
| 7
    
        Irkutsk 29.09.23✎ 09:37 | 
        ВЫБРАТЬ
 АнкетаАбитуриентаКонтактнаяИнформация.Ссылка.ФизЛицо КАК ФизЛицо, максимум(выразить(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентАдресПроживания) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ как строка(100))) КАК АдресПроживания, максимум(выразить(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентАдресПоПрописке) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ как строка(100))) КАК АдресПоПрописке, максимум(выразить(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентТелефон) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ как строка(100))) КАК Телефон ИЗ Документ.АнкетаАбитуриента.КонтактнаяИнформация КАК АнкетаАбитуриентаКонтактнаяИнформация сгруппировать по АнкетаАбитуриентаКонтактнаяИнформация.Ссылка.ФизЛицо Вот так сработало. Но это похоже на почерк восьмиклассника. Я не могу понять, что тут происходит. Платформа 8.3.23.1739. Тут еще должна быть функция Стрка. Но она не работает. | |||
| 8
    
        Irkutsk 29.09.23✎ 09:41 | 
        Иначе говоря, вот так не работает с той же ошибкой про максимум:
 ВЫБРАТЬ АнкетаАбитуриентаКонтактнаяИнформация.Ссылка.ФизЛицо КАК ФизЛицо, максимум(строка(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентАдресПроживания) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ)) КАК АдресПроживания, максимум(строка(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентАдресПоПрописке) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ)) КАК АдресПоПрописке, максимум(строка(ВЫБОР КОГДА АнкетаАбитуриентаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АбитуриентТелефон) ТОГДА Строка(АнкетаАбитуриентаКонтактнаяИнформация.Представление) ИНАЧЕ "" КОНЕЦ)) КАК Телефон ИЗ Документ.АнкетаАбитуриента.КонтактнаяИнформация КАК АнкетаАбитуриентаКонтактнаяИнформация сгруппировать по АнкетаАбитуриентаКонтактнаяИнформация.Ссылка.ФизЛицо | |||
| 9
    
        НафНаф 29.09.23✎ 10:26 | 
        (5) ах это у вас собственный реквизит, зря назвали по аналогии с платформенным. Но да, у строк неограниченнной длины нельзя брать МАКСИМУМ     | |||
| 10
    
        Irkutsk 29.09.23✎ 10:52 | 
        Это типовая конфигурация 1С Колледж ПРОФ, редакция 2.1 (2.1.12.1).
 Согласен, неудачное название реквизита. Скажите, пожалуйста, какая функция в запросе может преобразовать строку неограниченной длины в строку с длиной по количеству знаков в строке? Выразить как строка(100) - это как-то не комильфо. | |||
| 11
    
        Donkey_hot 29.09.23✎ 11:09 | 
        (10) Поступить так, как написано в (1) - тоже не comme il faut?     | |||
| 12
    
        НафНаф 29.09.23✎ 12:24 | 
        (10) почему нет?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |