Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ЭтотОбъект.ТЧ - ТЧ - ЭлементыФормы.ТЧ

ЭтотОбъект.ТЧ - ТЧ - ЭлементыФормы.ТЧ
Я
   СемёнКим
 
13.10.21 - 09:46
Всем привет. 1С:8.3 (Обычное приложение)
Запутался с доступом к данным в табличное части. Надеюсь Вы меня просветите и поставите все точки над И касательно вопроса доступа к данным.

Документ Д1 и его табличная часть ТЧ1. Находимся в модуле формы документа Д1:
ЭтотОбъект.ТЧ1 - получаю данные на сервере(в базе);
ЭлементыФормы.ТЧ1 - получаю данные с формы(еще не в базе)
ТЧ1 - Что в этом случае получается? Мне интуитивно кажется, что оно равносильно к ЭтотОбъект.ТЧ1.
   pechkin
 
1 - 13.10.21 - 09:52
конечно нужно бы разобраться с MVC - model-veiw-controller.
Что есть данные в базе, что есть прочитанные данные в памяти, а что есть отображение на экране
   Ёпрст
 
2 - 13.10.21 - 09:56
этотОбъект выкинь.
ЭлементыФормы.ТЧ1 - это элемент управления на форме, табличное поле, которое смотрит на данные дока, ТЧ твою
   Ёпрст
 
3 - 13.10.21 - 09:58
И да, если ты смотришь на ТЧ, это не факт, что данные с базы и они записаны. Ты просто смотришь на ТЧ.
Если нужны записанные данные, то глядишь тч у ссылки, если она есть.
   СемёнКим
 
4 - 13.10.21 - 10:22
(1) (2) (3) Если честно стало еще более запутанней.
Постараюсь конкретизировать вопрос на реальной задаче. Решаю такую задачу: Нужно добавить новые строки в тч документа, затем пройтись по тч и изменить ее строки.
Пример,
//1 часть, добавляем строки в ТЧ

Для перем=1 по N Цикл
 НоваяСтр = ТЧ.Добавить();
 НоваяСтр.Реквизит1 = 1;
 ...
 НоваяСтр.Реквизит_m = m;
КонецЦикла;

//2 часть, редактируем строки в ТЧ

Для каждого СтрокаТЧ из ТЧ Цикл
 СтрокаТЧ.Реквизит_i = i+1;
КонецЦикла;

Вопрос: Какие недостатки от простого обращения к тч документа через "ТЧ"?
   pechkin
 
5 - 13.10.21 - 10:32
(4) а какие еще ты способы знаешь?
   МимохожийОднако
 
6 - 13.10.21 - 10:33
Если результат устраивает, то недостатков нет.
   pechkin
 
7 - 13.10.21 - 10:33
в 1с мы всегда работаем с прочитанным в память объектом. отображение на форме меняется само
   СемёнКим
 
8 - 13.10.21 - 10:37
(5) пока знаю только этот способ.
(6) Результат то что и ожидаю. Но есть сомнения в корректности обращения к тч документа. Например, боюсь что в некоторых сценариях будут браться не те данные, которые я ожидаю получить.
   МимохожийОднако
 
9 - 13.10.21 - 10:39
(8) Не ссы. Просто проверь результат
   СемёнКим
 
10 - 13.10.21 - 10:40
(7) спасибо, чувствую, что уже солнце выглядывает.
   СемёнКим
 
11 - 13.10.21 - 10:49
(5) на сайте https://its.1c.ru/db/metod8dev/content/2464/hdoc есть такой пример:
СтрокаСостава = ДокументОбъект.Состав.Добавить();
СтрокаСостава.Количество = 10;
   СемёнКим
 
12 - 13.10.21 - 10:50
(11) В форме документа этот реквизит(ДокументОбъект) добавляется автоматически. Тогда правильно ли будет обращаться к тч документа в форме документа всегда через ДокументОбъект.ТЧ?
   Ёпрст
 
13 - 13.10.21 - 10:51
(11) смотри выше: платформа 8.1
это древнее, чем г.. мамонта
   Ёпрст
 
14 - 13.10.21 - 10:51
(12) нет
   Малыш Джон
 
15 - 13.10.21 - 10:53
(0) ЭтотОбъект.ТЧ1(или просто ТЧ1) - это табличная часть(часть объекта), ЭтаФорма.ЭлементыФормы.ТЧ1(или просто ЭлементыФормы.ТЧ1) - это табличное поле(элемент формы).
   СемёнКим
 
16 - 13.10.21 - 10:54
(14) Спасибо за ответ. Можете привести пример, когда это не так?
   СемёнКим
 
17 - 13.10.21 - 10:54
(15) Спасибо!
   Малыш Джон
 
18 - 13.10.21 - 10:54
(12) работа с данными в обычных формах происходит через работу с реквизитами и табчастями объекта.
В модуле объекта или в модуле формы обращаться к ним можно просто по имени:

НоваяСтрока = ТЧ1.Добавить();
НоваяСтрока.Количество = 1;
   СемёнКим
 
19 - 13.10.21 - 10:58
(18) Огромное спасибо за такой четкий ответ!

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.