|
ЭтотОбъект.ТЧ - ТЧ - ЭлементыФормы.ТЧ | ☑ | ||
---|---|---|---|---|
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) Огромное спасибо за такой четкий ответ!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |