Имя: Пароль:
1C
1С v8
Вопрос по "текущимданным" или "текущейстроке"
,
0 Маленький Вопросик
 
10.04.12
11:14
Есть небольшой вопрос по программированию:

1.Есть доработанная форма списка справочника номенклатура

в форме дабавляю такой код:

обращаемся к табличной части (реквизиты справочника)

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

Сообщить(СтрокаВыбранная.Артикул) - вот здесь выдает ошибку, т.к. на табличном поле отсутствует колонка Артикул.

Вопрос - подскажите как получить ссылку на объект из табличного поля в рамках вышеуказанной процедуры

Спасибо
1 le_
 
10.04.12
11:16
СтрокаВыбранная.Ссылка.Артикул
2 Maxus43
 
10.04.12
11:17
на какой объект? Текущие данные - там реквизиты ТЧ, артикул видимо у номенклатуры
3 Maxus43
 
10.04.12
11:17
(2) + тьфу) справочник.Список
4 Маленький Вопросик
 
10.04.12
11:18
(1) мде... глупый вопрос... согласен
5 НЕА123
 
10.04.12
11:18
СтрокаВыбранная = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
6 Маленький Вопросик
 
10.04.12
11:19
(5) чем стока от данных отличается?
7 le_
 
10.04.12
11:21
8 nuctoh
 
10.04.12
11:22
текущую строку можно установить программно - т.е. спозиционировать курсор на нее, а текущие данные - только для чтения
9 Маленький Вопросик
 
10.04.12
11:27
Изображение - хранилище значений с картинкой внутри

Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
   
   СтрокаВыбранная = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка;
       
   ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка(СтрокаВыбранная.Изображение,Истина);
   
   Обновить();
КонецПроцедуры

итоговая процедура, чето не добавляет картинку
10 le_
 
10.04.12
11:32
Я думаю, делать нужно через оформление строки в ПриВыводеСтроки() или ПриПолученииДанных().
11 Маленький Вопросик
 
10.04.12
11:34
(10) смысл - щелкаешь по строкам в ТЧ - слева в поле изображения - появляются картинки, которые загружены в элементах
12 Маленький Вопросик
 
10.04.12
11:36
вот кстати, другая процедура (окраски выделенной строки)

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   Если ДанныеСтроки=ЭлементыФормы.СправочникСписок.ТекущиеДанные Тогда
       ОформлениеСтроки.ЦветФона=WebЦвета.БледноЗеленый;
   Иначе
       ОформлениеСтроки.ЦветФона=Новый Цвет(255, 255, 255);
   КонецЕсли;
   
КонецПроцедуры

тоже не срабатывает (((
13 le_
 
10.04.12
11:37
(11) Посмотри, как в справочнике номенклатуры вывод картинки сделан.
14 Маленький Вопросик
 
10.04.12
11:39
(13) смотрю тут паралельно - по владельцу из справочника
15 Маленький Вопросик
 
10.04.12
11:47
//не работает ((((

ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка(СтрокаВыбранная.Изображение);
16 Маленький Вопросик
 
10.04.12
12:02
Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
   
// СтрокаВыбранная.Изображение - ХранилищеЗначения
СтрокаВыбранная = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка;
ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка(СтрокаВыбранная.Изображение);
   
   Обновить();
КонецПроцедуры

как правильно преобразовать ХранилищеЗначения в данные картинки???
17 le_
 
10.04.12
12:04
Получить()
18 НЕА123
 
10.04.12
12:05
(12)
Если ДанныеСтроки.Ссылка = ЭлементыФормы.СправочникСписок.Ссылка Тогда
?
19 НЕА123
 
10.04.12
12:06
(9)
программно из файла нельзя, вроде.
20 Маленький Вопросик
 
10.04.12
12:07
(19) не из файла, а из ХранилищаЗначений
21 Маленький Вопросик
 
10.04.12
12:07
получить() - не срабатывает
22 Маленький Вопросик
 
10.04.12
12:09
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(6)}: Ошибка при вызове конструктора (Картинка)
   ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка(СтрокаВыбранная.Изображение.Получить());
по причине:
Несоответствие типов (параметр номер '1')
23 le_
 
10.04.12
12:09
(22) Новый Картинка - убери.
24 Маленький Вопросик
 
10.04.12
12:10
уряяя!!!!

Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
   
   // СтрокаВыбранная.Изображение - ХранилищеЗначения
   СтрокаВыбранная = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка;
   ЭлементыФормы.ПолеКартинки1.Картинка = СтрокаВыбранная.Изображение.Получить();
   
   Обновить();
КонецПроцедуры
25 Маленький Вопросик
 
10.04.12
12:11
теперь другой вопросец:

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   Если ДанныеСтроки=ЭлементыФормы.СправочникСписок.ТекущиеДанные Тогда
       ОформлениеСтроки.ЦветФона=WebЦвета.БледноЗеленый;
   Иначе
       ОформлениеСтроки.ЦветФона=Новый Цвет(255, 255, 255);
   КонецЕсли;
   
КонецПроцедуры

должна окрашивать в бледно зеленый цвет строку ... но не делает этого ((((
26 НЕА123
 
10.04.12
12:13
(25)
(18)
27 Маленький Вопросик
 
10.04.12
12:26
(26) не совсем так, у меня вот так сработало:

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   Для Каждого Ячейка ИЗ ОформлениеСтроки.Ячейки Цикл
       ОформлениеСтроки.Ячейки["Колонка1"].УстановитьКартинку(БиблиотекаКартинок.СправочникОбъект);
   КонецЦикла;    
   
   
   Если ДанныеСтроки.Ссылка=ЭлементыФормы.СправочникСписок.ТекущаяСтрока Тогда
       ОформлениеСтроки.ЦветФона=WebЦвета.БледноЗеленый;
   Иначе
       ОформлениеСтроки.ЦветФона=Новый Цвет(255, 255, 255);
   КонецЕсли;
   
КонецПроцедуры
28 Маленький Вопросик
 
10.04.12
12:31
теперь остался последний вопрос на сегодня:

Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
   
   // СтрокаВыбранная.Изображение - ХранилищеЗначения
   СтрокаВыбранная = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка;
   
       Если НЕ СтрокаВыбранная.Изображение.Пустая() Тогда
           ЭлементыФормы.ПолеКартинки1.Картинка = СтрокаВыбранная.Изображение.Получить();
       КонецЕсли;
       
   Обновить();
   
КонецПроцедуры

Проверка Хранилища значений на заполненость (типа там находиться картинка)
29 le_
 
10.04.12
12:31
Для Каждого Ячейка ИЗ ОформлениеСтроки.Ячейки Цикл
       ОформлениеСтроки.Ячейки["Колонка1"].УстановитьКартинку(БиблиотекаКартинок.СправочникОбъект);
   КонецЦикла;
- Бред!
30 Маленький Вопросик
 
10.04.12
12:31
(29) работает!
31 le_
 
10.04.12
12:32
(30) И это еще не значит, что там не бред.
32 Маленький Вопросик
 
10.04.12
12:34
(31) обоснуй
33 Mort
 
10.04.12
12:36
(32) Так тоже будет работать:

Для ЕщёОдинНенужныйИтератор = 1 по 1000 Цикл
Для Каждого Ячейка ИЗ ОформлениеСтроки.Ячейки Цикл
       ОформлениеСтроки.Ячейки["Колонка1"].УстановитьКартинку(БиблиотекаКартинок.СправочникОбъект);
   КонецЦикла;
КонецЦикла;
34 le_
 
10.04.12
12:36
(32) Лучше ты объясни, нафига в колонку "Колонка1" картинка устанавливается столько раз, сколько колонок в таблице?
35 le_
 
10.04.12
12:40
+(34) И происходит это для каждой выводимой строки...
36 Маленький Вопросик
 
10.04.12
12:41
(34) ты имеешь ввиду - ровно столько раз сколько строк в таблице?
37 le_
 
10.04.12
12:42
(36) Нет, я имею ввиду ровно то, что написано в (34).
38 Маленький Вопросик
 
10.04.12
12:49
(37) выглядит все вот так: http://www.imagepost.ru/?v=nomenk.JPG
39 le_
 
10.04.12
12:50
(38) Сделай как в (33) - выглядеть будет так же!
40 Маленький Вопросик
 
10.04.12
12:55
(39) а как тогда не бред?

и к ворпосу (28) - хранилище не заполненость проверка
41 le_
 
10.04.12
12:59
(40) Ну, ты объясни, для чего там этот цикл:
Для Каждого Ячейка ИЗ ОформлениеСтроки.Ячейки Цикл
?

К вопросу (28): проверяй полученное из хранилища значение на Тип("Картинка").
42 Маленький Вопросик
 
10.04.12
13:04
(41) спасибо за подсказку, цикл не нужен...