Имя: Пароль:
1C
1С v8
1с8.3 обращение к ячейке табличной части
0 I_learn_1c
 
09.10.17
13:55
Подскажите, пожалуйста, как в 1с 8.3 обратиться к конкретной ячейке на табличной части управляемой формы?

Табличная часть Товары
Известен НомерСтроки и имя колонки - Код.

ЗначениеЯчейки=ЭтаФорма.Элементы.Товары[НомерСтроки].Код;
- ошибка Получение элемента по индексу для значения не определено

ЗначениеЯчейки=ЭтаФорма.Элементы.Товары.ТекущиеДанные[Код]ПолучитьОбъект();
- тоже была какая то ошибка

пробовала еще по разному.. Строка на момент определения - активная, значение в колонке Код смотрим если клацнули по какой-то из ячеек строки. Но через Текущую строку что-то тоже не выходит

у 8.3 какая то особенность в этом? все не могу найти, помогите пожалуйста
1 h-sp
 
09.10.17
13:57
Объект.Товары[НомерСтроки - 1];
Элементы.Товары.ТекущиеДанные.Код
2 I_learn_1c
 
09.10.17
14:12
(1) попробовала

Код = ЭтаФорма.Элементы.Товары.ТекущиеДанные.Код;

ошибка - Значение не является значением объектного типа (Код)
3 DrShad
 
09.10.17
14:18
а для чего тебе это нужно?
4 I_learn_1c
 
09.10.17
14:24
(3) в табличной части список товаров. они туда добавляются по разному. это кассовый чек.

после того как чек сформирован, кассир может поменять цену, если выбран любой товар кроме товара А с кодом 1 (к примеру). По наименованию не проверяю так как оно может быть не уникально.

Хочу чтоб при активизации ячейки (щелчок по цене) проверялось
Если Код=1 то ячейка этой строки в колонке цена только просмотр
5 h-sp
 
09.10.17
15:12
(4) ну а там есть колонка Код? Можкет вы забыли создать такую колонку?
6 I_learn_1c
 
09.10.17
15:48
(5) колонки есть, созданы не мной
7 dezss
 
09.10.17
16:07
(6) что показывает отладчик в ЭтаФорма.Элементы.Товары.ТекущиеДанные?
8 I_learn_1c
 
09.10.17
16:38
Уууух.... наконец-то поняла. Простите, кажется я немного запутала вас, так как не поняла сразу.

В общем, проблема решилась так.
Колонка Код,как оказалось была не полем ввода,а полем надписи. И в текущих данных ее в наборе не было.
Так как к ячейке напрямую обратиться не вышло, но каждая строка соответствует товару, то брала значение колонки Номенклатура (тип СправочникСсылка.Номенклатура), у нее в реквизитах есть Код каждого товара, который и в колонке Код. Ее вот без проблем получить можно, (1)  совет верный.
Ссылка = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.Номенклатура;

Написала условие и отдельно функцию для выбора самого кода (без нее тоже не прокатывало что-то, ссылка только название хранила). Получилось:
&НаСервере
Функция ПолучитьКод(Ссылка)
    Код=Ссылка.Код;
    Возврат Код;
КонецФункции

&НаКлиенте
Процедура ТоварыПриАктивизацииЯчейки(Элемент)
    
    .......
        Колонка=ЭтаФорма.ТекущийЭлемент.ТекущийЭлемент.Имя;        
        Ссылка = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.Номенклатура;
    Если Ссылка <> Неопределено Тогда
        Код = СокрЛП(ПолучитьКод(Ссылка));
    КонецЕсли;
    
        
    Если Колонка = "ТоварыЦена" И Код="1" Тогда
        ЭтаФорма.ТекущийЭлемент.ТекущийЭлемент.ТолькоПросмотр = Ложь;
        Сообщить("Ураа!");
    КонецЕсли;
        .....
КонецПроцедуры

пробелы сокращала "для себя", т.к. тут ко строка и в конце могут быть пробелы. В общем случае думаю можно и без СокрЛП.
Спасибо за ответы выше) И может кто-то оценил, так адекватно делать вообще?
9 DrShad
 
09.10.17
16:42
(8) вообще-то не совсем
10 I_learn_1c
 
09.10.17
16:44
(9) а приблизить хотя бы к адекватному как-то можно?
11 DrShad
 
09.10.17
16:51
(10) пользователь сможет изменить цену, например если есть команды изменения табличной части в частности изменить цену на процент или еще как

ну и у вас слишком много обращений к элементам формы
12 DrShad
 
09.10.17
16:51
ну и как-бы нет ничего невозможного
13 I_learn_1c
 
09.10.17
16:55
(12) хорошо..ну подумаю еще, может как-то поменяю. А что вот функция ПолучитьКод вынесена такая, это не уродливо? Просто новичок еще и чужих кодов не много видела
14 dezss
 
09.10.17
17:11
(13) сделай ее без контекста...а то ппц получается
15 dezss
 
09.10.17
17:12
(14) + а еще лучше сделай все таки колонку и в нее пихай код...
а дальше тупо условным оформлением можно сделать...