|
Взять в запросе максимум от выбор когда: 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) почему нет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |