Соединить строки в СКД. Проблема с пустыми значениями.

1. ipoloskov 164 12.01.19 12:35 Сейчас в теме
В СКД использую функцию СоединитьСтроки(ТаблицаЗначений(КодНеявки,Часы),"; "," ").
Проблема в том, что если в поле Часы - пустая строка "", то в отчет выводится "Б <Пустое значение>".
Как от этого избавиться? Мне нужно выводить "Б" (код неявки).

Или, другой вариант - можно ли сделать так, чтобы при Часы=0 в поле выводилось не "Б 0", а "Б"?
По теме из базы знаний
Найденные решения
3. antz 12.01.19 16:25 Сейчас в теме
Галка "Игнорировать значения NULL" не помогает? Как-то я избавлялся от этого долбаного <пустого значения>, попробую вспомнить.
GonziK_KIV; JinAir7460; Merkalov; wauri; NikieMSE; +5 Ответить
8. NikieMSE 23.12.20 09:39 Сейчас в теме
(7) Это роль в списке полей СКД, на закладке "Набор данных"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 47 12.01.19 13:40 Сейчас в теме
попробуйте isnull и выбор когда тогда иначе конец
3. antz 12.01.19 16:25 Сейчас в теме
Галка "Игнорировать значения NULL" не помогает? Как-то я избавлялся от этого долбаного <пустого значения>, попробую вспомнить.
GonziK_KIV; JinAir7460; Merkalov; wauri; NikieMSE; +5 Ответить
5. NikieMSE 09.06.20 15:55 Сейчас в теме
7. Suslik_Johns 21.12.20 12:25 Сейчас в теме
(5) а где эта галка находится?
8. NikieMSE 23.12.20 09:39 Сейчас в теме
(7) Это роль в списке полей СКД, на закладке "Набор данных"
9. Suslik_Johns 23.12.20 17:26 Сейчас в теме
4. SedovSU@mail.ru 298 12.01.19 22:17 Сейчас в теме
Можно так написать СоединитьСтроки(ТаблицаЗначений(КодНеявки,выбор когда значение заполнено(Часы) тогда часы иначе 0 конец),"; "," ").
OLDMVN; Kovalenko042; +2 Ответить
6. DenisCh 09.06.20 16:35 Сейчас в теме
А я плюнул на эту функцию, и написал свою... Благо конфигурация на поддержке только у меня...
10. KazanKokos 11 23.04.21 10:00 Сейчас в теме
Была проблема. Нужно было собрать три реквизита контрагентов партнера в ут11. получал пустое значение. это не NULL это пустая ссылка и ролью скд не убирается.
Как решил:
сделал для каждого реквизита отдельный набор с отбором в "где" на пустое значение.
11. ntc75 30.01.22 11:29 Сейчас в теме
12. KazanKokos 11 31.01.22 17:32 Сейчас в теме
(11) а что подробнее? В СКД под каждый реквизит подчиненного справочника делаешь отдельный набор данных-запрос и соединяешь их по партнеру.
13. wauri 15.08.23 10:01 Сейчас в теме
У меня получилось в макетах полей подменить.
Выбор Когда Параметр = "<Пустое значение>" тогда "" иначе Параметр Конец
14. Voffffka 29 08.11.23 00:16 Сейчас в теме
Работает. Примерно так:
СтрЗаменить(СтрЗаменить(СоединитьСтроки(Свернуть(ТаблицаЗначений(Колонка1,Колонка2, Колонка3)),"; ","; "), "<Пустое значение>; ", ""), "<Пустое значение>", "")
T.A.Sh.; AZel84; +2 Ответить
15. xzorkiix 35 17.12.24 15:31 Сейчас в теме
(14) Спасибо, помогло

Процедура ЗаполнитьПоляИтогаСхемыКомпоновкиДанных(ИсполняемаяСхема)
	
	Для Каждого ПолеИтога Из ИсполняемаяСхема.ПоляИтога Цикл
		
		Если Не СтрНачинаетсяС(ВРег(СокрЛ(ПолеИтога.Выражение)), ВРег("СоединитьСтроки(")) Тогда
			Продолжить;
		КонецЕсли;
		
		ПутьКДанным = ВРег(ПолеИтога.ПутьКданным); 
		
		Если СтрНайти(ПутьКДанным, "Период") Или СтрНайти(ПутьКДанным, "Дата") Тогда
			СтрокаПоиска = "01.01.0001 0:00:00";
		Иначе
			СтрокаПоиска = "<Пустое значение>";
		КонецЕсли;
		
		Выражение = ПолеИтога.Выражение;
		Выражение = СтрШаблон("СтрЗаменить(%1, ""%2,"", """")", Выражение, СтрокаПоиска);
		Выражение = СтрШаблон("СтрЗаменить(%1, ""%2"", """")", Выражение, СтрокаПоиска);
		ПолеИтога.Выражение = Выражение;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот