Имя: Пароль:
1C
1С v8
Табличная ачть в 8,3
0 antihacker
 
09.01.15
12:47
Все привет !

Как в 8,3 получить текущие строки табличной части.

В 8,2 вот так делал

    Строка=Элементы.ПолучателиТЧ.ТекущиеДанные;
    Строка.ДолжностьСотрудника=Строка.Сотрудник.ДолжностьСотрудника;
Но в 8,3 не работает пишет что

{Документ.ВходящееПисьмо.Форма.ФормаДокумента.Форма(7)}: Поле объекта не обнаружено (ДолжностьСотрудника)
    Строка.ДолжностьСотрудника=Строка.Сотрудник.ДолжностьСотрудника;
1 igoza
 
09.01.15
12:48
всё по русский написано...
2 igoza
 
09.01.15
12:49
"Табличная ачть в 8,3" боюсь там такая же бяда)
3 antihacker
 
09.01.15
12:50
В том то и дело что там ДолжностьСотрудника есть
4 antihacker
 
09.01.15
12:51
И это одна и та же конфига
5 iceman2112
 
09.01.15
12:57
А ты глянь через отладчик, есть там она или нет. А еще почитай про процедуры НаСервере и НаКлиенте
6 Chameleon1980
 
09.01.15
12:59
и на всякий имя переменной поменять
7 hhhh
 
09.01.15
13:04
(4) на клиенте нельзя через 2 точки обращаться. Пиши процедуру на сервере.
8 antihacker
 
09.01.15
13:11
Что значит через 2 точки ?
9 hhhh
 
09.01.15
13:32
Строка.Сотрудник.ДолжностьСотрудника

только на сервере такая фигня проходит
10 unregistered
 
09.01.15
13:45
Как-то так:

Строка.ДолжностьСотрудника = ПолучитьЗначениеРеквизитаНаСервере(Строка.Сотрудник, "ДолжностьСотрудника");

&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаНаСервере(Ссылка, ИмяРеквизита)
   Возврат Ссылка[ИмяРеквизита];
КонецФункции;
11 unregistered
 
09.01.15
13:48
+ к (10) В типовых конфах с БСП в общих модулях есть универсальная функция получения значений реквизитов от ссылки.
12 antihacker
 
09.01.15
13:50
Извините. Забыл. Это голая конфига. Крме этих строк ничего нету.
13 antihacker
 
09.01.15
13:57
unregistered,
Молоток. Теперь подскажи почему так  ? В 8,3 изменился подход из за управляемых форм ? раньше было по проще.
14 Кир Пластелинин
 
09.01.15
14:42
в 8.2 поди в толстом клиенте было, не?
15 unregistered
 
09.01.15
15:32
(13) Дело не в формах. Дело в разделении на клиент и сервер. Условно можно считать это двумя разными компонентами одной программы. Открытая управляемая форма существует в двух экземплярах - на клиенте и на сервере.
Когда ты в модуле формы в процедуре &наКлиенте у тебя есть только данные этой формы. Никаких данных базы данных у тебя нет (их не существует для клиента).
Строка кода Строка.Сотрудник.ДолжностьСотрудника - есть обращение к реквизитам справочника Сотрудники. Справочник Сотрудники - таблица базы данных. Ни про какую базу данных клиент ничего не знает. Чтобы обратиться к таблицам базы данных надобно сходить на сервер. Для этого ты вызываешь функцию, которая находится на сервере (в экземпляре формы, который на сервере).

В толстом клиенте в обычном приложении в подобных манипуляциях нет необходимости, т.к. клиенту доступно обращение к данным сервера (нет такого жесткого разделения на клиент и сервер).

Как-то так...