Картинки в строках дерева значений по условию (8.3)

22.01.19

Разработка - Механизмы платформы 1С

На мой взгляд, простой и удобный способ добавления картинок в строках дерева значений по условию (да и без условия).

Доброго всем времени! Статья для новичков. Хотел бы выложить на мой взгляд простой и удобный способ добавления картинок в строках Дерева значений по условию. Изложенный вариант будет простым примером навскидку. 

// Элементы.ДеревоОбъектовКартинка.КартинкаЗначений
// ПутьКДаннымКартинкиСтроки и КартинкаСтрок 
// установку по ИндексуКартинки использовать мы не будем

Уже имеем форму, на ней ДеревоЗначений с колонками и реквизитами, а также Вашими процедурами и функциями для заполнения дерева значений. В моем случае эта форма, на которой выводится список Документов и Справочников. 

Итак.

Имеем Реквизит ДеревоОбъектов с типом ДеревоЗначений.

Помимо имеющихся колонок в дереве (если таковые имеются), добавляем колонку с именем Картинка и типом Картинка

Далее если хотим, чтобы Картинка была в одной колонке, например, с Наименованием, необходимо добавить на форму группу колонок, добавляем и помещаем в группу наши колонки. (в моем примере колонки дерева, Картинка и ИдентификаторОбъекта).

Настраиваем группу колонок, чтобы наши две колонки (в данном случае ИдентификаторОбъекта и Картинка) были в одной ячейке

На форме поле Картинки будет следующим, устанавливаем положение заголовка - Нет

Сохраним все наши изменения и запустим на исполнение формирование Вашей процедуры или функции для получения результата. (в моем случае в результате это список документов и справочников). Получим результат без добавления картинок.

Как видим, картинок нет. Все верно, потому что мы настроили только внешнее оформление, теперь добавим сами картинки в строки нашего реквизита ДеревоОбъектов.

Давайте для примера реализуем следующее:

Если тип значения документ (строковый параметр, к примеру равен "Документ"), тогда картинка будет выбираться из стандартной библиотеки картинок - Документ, если Справочник, соответственно картинка справочника, иначе ничего не выводим (в смысле саму картинку не выводим).

Создадим простейшую функцию, которая будет возвращать Картинку из стандартной библиотеки по условию, как описали выше:

&НаСервере
Функция ЗаполнитьКартинкуВСтрокуДерева(УсловноеЗначение = Неопределено) 
	СтроковоеЗначение = Строка(УсловноеЗначение);
	Если СтроковоеЗначение = "Документы" Тогда
		Картинка = БиблиотекаКартинок.Документ;
	ИначеЕсли СтроковоеЗначение = "Справочники" Тогда  
		Картинка = БиблиотекаКартинок.Справочник;
	Иначе
		Картинка = "";
	КонецЕсли;
	
	Возврат Картинка;
КонецФункции

Затем в Вашу Процедуру или функцию, в которой происходит заполнение значениями Дерева значений, добавляем простую строчку (при добавлении строки).

//В данном случае в обработке в значении НовыйОбъект.ИдентификаторОбъекта.Родитель - будет Документы не строкового типа
// далее это значение преобразуется в Строку в Функции ЗаполнитьКартинкуВСтрокуДерева()   

НовыйОбъект = СтрокаДерева.Добавить();
НовыйОбъект.Картинка = ЗаполнитьКартинкуВСтрокуДерева(НовыйОбъект.ИдентификаторОбъекта.Родитель);

При добавлении строки в поле колонки Картинка, которое мы добавляли в ДеревоОбъектов с типом ДеревоЗначений, будет добавлена картинка.

Сохраним все наши изменения и запустим на исполнение формирование Вашей процедуры или функции для получения результата (в моем случае в результате это список документов и справочников). Теперь получим результат с добавленными картинками.

 

Если все описать кратко:

  1. Добавляем в реквизит с типом ДеревоЗначений колонку реквизита с типом Картинка.
  2. Размещаем реквизит колонки на форме
  3. В функции или процедуре при добавлении строк в ДеревоЗначений в свойство реквизита колонки присваиваем картинку.

 

P.S.

Вот вроде бы и все, вроде ничего сложного. Если кому помог, буду рад!

картинка картинки в строках дерево значений картинка в строке дерева значений

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    7459    bayselonarrend    20    

154

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    5946    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    17673    YA_418728146    26    

71

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    11226    dsdred    44    

130

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    23763    SeiOkami    48    

135

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    18835    human_new    27    

80

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14734    YA_418728146    7    

166
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3087 22.01.19 17:28 Сейчас в теме
А зачем так извращаться-то? Проще надо быть - и люди к вам потянутся!

У дерева на форме есть свойства "ПутьКДаннымКартинкиСтроки" и "КартинкаСтрок". В поле, куда указывает путь, нужно установить путь, а в поле картинки - просто выбрать картинку с кучей всего на свете (например, "ПиктограммыЭлементов"). Дальше помещать индекс картинки в установленное поле картинки. Профит!

И вообще, пиктограмму в колонку нужно устанавливать запросом. Т.е. конструкция "ВЫБОР КОГДА Условие1 ТОГДА 1 КОГДА Условие2 ТОГДА 2 ИНАЧЕ 3 КОНЕЦ КАК Картинка" спасет отцов и детей русской демократии от западного ига!
Прикрепленные файлы:
almierm; Spacer; user1800274; MikiMausArh; aalu14; adhocprog; LiebeMein; raspopoval; bugagashenka; SergVB; oyeah; adamst; vladimirmatancev; sam441; gelmoriel; sorb; VooDOOPRo; kote; skalex; mivari; tulakin_s; markers; mirco; WizaXxX; Plotks2017; karpik666; awk; ivanov660; CSiER; user774630; wowik; ABudnikov; Shmell; kolya_tlt; Soloist; rpgshnik; json; _Sedoy; fancy; dsdred; Bazil; Diversus; pm74; +43 2 Ответить
2. pm74 203 22.01.19 17:37 Сейчас в теме
(1) коллекция супер
rpgshnik; +1 Ответить
3. gubar 285 23.01.19 03:18 Сейчас в теме
(1)
Элементы.ДеревоОбъектовКартинка.КартинкаЗначений
// ПутьКДаннымКартинкиСтроки и КартинкаСтрок
// установку по ИндексуКартинки использовать мы не будем


Имхо мне больше нравится именно мой способ, но спасибо за вариант. )
DmitryKSL; gtrr34; +2 1 Ответить
15. user774630 23.01.19 14:57 Сейчас в теме
(1) +1
А кому интересно - посмотреть рабочий пример можно в 1С:СППР. Там как раз дерево метаданных так и визуализировано (т.е. справочник, представляющий метаданные конфигураций.
21. markers 277 24.01.19 05:04 Сейчас в теме
Простите, не удержался. Мне забавно смотреть на такой код, который за любой мелочью лезет на сервер да ещё и с контекстом! Простите, зачем тут контекст?
&НаСервере
Функция ЗаполнитьКартинкуВСтрокуДерева(УсловноеЗначение = Неопределено) 
	СтроковоеЗначение = Строка(УсловноеЗначение);
	Если СтроковоеЗначение = "Документы" Тогда
		Картинка = БиблиотекаКартинок.Документ;
	ИначеЕсли СтроковоеЗначение = "Справочники" Тогда  
		Картинка = БиблиотекаКартинок.Справочник;
	Иначе
		Картинка = "";
	КонецЕсли;
	
	Возврат Картинка;
КонецФункции
Показать

А потом удивляются, почему их код тормозит при клиент-серверном взаимодействии, особенно если клиент удаленно разнесен с сервером и не говоря уже о том, что у клиента может быть слабый интернет... Этим даже сама 1С порой страдает...
Пожалуйста, прочитайте замечательную статью про клиент-серверное взаимодействие https://infostart.ru/public/682305/
Так-же, вы прекрасно можете кешировать картинку на клиенте, получив с сервера только нужный набор картинок для группы и элемента, а затем на клиенте уже вставляя картинку куда надо.
Но вообще, как и сказали в (1) правильней использовать ПутьКДаннымКартинкиСтроки, и при таком варианте появляется действительно крутая возможность, определять картинку сразу в запросе не производя ни-каких постобработок результатов запроса.
Старайтесь думать не о быстроте работы на тестовом компьютере,а том как это будет лучше, и не будут эти места, точкой тормозов при клиент-серверном взаимодействии. Я вот тоже давиче выкатил в прод не оптимальный запрос, у меня всё работало как положено, в центральной базе на сервере с SQL тоже всё было хорошо, но вот РИБ узлы, "оценили" этот кривой запрос. Но то моя вина (поспешил, не проверил обстоятельно).
Собственно на ошибках учатся, я очень надеюсь в этом на вас!
adamst; Artem-B; vladimirmatancev; VooDOOPRo; A_Max; rpgshnik; mivari; pavlov_dv; tulakin_s; +9 Ответить
28. adamst 3 05.11.20 21:24 Сейчас в теме
(21)хорошее замечание, без контекста ... правильнее тем более что без него прекрасно работать будет, правда не понятно что плохого будет если эту процедуру вызывать из серверной другой процедуры, если заполнение дерева проходит на сервере.
23. w.r. 650 24.01.19 11:43 Сейчас в теме
(1)
олонку нужно устанавливать запросом. Т.е. конструкция "ВЫБОР КОГДА Условие1 ТОГДА 1 КОГДА Условие2 ТОГДА 2 ИНАЧЕ 3 КОНЕЦ КАК Картинка" спасет отцов и детей русской демократии от западного ига!


Для примера автора я бы сделал через СКД внешнюю функцию ОбщегоНазначения.ВидОбъектаПоТипу и дерево значений примерно так

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ТекстЗапросаКомпоновки= 
	   "ВЫБРАТЬ
	   |	АктОбОказанииУслуг.Ссылка КАК Ссылка
	   |ИЗ
	   |	Документ.АктОбОказанииУслуг КАК АктОбОказанииУслуг
	   |
	   |ОБЪЕДИНИТЬ ВСЕ
	   |
	   |ВЫБРАТЬ
	   |	Номенклатура.Ссылка
	   |ИЗ
	   |	Справочник.Номенклатура КАК Номенклатура";
	
	ДеревоРезультата = Новый ДеревоЗначений;
	
	СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
	
	ИсточникДанных=СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
	ИсточникДанных.Имя="ИсточникДанных";
	ИсточникДанных.ТипИсточникаДанных="Local";
	
	НаборДанныхЗапрос=СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
	НаборДанныхЗапрос.Имя="НаборДанных1";
	НаборДанныхЗапрос.Запрос=ТекстЗапросаКомпоновки;
	НаборДанныхЗапрос.ИсточникДанных="ИсточникДанных";
	
	ПолеСсылка=НаборДанныхЗапрос.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
	ПолеСсылка.Поле="Ссылка";
	ПолеСсылка.ПутьКДанным="Ссылка";
	
	ПолеКартинка = СхемаКомпоновкиДанных.ВычисляемыеПоля.Добавить();
	ПолеКартинка.ПутьКДанным = "Картинка";                                                                
	ПолеКартинка.Выражение = "выбор 
							 |когда ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗначения(Ссылка)) = ""Документ"" тогда 0 
							 |когда ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗначения(Ссылка))  = ""Справочник"" тогда 1 
							 |конец";
	
	ПолеОбъект = СхемаКомпоновкиДанных.ВычисляемыеПоля.Добавить();
	ПолеОбъект.ПутьКДанным = "Объект";
	ПолеОбъект.Выражение = "ОбщегоНазначения.ВидОбъектаПоТипу(ТипЗначения(Ссылка))";
	
	НастройкаКомпоновки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
	ГруппировкаОбъект=НастройкаКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
	
	ПолеОбъект=ГруппировкаОбъект.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
	ПолеОбъект.Поле=Новый ПолеКомпоновкиДанных("Объект");	
	ГруппировкаОбъект.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));

	ГруппировкаВложеная = ГруппировкаОбъект.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
	ПолеСсылка=ГруппировкаВложеная.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
	ПолеСсылка.Поле=Новый ПолеКомпоновкиДанных("Ссылка");
	ПолеКартинка=ГруппировкаВложеная.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
	ПолеКартинка.Поле=Новый ПолеКомпоновкиДанных("Картинка");
	ГруппировкаВложеная.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
	
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкаКомпоновки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,,Истина);
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(ДеревоРезультата);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	ЗначениеВРеквизитФормы(ДеревоРезультата, "Дерево");
	
КонецПроцедуры
Показать
Olenevod; +1 Ответить
25. rpgshnik 3795 25.01.19 04:19 Сейчас в теме
Предлагаю автору статьи отметить первый комментарий кнопкой "ЛУЧШИЙ".
4. json 3349 23.01.19 11:41 Сейчас в теме
Резюме данной статьи:
Чтобы вывести картинку в строке таблицы - используй тип Картинка.
(с) Кэп
5. gubar 285 23.01.19 11:43 Сейчас в теме
24. Alien_job 190 24.01.19 16:04 Сейчас в теме
(4) Как бы хотелось, чтобы это было смешно. Но иногда чтобы вывести картинку нужно использовать хранилище и строку.
6. w.r. 650 23.01.19 12:32 Сейчас в теме
Это получается каждую строку дерева нужно обработать функцией ЗаполнитьКартинкуВСтрокуДерева? А если строк в дереве 50-100 тыс или больше?
9. rpgshnik 3795 23.01.19 13:01 Сейчас в теме
(6) выше сказано что это ИМХО %)
17. gubar 285 23.01.19 16:09 Сейчас в теме
(6)

В чем проблема заполнить картинку 16х16 - 50 тыс строк?
7. alex15650 212 23.01.19 12:56 Сейчас в теме
На самом деле, зачем изобретать велосипед. Это делается штатными механизмами без написания кода. В дереве значений (или таблице) делаем специальный реквизит числового типа с индексом картинки в коллекции, когда этот реквизит переносим на форму, ставим ему вид "Поле картинки" и заполняем свойство "Картинка значений". А сам индекс картинки заполняем любым удобным способом в зависимости от условий. Всё. Тут главное иметь в наличии нужную коллекцию картинок.
Spacer; LiebeMein; adamst; robix; PitonTBs; kote; +6 Ответить
8. gubar 285 23.01.19 13:00 Сейчас в теме
(7)

Вот дело в том что в наличии коллекции картинок нет, но нужно вывести картинку (один из способов). Так конечно штатными средствами. Это для пример и ничего больше).
10. karpik666 3851 23.01.19 13:48 Сейчас в теме
Как-то даже грустно, что такие вещи пользуются популярностью, или сейчас видимо на Инфостарте дефицит статей для программистов, и засисилие графомании, а на безрыбье...
Spacer; robix; kote; rpgshnik; json; gzharkoj; +6 2 Ответить
11. Evg-Lylyk 4841 23.01.19 13:50 Сейчас в теме
Поддержу автора, описанный способ более удобен по сравнению с коллекцией картинок.
Работа с картинками происходит более рационально.
Примеры: Добавить в коллекцию картинку из библиотеки проблемно, нельзя использовать картинку коллекции как отдельную.
gubar; frkbvfnjh; +2 1 Ответить
12. starik-2005 3087 23.01.19 14:28 Сейчас в теме
(11)
нельзя использовать картинку коллекции как отдельную
Можно. Просто заполните индекс этой картинки в соответствующем реквизите.
Spacer; rpgshnik; +2 Ответить
13. Evg-Lylyk 4841 23.01.19 14:41 Сейчас в теме
(12) А если это картинка декорация на форме, картинка кнопки или элемент другой коллекции
или ее нужно вставить в справку.
14. starik-2005 3087 23.01.19 14:47 Сейчас в теме
(13) а что, у вас на компьютере удалили паинт? Не совсем понятен также контекст - с какой целью элемент коллекции нужно отображать в виде декорации? У большинства элементов приведенной мной коллекции есть отдельные картинки. А по поводу справки, то лучше копировать часть интерфейса, а не отдельную картинку. И уже описывать эту часть словами. Но т.к. пользователи все меньше понимают слова, то вместо встроенной в 1С справки лучше записать видео - тогда проблем с картинками в справке вообще не будет.
Spacer; rpgshnik; +2 Ответить
19. Evg-Lylyk 4841 23.01.19 17:04 Сейчас в теме
(14) Еще раз поподробнее.
Публикация уместна при этом проста. Сам я где то около года назад столкнулся с новым методом. Судя по комментариям и плюсам много староверов.

КоллекцияКартинок и Индекс картинки такой подход использовался только Таблицы и Дерева и не знаю где еще, а вот картинка повсеместно. Теперь же можно за него забыть.
В новом подходе плюс что не нужно использовать коллекции не происходит дублирования картинки одиночной и внутри коллекции.
Лично для меня состовляет проблему сделать корректную картинку с прозрачностью внутри коллекции иногда негде взять иногда прозрачность краев на глаз.
Сейчас 1с начинает использовать картинки zip когда внутри картинки для разных размеров в старом подходе с этим проблемы.
Когда таблица имеет 3 колонки с картинками в старом подходе проблемы
Новый подход более читабелен прямо в коде написано
Если Документ.ПометкаУдаления Тогда
Картинка = БиблиотекаКартинок.ДокументПомеченныйНаУдаление
КонецЕсли;
в старом подходе
Если Документ.ПометкаУдаления Тогда
Индекс = 15;
КонецЕсли;

"с какой целью элемент коллекции нужно отображать в виде декорации"
Нужно достаточно часто. В бух.3 есть в форме документа картинка Проведен, НеПроведен, ПомеченНаУдаление

"У большинства элементов приведенной мной коллекции есть отдельные картинки." дублирование картинок

Новый подход удобнее в разработке для себя не заметил плюсов старого похода.
Gorus; unichkin; gubar; +3 1 Ответить
18. gubar 285 23.01.19 16:09 Сейчас в теме
(11)

Спасибо добрый человек.
16. androgin 23.01.19 15:41 Сейчас в теме
Велосипед
Spacer; rpgshnik; Plotks2017; +3 2 Ответить
20. AlexKo84 23.01.19 17:56 Сейчас в теме
Можно получать картинку из макета двоичных данных

&НаСервере
Функция ПолучитьКартинкуИзМакетаНаСервере(ИмяМакета)
	обк = РеквизитФормыВЗначение("Объект");
	Макет = обк.ПолучитьМакет(ИмяМакета);
	
	Картинка = Новый Картинка(Макет);
	
	Возврат Картинка;
КонецФункции
Показать
Olenevod; +1 Ответить
22. Evg-Lylyk 4841 24.01.19 10:21 Сейчас в теме
(0) Автор исправьте функцию получения картинки можно сделать чтобы работала на клиенте с учетом сообщения 21
А то опять начинается что лучше ПутьКДаннымКартинки )
26. rwn_driver 9 25.01.19 10:12 Сейчас в теме
Добрый день.
Куда исчезло сообщение 21?
27. adamst 3 05.11.20 21:18 Сейчас в теме
чего все ругаются, рабочий вариант :) если вызывать процедуру "на сервере без контекста" то работает совсем не плохо, тем более если вызывать из процедуры которая уже выполняется на сервере, с клиента я бы не рискнул.
Тем более только благодаря автору статьи я прочитал комментарии как правильно делать:
из первого комментария: "... хотя этот способ "У дерева на форме есть свойства "ПутьКДаннымКартинкиСтроки" и "КартинкаСтрок". В поле, куда указывает путь, нужно установить путь, а в поле картинки - просто выбрать картинку с кучей всего на свете (например, "ПиктограммыЭлементов")."
понятно что этот вариант более эффективный, и наверняка сделан для наиболее быстрого выполнения, действительно в запросе можно его отработать и будет вообще очень производительный вариант.
29. FatPanzer 05.11.20 21:33 Сейчас в теме
Кто-то серьезно решил под каждое уникальное дерево рисовать отдельную функцию для установки картинки? Под дерево метаданных - одну функцию, под дерево связанных документов - другую, под статусы задач - третью...
Серьезно?
Или написать одну метаглобальную функцию с тысячей ИНАЧЕЕСЛИ по количеству имеющихся в конфигурации картинок? И запускать в нее таблицу с тысячей строк?

Ну ребята, ну вы даёте... И все из-за того, что кому-то жалко пару килобайт на коллекцию картинок в дереве метаданных... Дублирование, видите, ли...
30. devonec_team 36 13.11.20 19:49 Сейчас в теме
спасибо автору за статью, узнал несколько способов как это сделать.
adhocprog; +1 Ответить
31. DimaBr 20.05.22 23:10 Сейчас в теме
32. UtSpar 137 10.06.22 17:19 Сейчас в теме
Время вывода строк таблицы значений очень увеличивается из того что он устанавливает картинку для каждой строки.
33. gtrr34 7 17.01.24 18:33 Сейчас в теме
Спасибо автору от новичка! Заполнял программно дерево метаданными и такой способ установки картинок очень быстр в реализации по сравнению с "ПутьКДаннымКартинкиСтроки" и "КартинкаСтрок". Пошел разбираться, как третий уровень со свойствами вывести :)
34. Mahon83 13 09.07.24 18:18 Сейчас в теме
Спасибо за удобный способ!
внесу свою лепту в ветку
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполнитьКартинкуВСтрокуДерева(УсловноеЗначение = Неопределено) 
	
	Если УсловноеЗначение = Неопределено Тогда
		Возврат "";
	КонецЕсли;

	Картинки = Новый Структура;
	Картинки.Вставить("Документы", БиблиотекаКартинок.Документ);
	Картинки.Вставить("Справочники", БиблиотекаКартинок.Справочник); 
	
	СтроковоеЗначение = Строка(УсловноеЗначение);
	
	Возврат Картинки[СтроковоеЗначение]; 
	
КонецФункции
Показать
Оставьте свое сообщение