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

Документ Д1 и его табличная часть ТЧ1. Находимся в модуле формы документа Д1:
ЭтотОбъект.ТЧ1 - получаю данные на сервере(в базе);
ЭлементыФормы.ТЧ1 - получаю данные с формы(еще не в базе)
ТЧ1 - Что в этом случае получается? Мне интуитивно кажется, что оно равносильно к ЭтотОбъект.ТЧ1.
1 pechkin
 
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;
КонецЦикла;

Вопрос: Какие недостатки от простого обращения к тч документа через "ТЧ"?
5 pechkin
 
13.10.21
10:32
(4) а какие еще ты способы знаешь?
6 Мимохожий Однако
 
13.10.21
10:33
Если результат устраивает, то недостатков нет.
7 pechkin
 
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) Огромное спасибо за такой четкий ответ!