Имя: Пароль:
1C
1С v8
Запись значения в ячейку табличного поля
0 AlexToo
 
11.04.14
13:31
Привет, подскажите пожалуйста, как правильно программно записать значение в ячейку табличного поля? В общем на форме есть поле табличного документа, нужно что бы при нажатии на ячейку открывался список выбора значения из справочника и потом выбранное значение записывалось в эту ячейку, пишу код:

Процедура Лист1Выбор(Элемент, Область, СтандартнаяОбработка)
    имяобл=Область.имя;
    тз=Новый ТаблицаЗначений;      
    тз.Колонки.Добавить("Код");
    тз.Колонки.Добавить("Наименование");
    тч=ЭлементыФормы.Лист1;
если имяобл="Лист1117" тогда
    справочник=Справочники.Валюты.Выбрать();
КонецЕсли;

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


и при присвоении ячейки значения выдает ошибку:

{Документ.ОтчетВРосФинМониторинг.Форма.ФормаДокумента.Форма(37)}: Поле объекта недоступно для записи (Текст)
    тч.Область(имяобл).текст=стрвыб.код;
1 AlexToo
 
11.04.14
13:36
нууу хоть кто-нибудь, просветите...
2 Мутабор
 
11.04.14
13:44
Точно не знаю, попробуй не через  ЭлементыФормы.Лист1, а Лист1
3 ale-sarin
 
11.04.14
13:45
а если имя области <> "Лист1117"?
4 AlexToo
 
11.04.14
13:46
(2) он так переменную лист1 не определяет
5 AlexToo
 
11.04.14
13:47
(3)то вылетит ошибка что справочник.следующий() нет))) это набросанный код, главное разобраться как в ячейку записать данные.
6 ale-sarin
 
11.04.14
13:48
(5) аа ну да. точно.
7 Мутабор
 
11.04.14
13:49
ЭтаФорма.ЭлементыФормы.Лист1.Область("Тест").Текст="1";
8 AlexToo
 
11.04.14
13:50
(6)есть идей почему поле "текст" может быть не доступным? если   получать область типа:
обл=тч.получитьобласть(имяобл);
он ее получит, но как потом от туда текст записать?
9 AlexToo
 
11.04.14
13:50
(7) по сути я в коде тоже самое делаю вот:
тч.Область(имяобл).текст=стрвыб.код;
переменная тч=элементыформы.лист1;
10 ale-sarin
 
11.04.14
13:51
Может здесь беда закралась?

ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Текст (Text)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Содержит значение текста ячеек области.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

1. Свойство доступно для записи, если ячейка не содержит значения (свойство СодержитЗначение равно Ложь).
2. Применимо только для прямоугольных областей.
11 Мутабор
 
11.04.14
13:51
Останови отладчиком п посмотри значение области..
12 AlexToo
 
11.04.14
13:54
(10) воу воу воу ВСЕМ ПЯТНИЦЫ ПОСОНЫ!!! вы меня спасли прям)) спасибо помогло)))
13 AlexToo
 
11.04.14
13:56
P/S чайники счастливы))