Имя: Пароль:
1C
1С v8
Как в управляемом приложении вместо перечисления в ТЧ вывести картинки?
,
0 AlenkaZu
 
02.08.12
23:40
В справочнике есть табличная часть, один из реквизитов которой перечисление. Как мне в форме элемента справочника сделать так, чтобы вместо колонки с этим перечислением выводилась колонка с картинками?
1 lavryshev
 
02.08.12
23:57
Добавляешь колонку числового типа. В свойствах: вид- поле картинки; картинка значений - коллекция картинок. Саму колонку можно заполнять значением порядка перечисления
2 AlenkaZu
 
03.08.12
00:02
lavryshev, это понятно, колонка у меня есть такая. Вопрос в обработчике какого события ее заполнить?
3 AlenkaZu
 
03.08.12
10:18
Неужели никто не сталкивался? В каком событии можно заполнять колонку, добавленную на форму справочника, значениями, добытыми из другого реквизита ТЧ этого справочника? Ну и при изменении/добавлении данных в ТЧ соответственно тоже?
4 Агент Инфостарта
 
03.08.12
10:29
(3) Ни в каком. Мышью перетаскиваете в колонки табличного поля реквизит или поле реквизита табличной части.
5 shpioleg
 
03.08.12
11:35
(1) Каким образом получить значение порядка перечисления, если тип основного реквизита в форме элемента СправочникОбъект? Был бы динамический список, там все ясно.
6 AlenkaZu
 
03.08.12
12:11
Как сделать это в динамическом списке и ежу понятно! Примеров в типовых конфах тьма. Но мне нужно реквизит табличной части справочника с типом "перечисление" на форме представить в виде картинок. И не просто список вывести, а само собой чтобы юзер туда как обычно мог добавить/копировать/изменить/удалить и т.д, то есть - динамический список не предлагать!
7 AlenkaZu
 
03.08.12
12:13
Агент Инфостарта, какой мышью что перетаскивать??? Если мне у перечисления надо получить порядок, преобразовать его в нужное мне число (где это сделать - вот вопрос!!!)  - и по этому числу получить картинку.
8 Lex_Liven
 
03.08.12
12:22
(7) картинку получать не надо - поле само загрузит ее по числу.
число можно получить в событии ПриИзменении поля с перечислением
9 AlenkaZu
 
03.08.12
12:27
Lex_Liven, пользователь открыл форму, посмотреть - события при изменении не возникает. Я не хочу в справочник запихивать лишний реквизит и хранить его в БД, если число генерится из переччисления.

Удивительно, в обычном приложении даже вопросов бы не возникло как на ходу картинку вывести, да что там в обычном - в семерке даже... А тут... надеюсь, добрый человек таки найдется и раскроет тайну как сделать такую казалось бы элементарную вещь... (((
10 Lex_Liven
 
03.08.12
12:28
(9) А какой тип у реквизита формы, который эту таблицу выводит?
11 AlenkaZu
 
03.08.12
12:33
Lex_Liven, я табличную часть справочника затащила на форму. В реквизитах формы (в окошке справа) предварительно добавила туда еще одну колонку с типом число. Может, как-то по-другому надо?
12 Lex_Liven
 
03.08.12
12:34
Как называется его тип в окошке справа?
13 Lex_Liven
 
03.08.12
12:38
СправочникТабличнаяЧасть.<ИмяСправочника>.<ИмяТабЧасти>?
14 AlenkaZu
 
03.08.12
12:39
таблица
15 AlenkaZu
 
03.08.12
12:42
моя форма - это обычная форма элемента справочника, там это Объект, ну и в нем все реквизиты и табличные части справочника. Да, СправочникТабличнаяЧасть.<ИмяСправочника>.<ИмяТабЧасти>
16 Lex_Liven
 
03.08.12
12:42
Событие Форма.ПриОткрытии

Для Каждого Строка Из ТабЧасть Цикл
 Строка.Картинка = Индекс(Строка.ЗначениеПеречисления);
КонецЦикла;
17 AlenkaZu
 
03.08.12
12:44
Lex_Liven, а если юзер добавил/поменял?
18 Lex_Liven
 
03.08.12
12:45
Тогда уже в поле перечисления ПриИзменении обрабатывать. На ходу не вспомню, как там получить текущую строку
19 AlenkaZu
 
03.08.12
12:54
Lex_Liven, спасибо, я попробую. Если вспомните - дайте знать :)
20 Lex_Liven
 
03.08.12
12:56
Нашел.

ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.Картинка = Индекс(ТекущиеДанные.ЗначениеПеречисления);

Что-то я традиции ломаю - помогаю девушке без фотки :)
21 AlenkaZu
 
03.08.12
13:17
Lex_Liven, я тут редкий гость, мне можно и без фотки. Спасибо.
22 Lex_Liven
 
03.08.12
13:21
Хотя бы отпишитесь потом, получилось/нет.
23 AlenkaZu
 
03.08.12
13:45
Lex_Liven, так, добрались мои ручки до этих картинок! При открытии все чудно! Благодарю! Еще во всякие ПриИзменении осталось, но там помимо картинки куча другого... Надеюсь, тоже сработает...
24 Lex_Liven
 
03.08.12
13:47
*надулся от гордости* Не зря умничаю, хоть кому-то помог. Пожалуйста.
25 shpioleg
 
03.08.12
16:04
(22) Вот так получилось
&НаСервереБезКонтекста
Функция  ПолучитьИндексКартинки(ВидОбъектаСсылка)
   Попытка
       ПорядокПеречисленияКартинка = Новый Структура ("н0,н1,н2,н3",0,1,2,2); //одинаковая картинка 2 для Перечисления 2 и 3
       Возврат ПорядокПеречисленияКартинка["н" + Перечисления.ВидыПунктовНазначения.Индекс(ВидОбъектаСсылка)];
   Исключение
       Возврат 3; //Пустая картинка
   КонецПопытки;
КонецФункции

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
   Для каждого стр из Объект.Топливо Цикл
       стр.ИндексКартинки = ПолучитьИндексКартинки(стр.ВидОбъекта);
   КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ТопливоВидОбъектаПриИзменении(Элемент)
   Элементы.Топливо.ТекущиеДанные.ИндексКартинки = ПолучитьИндексКартинки(Элементы.Топливо.ТекущиеДанные.ВидОбъекта);
КонецПроцедуры

&НаКлиенте
Процедура ТопливоПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
   Элементы.Топливо.ТекущиеДанные.ИндексКартинки = ПолучитьИндексКартинки(Элементы.Топливо.ТекущиеДанные.ВидОбъекта);
КонецПроцедуры

Нормально получается если объединить картинку с перечислением в одной группе с группировкой "В ячейке"
Независимо от того, куда вы едете — это в гору и против ветра!