Добавить колонку в Форму списка для вывода картинки

1. Vitaly1C8 29.09.20 11:22 Сейчас в теме
Всем привет !
Прошу помощи в реализации следующей задачи: есть Форма списка справочника;
Необходимо добавить колонку в которой выводить картинку;
Проблема заключается в том, что значение этой колонки вычисляемое (от Список.Ссылка) и не может быть получено в Запросе (Список)
Как быть в этой ситуации ?
По теме из базы знаний
Найденные решения
15. SlavaKron 29.09.20 12:31 Сейчас в теме
Рисуйте что хотите в ПриПолученииДанныхНаСервере
Vitaly1C8; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 129 29.09.20 11:29 Сейчас в теме
(1) что за вычисляемое поле которое не получить в запросе?
3. Vitaly1C8 29.09.20 11:36 Сейчас в теме
(2) Речь идет о "статусе" Внутреннего документа, - который может принимать комбинированное значение из:
Новый; Уже согласован; На согласовании; Положительно; Отрицательно;
А вычисление этих статусов невозможно выполнить внутри запроса списка (по-крайней мере при беглом взгляде)
4. ZergKRSK 129 29.09.20 11:38 Сейчас в теме
(3) подозреваю что статус хранится в регистре сведений ? Уверен можно достать без проблем.
5. Vitaly1C8 29.09.20 11:51 Сейчас в теме
(4) это не тот статус; нужно брать вычисляемый, а не из регистра
6. ZergKRSK 129 29.09.20 11:58 Сейчас в теме
(5) вы как его вычисляете можно узнать?
7. Vitaly1C8 29.09.20 12:05 Сейчас в теме
(6) вычисление происходит так: есть функция
Функция ПечатьЛистаСогласованияИзДокумента(МассивОбъектов, ОбъектыПечати, вчОсобыйВызовДляПроверки=Неопределено) Экспорт 

При вызове с вчОсобыйВызовДляПроверки=Истина она возвращает "Согласовано/Не согласовано"
Статусы "Новый; Уже согласован; На согласовании;" вычисляются в другом месте с учетом "Согласовано/Не согласовано"; Никак в запрос эту логику не вставить ...
8. ZergKRSK 129 29.09.20 12:05 Сейчас в теме
10. Vitaly1C8 29.09.20 12:22 Сейчас в теме
(8) Функция выводит на печать лист согласования с учетом предыдущего цикла согласования;
Особый параметр - сообщает функции вернуть всё ли согласовано, вместо вывода ТабДокумента;
Так обеспечивается гарантия, что полученный Статус соответствует Листу согласования - который был распечатан (с учетом предыдущих циклов согласования)
12. ZergKRSK 129 29.09.20 12:23 Сейчас в теме
(10) я стараюсь помочь но вы меня не слушаете. В теле функции наверняка есть код который извлекает статус из регистра.
13. Vitaly1C8 29.09.20 12:29 Сейчас в теме
(12) та же история !
Вы пытаетесь помочь вставить Статус из регистра, а по условию задачи этого не требуется !
14. ZergKRSK 129 29.09.20 12:31 Сейчас в теме
(13) я пытаюсь донести до вас информацию что надо посмотреть код функции и понять как же определяется этот статус. И вполне допускаю что статус как раз в регистре и хранится.
9. FatPanzer 29.09.20 12:09 Сейчас в теме
(7) То есть реального актуального статуса нигде не хранится? А надо бы... в какой-нить РС, и обновлять его хоть подпиской, хоть регзаданием... И тогда уже и в запросе вычислять не придётся...
11. Vitaly1C8 29.09.20 12:23 Сейчас в теме
(9) На данный момент реальный статус можно получить только через вызов ПечатьЛистаСогласованияИзДокумента(Ссылка, ...)
16. FatPanzer 29.09.20 14:48 Сейчас в теме
(11) И каким же макаром этот статус вычисляется в этом вызове?
15. SlavaKron 29.09.20 12:31 Сейчас в теме
Рисуйте что хотите в ПриПолученииДанныхНаСервере
Vitaly1C8; +1 Ответить
17. Vitaly1C8 29.09.20 15:39 Сейчас в теме
(15) Есть какой-нибудь пример ?
18. SlavaKron 29.09.20 17:10 Сейчас в теме
(17) Как таковые картинки в оформлении строки ДС не вывести, но можно использовать шрифты Wingdings или Webdings для вывода каких либо символов:
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	Для Каждого КлючИЗначение Из Строки Цикл 
		Если КлючИЗначение.Значение.Оформление.Получить("КолонкаСтатус") = Неопределено Тогда
			Возврат
		КонецЕсли;
		Прервать;
	КонецЦикла;
	
	Для Каждого КлючИЗначение Из Строки Цикл
		
		СтрокаСписка = КлючИЗначение.Значение;
		Ссылка = КлючИЗначение.Ключ;
		
		// вычисляем статус
		Статус = "Ок";
		
		Оформление = СтрокаСписка.Оформление["КолонкаСтатус"];
		Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт("Wingdings", , Истина));
		
		Если Статус = "Ок" Тогда
			
			Оформление.УстановитьЗначениеПараметра("Текст", Символ(252));
			Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый);
			
		ИначеЕсли Статус = "" Тогда
			
			//...
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
ВнешняяОбработка2.epf
Vitaly1C8; +1 Ответить
Оставьте свое сообщение

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