Имя: Пароль:
1C
1С v8
Получить значение из ячейки табличного поля
0 Darsky
 
naïve
28.05.24
09:05
платформа 8.3, обычное приложение.
имеется внешняя обработка, в ней основная форма, на форме есть таблица ТабличноеПоле с именем Заказы22.
Данные в таблицу берутся из Табличной части.

Необходимо получить данные из ячейки таблицы.

Итак, внутри модуля формы беру табличное поле:

Таб = ЭлементыФормы.Заказы22;


Далее, если брать данные таблицы вот так

ДанныеТаб = Таб.Значение;


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

подскажите, как это сделать?
1 mikecool
 
27.05.24
21:32
прочитал два раза, и не понял - в чем проблема? строку получить?
2 Климов Сергей
 
28.05.24
09:02
Область = Таб.Область(Строка, Столбец, Строка, Столбец);
ДанныеТаб = Область.Текст;
3 lEvGl
 
гуру
28.05.24
09:12
ТабличноеПоле.ТекущиеДанные
4 Darsky
 
naïve
28.05.24
09:50
(1) Данные из всей таблицы. Из ЭлементыФормы типа ТабличноеПоле

(2) не получается вызвать метод Область. я так понимаю, метод Область есть у объекта Табличного документа. а у моего объекта Таб тип ТабличноеПоле

(3) пробовал. но метод ТекущиеДанные возвращает пустое значение с типом данных Неопределено. В синтаксис-помощнике есть такая инфа:

Для табличных полей, отображающих иерархический список в виде дерева, свойство может принимать значение Неопределено.

- Но тут не совсем понятно что имеется ввиду. У меня на форме обычная таблица с данными, никакого иерархического списка. В отладчике же мое ТабличноеПоле Таб выглядит в виде дерева свойств объекта
5 lEvGl
 
гуру
28.05.24
10:08
это не метод, это свойство. В какой момент вам надо эти данные получить? Неопределено будет, если ни одна строка в таблице не выделена, не активна. Данные какой строки нужны? Их же может быть много, а может ни одной

Необходимо получить данные из ячейки таблицы. 


то есть, из какой ячейки надо, в какой момент. Опишите как в этой форме должен работать пользователь, что и когда он нажимает
6 Darsky
 
naïve
28.05.24
10:15
нужны данные всех строк но только определенного столбца, по нажатию на кнопку (расположена на той же форме что и таблица).

свойство ТекущиеДанные имеет Неопределено даже когда выделяю строку в таблице. точнее, не строку: у меня по нажатию выделяется только ячейка
7 Волшебник
 
28.05.24
10:17
(6) Циклы умеете крутить?
8 Darsky
 
naïve
28.05.24
10:21
(7) да, пробовал. в таком виде ругается, что Итератор для значения не определен:

Таб = ЭлементыФормы.Заказы22;
    Для Каждого Стр Из Таб Цикл
        Сообщить(Стр);
    КонецЦикла
9 lEvGl
 
гуру
28.05.24
10:27
(6) данные в табличной части лежат, обращаться к табличной части по имени (отчеству). Берите, в чем проблема. То есть их не надо получать, они уже есть. Что с ними надо сделать?
10 Волшебник
 
28.05.24
10:27
(8) Попробуйте цикл
Для НомерСтроки = 1 По 1000 Цикл
11 Darsky
 
naïve
29.05.24
11:31
(9) к табличной части я обращаюсь без проблем.
но если пользователь изменит данные в таблице (ТабличноеПоле на форме) - данные в табличной части не изменятся. мне нужны данные в т.ч. с учетом измененных пользователем, то есть, данные именно с таблицы формы
12 Darsky
 
naïve
29.05.24
11:42
возможно, я что то упускаю.

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

но вообще я предполагал что данные можно брать непосредственно из таблицы формы (тип этого элемента ТабличноеПоле), куда пользователь может ввести уже свои значения.
13 Мультук
 
гуру
29.05.24
11:55
>>> возможно, я что то упускаю.

Учиться, учиться и еще раз учиться (с) Дедушка в кепке

===
Смотрим рис.1 в синей рамочке написано имя таблицы значений,
где лежат данные.

Сама таблицазначений объявлена на странице "Реквизиты"
Обычно её имя совпадает с именем табличного поля, но не обязательно.

Для каждого строка из ТабличноеПоле1 Цикл
   лКолонка1 = строка.Колонка1;
   лКолонка1 = строка.Колонка2;
КонецЦикла;
14 lEvGl
 
гуру
29.05.24
12:48
(12)
в таблицу, расположенной на форме, данные подтягиваются из табличной части. при изменении данных в таблице пользователем данные в табличной части не изменяются.
возможно, так понятнее.


Это не так. ТабПоле - визуальное представление ТЧ, ТЗ или еще чего-то. Предназначено для Редактирования данных этих коллекций. Что однозначно определяет: если в табполе данные изменены, то они изменены и в ТЧ. Это одно и тоже, только табполе еще глазами видно.

ДатаСет, ДатаГрид и остальное - аналоги 1Сных тч и табполя. Хотя с отношением кто чей аналог не так все.
15 Мультук
 
гуру
29.05.24
12:59
(14)

>> Что однозначно определяет:если в табполе данные изменены, то они изменены и в ТЧ

Тут либо слово "однозначно" лишнее, либо "ТЧ" нужно менять на другой термин.

P.S.
Даже во времена УТ10 "УстановкаЦенНоменклатуры" отображала не табличную часть,
а данные из таблицыЗначений, куда табличная часть была трансформирована.

То же самое происходит и сейчас, примеров куча (например ЗУП)
16 lEvGl
 
гуру
29.05.24
13:07
(15)
P.S.
Даже во времена УТ10 "УстановкаЦенНоменклатуры" отображала не табличную часть,
а данные из таблицыЗначений, куда табличная часть была трансформирована. 


Было такое, да. И меняло это табполе свои данные, то что в реквизите Данные указано. Я же и говорю, что меняет, то, данные чего отображает (ТЧ, ТЗ), а то что там потом трансформация происходит.. ну да и чего).
Вобщем в ОФ связь между источником и ТП однозначная, предупреждая вопрос о колонках без данных - за исключением таких колонок
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший