Имя: Пароль:
1C
1C 7.7
v7: Как загрузить картинку на форму
0 Andy3626603
 
13.05.14
14:02
Есть форма. На ней определенное количество картинок: Картинка1, Картинка2... и т.д.
Можно ли загрузить изображения не перечисляя их все вручную типа Картинка1.Загрузить(ФайлИзображения), а в цикле, обращаясь к реквизиту формы, что то вроде Форма.ПолучитьАтрибут("Картинка"+Сч).Загрузить(ФайлИзображения)??????
1 aka AMIGO
 
13.05.14
14:05
(0) тут все должны знать, с чем ты работаешь?
2 Andy3626603
 
13.05.14
14:11
ТиС 9.2
3 lamme
 
13.05.14
14:29
(0)
можно
4 lamme
 
13.05.14
14:33
на форме -объект типа Картинка с идентификатором КартинкаАватар.
Функция - загружающая В объект фото

  
Функция Рисунок (Куда,Знач Откуда) Экспорт
    Если Лев(Откуда,1)="." тогда
        Откуда=КаталогИБ()+Сред(Откуда,2);
    КонецЕсли;
    Попытка
        Если (ПустоеЗначение(СокрЛП(Откуда))=1) тогда  
            Куда.УстановитьКартинку(СоздатьОбъект("Картинка"));
        ИначеЕсли (ФС.СуществуетФайл(Откуда)=0) тогда
            Куда.УстановитьКартинку(СоздатьОбъект("Картинка"));
        Иначе    
            Куда.Загрузить(Откуда);    
        КонецЕсли;    
    Исключение
    КонецПопытки;
КонецФункции


Вызов этой функции
    Рисунок(КартинкаАватар,<<ПолныйПутьКФото>>);


Дальше тебе надо в цикле пройтись - и определить -куда показывать ту или иную картину
5 Andy3626603
 
13.05.14
15:30
Не пойдет.
Эту функцию вызывают так:
Рисунок(КартинкаАватар,ПолныйПутьКФото);

а нужно чтобы работало так:
Рисунок("КартинкаАватар"+Сч,ПолныйПутьКФото);

Видимо придется писать на каждую картинку вручную
6 Builder
 
13.05.14
15:39
ПолучитьАтрибут(<?>);
Синтаксис:
Форма.ПолучитьАтрибут(ИмяРеквизита)
Назначение:
Возвращает ссылку на элемент формы.
Параметры:
ИмяРеквизита - строковое выражение, содержащее идентифика-тор элемента формы, как он задан в Конфигураторе.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
7 Ёпрст
 
гуру
13.05.14
15:41
(5) на счет картинок, на вот, занимайся
http://infostart.ru/public/16423/
8 Duke1C
 
13.05.14
15:42
(0) Через переменную не пробовал?

Атриб=Форма.ПолучитьАтрибут("Картинка"+Сч);
Атриб.Загрузить(ФайлИзображения);

Лень самому проверять
9 Builder
 
13.05.14
15:43
Итого как то так.
Рисунок(Форма.ПолучитьАтрибут("КартинкаАватар"+Сч),ПолныйПутьК
Фото);
10 Ёпрст
 
гуру
13.05.14
15:47
(9) итого - не взлетит
11 Ёпрст
 
гуру
13.05.14
15:51
(5) сам разберешься, али подсказать ?
12 Andy3626603
 
13.05.14
15:58
Пока не получается ничего.
Через Форма.ПолучитьАтрибут можно менять только видимость
13 Попытка1С
 
13.05.14
16:02
Подождем когда автор будет искать картинке в покерке..
14 Andy3626603
 
13.05.14
16:02
(11) Лучше подсказать
15 Andy3626603
 
13.05.14
16:07
Пытаюсь через
Шаблон("ПрисвоитьКартинку("+Идентификатор+","+НомерСтроки+","+НомерСтолбца+","+КомуПрисваиваем+")]");
16 Ёпрст
 
гуру
13.05.14
16:08
(15) догадался..
Всё делается через Шаблон, в шаблон пихаешь вызов функции, которая в (4).. и привет.
17 Andy3626603
 
13.05.14
16:40
(16) Ёпрст как всегда великолепен!!!!!

Взлетело вот так:

Функция ПрисвоитьКартинку(Кому,ФайлИзображения)
    Кому.Загрузить(ФайлИзображения);
КонецФункции

Процедура ОбновитьСтраницу()  
    Для Сч = 1 по ТоваровНаСтранице Цикл
        
        Попытка
            ТекНоменклатура = ТабТовары.ПолучитьЗначение(ТекущаяСтраница*18+Сч,"Номенклатура");
            Форма.ПолучитьАтрибут("Текст"+Сч).Заголовок(СокрЛП(ТекНоменклатура.КодПодбора)+" "+СокрЛП(ТекНоменклатура.ПолнНаименование));
            Если ТекНоменклатура.Эскиз.Выбран() = 0 Тогда    
                Форма.ПолучитьАтрибут("Картинка"+Сч).Видимость(0);
            Иначе
                Форма.ПолучитьАтрибут("Картинка"+Сч).Видимость(1);
                Попытка
                ФайлКартинки = СокрЛП(Константа.КаталогЭскизов)+СокрЛП(ТекНоменклатура.Эскиз.Код)+".bmp";
                Шаблон("[ПрисвоитьКартинку(Картинка"+Сч+","""+ФайлКартинки+""")]");
                Исключение
                КонецПопытки;
            КонецЕсли;                      
        Исключение
            Форма.ПолучитьАтрибут("Текст"+Сч).Заголовок("");
            Форма.ПолучитьАтрибут("Картинка"+Сч).Видимость(0);        
        КонецПопытки;
    КонецЦикла;

.....

КонецПроцедуры
18 Andy3626603
 
13.05.14
16:44
lamme и всем кто откликнулся огромнейшее спасибо!!!!
19 Злопчинский
 
14.05.14
00:42
..а вот как бы штатно (+формекс) нагенерить на форме нужное количество атрибутов-картинок...?