Имя: Пароль:
1C
 
Как в СКД проверить в отборе что возвращен пустой массив?
0 Гений 1С
 
гуру
27.06.22
07:54
Использую вычисляемое выражение через функцию общего модуля.
Функция возращает массив.
Как отобрать только те строки, где массив пустой?
Значение не заполнено не прокатывает.
1 Ryzeman
 
27.06.22
07:57
У тебя результат функции идёт в параметр или в поле? Если в поле, то как у тебя массив отображается?..
2 Мимохожий Однако
 
27.06.22
07:57
[ак отобрать только те строки, где массив пустой?] Расшифруй, как это должно выглядеть
3 Гений 1С
 
гуру
27.06.22
08:00
(1) идет в ресурс по функции (Максимум). Отображается штатно списком.
по сути для каждого товара идет список неких свойств. Этот список выдает функция.
Нужно найти те товары, где вообще свойств нет.
4 Гений 1С
 
гуру
27.06.22
08:01
т.е. типо так:
квас А,Б,В
пиво А,Б
водка

Вот нужно отобрать водку, а там пустой массив.

Я добавил еще одну функцию, которая возвращает неопределено, если массив пустой, так вроде должно работать.
Других способов идентифицировать пустой массив нет?
5 Мимохожий Однако
 
27.06.22
08:03
(4) Если массив пустой, то у него количество()=0. Но если тип значения массив
6 Гений 1С
 
гуру
27.06.22
08:04
(5) спасибо КЭП но вопрос не об этом.
7 Ryzeman
 
27.06.22
08:09
Попробуй представление с пустой строкой сранвить я ХЗ
8 Мимохожий Однако
 
27.06.22
09:39
(6) "Кто ж тебя поймёт, если ты ничего не говоришь". Я задал вопрос, ты не ответил. А последний комментарий выглядит хамовато. ИМХО.
9 Fedor-1971
 
27.06.22
10:29
(0) Так сразу и заполни в поле ВнешняяФункция.Количество()
потом добавишь отбор Поле = 0
10 mikecool
 
27.06.22
11:31
а может надо воспользоваться закладкой характеристики?
11 kittystark
 
27.06.22
12:05
пальцем в небо, программно:
КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = новый Массив
не?

или в режиме пользователя отбор: "ТвоеПоле" "содержит" <пустота>
12 kittystark
 
27.06.22
12:06
или даже отбор "ТвоеПоле" "Не заполнено"
13 SleepyHead
 
гуру
27.06.22
12:11
(0) В СКД есть функция ЗначениеЗаполнено(). Не вполне уверен, что она работает с массивами именно в СКД, но, наверное, стоит попробовать.

Ну или в отборе поставить условие типа "Заполнено" на твое поле, которое ты вычисляешь и в котором массив.
14 Гений 1С
 
гуру
27.06.22
12:14
(8) хамовато, потому что лучше промолчать, чем говорить банальности. Как ты количество в массиве на стороне СКД проверять собрался?
15 kittystark
 
27.06.22
12:17
еще идея:
завести свой параметр, в котором выражение возвращает из глоб.модуля пустой массив
в отборе поле сравнивать с параметром
16 Гений 1С
 
гуру
27.06.22
12:19
(15) я уже в принципе, решил, обернув функцию и возвращая неопределено вместо пустого массива. Вопрос скорее на будущее, задротский такой. ;-)
AdBlock убивает бесплатный контент. 1Сергей