Документ получить реквизит табличной части

Получить значение реквизита из табличной части документа

Я
   theblockhead

05.06.18 — 01:37

Доброй ночи, подскажите пожалуйста.

Получить значение не из табличной части Документ[реквизит.имя], а как например, если есть табличная часть «тест» со своими реквизитами ?

  

Партнерская программа EFSOL Oblako

   hhhh

1 — 05.06.18 — 03:18

(0) Документ[табличнаячасть.имя][0][реквизит.имя]

это если из первой строки табличной части

Если например 100-я строка табличной части, то

Документ[табличнаячасть.имя][99][реквизит.имя]

   theblockhead

2 — 05.06.18 — 12:25

(1) А можно еще вопрос, получается если хочу обойти все данные из документа, мне надо обойти все его реквизиты, а также все реквизиты табличной части и получается все её строки ?

Немного не понимаю этих моментов. Задача была вывести документ в текстовый формат(csv, txt) с помощью метаданных (только вот документ любой).

   hhhh

3 — 05.06.18 — 12:28

(2) ну конечно в текстовый файл ты все строки должен добавить. Это не обсуждается.

   1Сергей

4 — 05.06.18 — 12:29

(2) используй Для Каждого…

   theblockhead

5 — 05.06.18 — 12:31

(3) (4) ДокументДляВыгрузкиСсылка = ЭтаФорма.ЭлементыФормы.ДокументСсылка.Значение.Ссылка;

    РеквизитыДокумента = ДокументДляВыгрузкиСсылка.Метаданные().Реквизиты;

    Текст = Новый ТекстовыйДокумент;

      Для Каждого РеквизитДокумента Из РеквизитыДокумента Цикл

        Текст.ДобавитьСтроку(«» + РеквизитДокумента.Имя + «:» + ДокументДляВыгрузкиСсылка[РеквизитДокумента.Имя] );

    КонецЦикла;  

    ТЧДокумента = ДокументДляВыгрузкиСсылка.Метаданные().ТабличныеЧасти;

    Для Каждого ТекТЧДокумента Из ТЧДокумента Цикл

    СсылкаТЧ = ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя];

        Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл

          Текст.ДобавитьСтроку(«» + строкаТЧ.Имя + «:» + ???СсылкаТЧ[0].[строкаТЧ.Имя]??????);

        КонецЦикла;

      КонецЦикла;

    Текст.Записать(ИмяФайла);

Я это сделал, вот теперь вопрос как проверить сколько строк в табличной части или я что-то не поянл

   VitShvets

6 — 05.06.18 — 12:37

:) См (4):

Для каждого ТекСтрока Из ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя] Цикл

   1Сергей

7 — 05.06.18 — 12:38

(5)

Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл

    Для Каждого СтрокаТЧ ИЗ СсылкаТЧ Цикл

         Текст.ДобавитьСтроку(«» + строкаТЧ.Имя + «:» + СтрокаТЧ[строкаТЧ.Имя]);

Как-то так

   hhhh

8 — 05.06.18 — 12:38

Для каждого стр Из СсылкаТЧ цикл

        Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл

          Текст.ДобавитьСтроку(«» + строкаТЧ.Имя + «:» + стр[строкаТЧ.Имя]);

        КонецЦикла;

         КонецЦикла;

   1Сергей

9 — 05.06.18 — 12:38

(7) ох, блин. Не читай (7)

   hhhh

10 — 05.06.18 — 12:38

еще номер строки тч надо по идее

   theblockhead

11 — 05.06.18 — 12:42

(10) (6) (9) Спасибо большое, постараюсь разобраться. Меньше недели в 1С, до этого опыт был с другими языками. Уже и 1С разонравился, но просто «спортивный интерес» закончить начатое.

   theblockhead

12 — 05.06.18 — 12:53

(10) ТЧДокумента = ДокументДляВыгрузкиСсылка.Метаданные().ТабличныеЧасти;

    Для Каждого ТекТЧДокумента Из ТЧДокумента Цикл

     СсылкаТЧ = ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя];

        Для каждого стр Из СсылкаТЧ цикл

          Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл

           Текст.ДобавитьСтроку(«» + строкаТЧ.Имя + «:» + стр[строкаТЧ.Имя]);

          КонецЦикла;

        КонецЦикла;

    КонецЦикла;

Сделал так, теперь читает только реквизиты документа, а в табличной части не читает.

Что — то не так пошло :(

   Гипервизор

13 — 05.06.18 — 12:56

(11) «1С разонравился»

Зря вы это написали )

   theblockhead

14 — 05.06.18 — 13:03

(13) Да не привычно все как-то, задание дали сразу такое, поэтому кроме негатива пока ничего нет, может когда результат будет изменю свое мнение

   1Сергей

15 — 05.06.18 — 13:48

(14) Кроме 1С есть опыт с языками программирования?

   theblockhead

16 — 05.06.18 — 13:52

(15) C#, js, C++

  

1Сергей

17 — 05.06.18 — 14:09

(16) тогда будешь плеваться на 1С. Это неизбежно

Получить значение реквизита табличной части

Автор Дима Сацкевич, 01 сен 2018, 18:08

0 Пользователей и 2 гостей просматривают эту тему.

У меня есть документ в которой есть табличная часть, в свою очередь состоящая из реквизитов
Как получить значение реквизита? Наверное очень простой вопрос, но никак не получается, извиняюсь.
Я еще пытался выгрузить всю табличную часть в таблицу значений и там уже через методы ТЗ получить значение колонок, но выгрузить тоже как-то не получилось.

Сейчас имею вот такой код, с помощью которого получаю имя реквизита, а вот как значение получить?:


Для каждого Инд из ВыборДокумента.ПолучитьОбъект().Метаданные().ТабличныеЧасти Цикл
Для каждого Стр из Инд.Реквизиты цикл
Сообщить(Стр);
КонецЦикла;
КонецЦикла;

ВыборДокумента — это поле выбора, где выбирается любой документ из БД


А так у меня задача стоит выгрузить табличную часть в .txt, вот поэтому нужно значение получить, насколько я понял


Цитата: Дима Сацкевич от 01 сен 2018, 18:08Сейчас имею вот такой код, с помощью которого получаю имя реквизита, а вот как значение получить?:

Для каждого Инд из ВыборДокумента.ПолучитьОбъект().Метаданные().ТабличныеЧасти Цикл
Глупость
Никогда так не делай.

Об = ВыборДокумента.ПолучитьОбъект();
Мт = Об.Метаданные();
Для каждого Инд из Мт.ТабличныеЧасти Цикл
    Для каждого Стр из Инд.Реквизиты цикл
        ЗнТ = Об[Инд.Имя];
        Сообщить(ЗнТ);
        Для Каждого СтрокаЗнТ из ЗнТ Цикл
            Зн = СтрокаЗнТ[Стр.Имя];
            Сообщить(Зн);
        КонецЦикла;
    КонецЦикла;
КонецЦикла;


Запросом получай ТЧ…

Отправлено с моего Redmi Note 3 через Tapatalk


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Пользователям 1С Предприятие 8

  • Получить значение реквизита табличной части

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

 Как получить доступ к реквизитам формы?

Если реквизит объекта «вытащен» на форму, то реквизит формы можно получить через объект ЭлементыФормы, который содержит коллекцию элементов формы, сканируя ее в цикле:

ДокСсылка = СсылкаНаДокумент(ТипДокумента, НомерДок);
ДокОбъект = ДокСсылка.ПолучитьОбъект();
 
ФормаОбъекта = ДокОбъект.ПолучитьФорму();
Для Каждого Элемент Из ФормаОбъекта.ЭлементыФормы Цикл
        Сообщить(Элемент);
КонецЦикла;     
 

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

Реквизиты формы могут быть различных типов. Поставив фильтр в виде типа реквизита мы можем просмотреть реквизиты определенного типа.

Если реквизит формы имеет тип «ТабличноеПоле», то можно такой элемент просканировать во вложенном цикле и узнать имена колонок таблицы:

 
Для Каждого Элемент Из ФормаОбъекта.ЭлементыФормы Цикл
        Сообщить(Элемент.Имя);
        Если Тип(Элемент) = Тип("ТабличноеПоле") Тогда
                Сообщить(" Это табличное поле! "  + Элемент.Имя );
                Для Каждого Колонка Из Элемент.Колонки Цикл
                        ИмяКолонки = Колонка.Имя;
                        Сообщить(ИмяКолонки);
                КонецЦикла;
        КонецЕсли;      
КонецЦикла;     
 

Как получить значение отдельного реквизита формы?

Чаще требуется получать не массив реквизитов формы,  а значение отдельных конкретных реквизитов формы. Например реквизиты «Шапки» или «Подвала» формы документа.

Пример:

 
ФормаОбъекта = ДокОбъект.ПолучитьФорму("ФормаДокумента");
Поставщик = ФормаОбъекта.ЭлементыФормы.Поставщик;
Поставщик = ФормаОбъекта.ЭлементыФормы.Получатель;
Сообщить(ФормаОбъекта.ЭлементыФормы.ТаблПоле.Колонки.Количество());
 

Реквизиты шапки могут иметь различные типы: Дата, СправочникСсылка, ЧекБокс, элемент раскрывающегося списка и др.

Как получить значение элементов табличной части формы?

Доступ к табличной части формы через объект

Доступ к табличной части формы (например: Товары) можно получить через объект:

 
  ДокОбъект = Док.ПолучитьОбъект(); //здесь Док - ссылка на объект
  //просканируем построчно таб часть документа
  Для Каждого Стр из ДокОбъект.Товары Цикл
      Номенклатура = Стр.Номенклатура;
      Стр.Коэффициент = 1;
  КонецЦикла;
 

Здесь ДокОбъект.Товары — это табличная часть «Товары» объекта. Далее в цикле табличная часть построчно сканируется!
В каждой итерации цикла можно получить доступ к любому полю строки указав через точку имя этого поля:

      Номенклатура = Стр.Номенклатура;

Доступ к табличной части формы через ЭлементыФормы

Табличная часть объекта и табличная часть формы объекта — это не одно и то же!

Для того, чтобы код работал правильно, надо чтобы колонка формы табчасти объекта в свойстве данные ссылалась на реквизит табличной части объекта. Этим определяется тип колонки таб части формы.

То есть должна быть установлена связь между реквизитом табчасти объекта и реквизитом табчасти формы. Форм у объекта метаданных может быть много мы знаем. Табличную часть формы объекта можно получить через объект ЭлементыФормы:

Объект ЭлементыФормы используется для доступа к элементам управления, расположенным на форме, в частности к таб части документа.

 
        ДокСсылка = СсылкаНаДокумент(ТипДокумента, НомерДок);
        ДокОбъект = ДокСсылка.ПолучитьОбъект();
                                
        ФормаОбъекта = ДокОбъект.ПолучитьФорму();
        Для Каждого Элемент Из ФормаОбъекта.ЭлементыФормы Цикл
                Если Тип(Элемент) = Тип("ТабличноеПоле") Тогда //элемент формы - табличное поле
                                                        
                        Если Элемент.Имя = "Товары" Тогда
                                Сообщить("Это табличное поле!! "  + Элемент.Имя );
                                
                                //ТабПоле = ФормаОбъекта.ЭлементыФормы.Товары.Значение;
                                ТабПоле = Элемент.Значение;
                                Колво = ТабПоле.Количество();
                                Сообщить("Количество строк: " + Колво); 
                                
                                Для Каждого ТекущаяСтрока Из ТабПоле Цикл
                                        
                                        Имя = ТекущаяСтрока.Номенклатура;
                                        Сообщить(Имя); 
                
                                КонецЦикла;                             
                                
                        КонецЕсли;      
                                                        
                КонецЕсли;                                      
        КонецЦикла;  
 

Результат для документа Авансовый отчет:

Это табличное поле!! Товары
Количество строк: 4
Женские ботфорты коричневые
Ботинки женские демисезонные
Ботинки женские натуральная кожа
Женские босоножки       

Если надо получить значение всех колонок всех строк, то организуем дважды вложенный цикл:
Во внешнем цикле сканируются строки, во внутреннем — колонки:

 
        ДокСсылка = СсылкаНаДокумент(ТипДокумента, НомерДок);
        ДокОбъект = ДокСсылка.ПолучитьОбъект();
                                
        ФормаОбъекта = ДокОбъект.ПолучитьФорму("ФормаДокумента");
        Для Каждого Элемент Из ФормаОбъекта.ЭлементыФормы Цикл
                Если Тип(Элемент) = Тип("ТабличноеПоле") Тогда
                                                        
                        Если Элемент.Имя = "ВыданныеАвансы" Тогда //таб часть объекта
                                Сообщить(" Это табличное поле!! "  + Элемент.Имя );
                                
                                ТабПоле = Элемент.Значение;
                                Индекс = 0;
                                Для Каждого ТекущаяСтрока Из ТабПоле Цикл
                                        
                                        Сообщить("=======================");
                                        Для Каждого Колонка Из Элемент.Колонки Цикл
                                                
                                                ИмяКолонки = Строка(Колонка.Имя);
                                                Сообщить(ИмяКолонки);
                                                Имя = ТекущаяСтрока[ИмяКолонки];//сработает только если есть такое поле таб части объекта
                                                Сообщить("=== " + Имя); 
                                                
                                        КонецЦикла;
                                        
                                        Индекс = Индекс + 1;
                                        Если Индекс > 0 Тогда break КонецЕсли; //только первая строка
                                        
                                        
                                КонецЦикла;                             
                                
                                                        
                        КонецЕсли;      
                                                        
                КонецЕсли;                                      
        КонецЦикла;    
 

Результат для документа Авансовый отчет:

Это табличное поле!! ВыданныеАвансы
=======================
НомерСтроки 1
ДокументАванса Расходный кассовый ордер ТК000000004 от 15.02.2007 19:24:03
СуммаДокументаАванса 300
ВалютаДокументаАванса USD
Выдано 300
Сумма 174

 Такое двойное сканирование удобно использовать для быстрой проверки того, что все колонки таб части формы имеют связь с реквизитами таб части объекта. Если такой связи у какой-либо колонки нет, система сгенерирует ошибку.

Granfury

9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

1

Получить данные из табличной части документа, как?

10.05.2016, 10:24. Показов 44186. Ответов 10

Метки нет (Все метки)


Доброго времени суток!
Есть обработка в которой надо взять значение из табличной части документа конфигурации «ПриказНаОтгрузку»
Табличная часть «Товары» обьект «Количество»
как получить в обработке «Количество» ???
//Как вывести «Количество» в сообщение?

1C
1
2
Количество1 = Документы.Ссылка.ПриказНаОтгрузку.ТабличнаяЧасть.Количество;
сообщить(количество1)



0



SpiRUS

11 / 11 / 5

Регистрация: 23.06.2015

Сообщений: 74

10.05.2016, 10:44

2

Если имеется в виду получить количество позиций в табличной части «Товары», то

1C
1
2
Количество = "СсылкаНаДокумент".Товары.Количество();
Сообщить(Количество)

А если сообщить значение каждой строки из колонки «количество» то

1C
1
2
3
4
Товары = "СсылкаНаДокумент".Товары;
Для Каждого СтрокаТЗ Из Товары Цикл
   Сообщить(СтрокаТЗ.Количество);
КонецЦикла;



1



Granfury

9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

10.05.2016, 11:47

 [ТС]

3

Ссылка на документ — как правильно получить?

1C
1
2
3
4
Товары = Документы.ПриказНаОтгрузку.Товары; //Ошибка: Поле обьекта не обнаружено "Товары"
Для Каждого СтрокаТЗ Из Товары Цикл
   Сообщить(СтрокаТЗ.Количество);
КонецЦикла;

Товары — это табличная часть бокумента, может я как то не так ссылаюсь на эту таб. часть?



0



SpiRUS

11 / 11 / 5

Регистрация: 23.06.2015

Сообщений: 74

10.05.2016, 12:01

4

Цитата
Сообщение от Granfury
Посмотреть сообщение

Ссылка на документ — как правильно получить?

Способов то много. Можно запросом, можно на форму вынести поле ввода. Можно просто:

1C
1
Ссылка = Документы.ПриказНаОтгрузку.НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>).Ссылка;



0



Granfury

9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

10.05.2016, 13:51

 [ТС]

5

нет как мне обратиться к табличной части документа?

1C
1
2
орг1 = ДанныеПечати.Ссылка.ПриказНаОтгрузку.Организация;
        Сообщить(орг1);

так получается.//сделал для проверки.
а если пытаюсь достучаться до табличной части документа «Количество» то не получается, не знаю как.

1C
1
2
орг1 = ДанныеПечати.Ссылка.ПриказНаОтгрузку.ТабличныеЧасти.Товары.Количество //Не работает;
        Сообщить(орг1);

— не получается!



0



GreenkA

Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

10.05.2016, 14:24

6

Лучший ответ Сообщение было отмечено Granfury как решение

Решение

Granfury, Количество — это реквизит табличной части Товары? Надо получать конкретную строку тогда: обходить циклом, по индексу(если заранее знаете количество строк ТЧ):

1C
1
2
3
Для Каждого ТекСтр Из ДанныеПечати.Ссылка.ПриказНаОтгрузку.Товары Цикл
   Сообщить(ТекСтр.Количество);
КонецЦикла;



2



Granfury

9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

10.05.2016, 15:32

 [ТС]

7

GreenkA, Спасибо!

Добавлено через 56 минут
GreenkA, А как суммировать полученные данные

1C
1
2
3
Для Каждого ТекСтр Из ДанныеПечати.Ссылка.ПриказНаОтгрузку.Товары Цикл
   Сообщить(ТекСтр.Количество);
КонецЦикла;

Результат:
2
2
2
2
Е=8;
Как получить результат Сумма(Количество)?



0



GreenkA

Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

10.05.2016, 15:38

8

Granfury, можно конечно обойти табличную часть и

1C
1
2
3
4
КоличествоИтог = 0;
Для Каждого ТекСтр Из ДанныеПечати.Ссылка.ПриказНаОтгрузку.Товары Цикл
   КоличествоИтог  = КоличествоИтог  + ТекСтр.Количество;
КонецЦикла;

или сразу:

1C
1
КоличествоИтог  = ДанныеПечати.Ссылка.ПриказНаОтгрузку.Товары.Итог("Количество");



0



Granfury

9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

10.05.2016, 18:38

 [ТС]

9

GreenkA, «Поле обьекта не обнаружено «ПриказНаОтгрузку»»

1C
1
2
{ВнешняяОбработка.ПечатьТранспортнойНакладной.МодульОбъекта(221)}: Поле объекта не обнаружено (ПриказНаОтгрузку)
        Для Каждого ТекСтр Из ДанныеПечати.Ссылка.ПриказНаОтгрузку.Товары Цикл

Что не так?



0



Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

10.05.2016, 18:40

10

Granfury, а что содержится в Ссылка? Вы же уже делали вывод Количества и все было нормально, что изменили?



1



9 / 9 / 5

Регистрация: 22.04.2015

Сообщений: 305

11.05.2016, 13:03

 [ТС]

11

пытаюсь разобраться

Добавлено через 18 часов 7 минут
спасибо! работает



0



 0 

   

Распечатать

Как определить какие реквизиты имеются в табличной части документа

Код 1C v 8.х

 ПоступлениеТовара = Метаданные.Документы.ПоступлениеТовара;
Реквизиты = ПоступлениеТовара.ТабличныеЧасти.Товары.Реквизиты;
Для каждого наим из Реквизиты Цикл
Сообщить("Имя реквизита " + наим.Имя +
"; тип реквизита " + наим.Тип);
КонецЦикла;
// Результат:
// Имя реквизита Наименование; тип реквизита Справочник ссылка: Номенклатура
// Имя реквизита Количество; тип реквизита Число
// Имя реквизита Цена; тип реквизита Число
// Имя реквизита Сумма; тип реквизита Число
  1. 09.06.2019, 15:59


    #1

    MasterLoma вне форума


    Гость форума


    Question Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Здравствуйте! Подскажите, пожалуйста, как получить значение реквизита табличной части (в справочнике)? У меня есть таб.часть «Образование», в ней есть реквизит «ВидОбразования» (ссылается на перечисление видов образования). Как получить значение данного реквизита?


  2. 06.07.2019, 20:53


    #2

    iLex вне форума


    Гость форума


    По умолчанию Re: Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Не силен в 1С, но вижу, что за месяц не ответил никто. Если правильно понял, то:
    Получить табличную часть можно так:

    // Пусть СсылкаНаТЗ это ссылка на владельца ТЧ Образование
    ТаблОбразование = СсылкаНаТЗ.Образование.Выг рузить(); // это таблица значений
    Для Каждого Обр из ТаблОбразование Цикл
    Сообщить(Обр.ВидОбразовани я);
    КонецЦикла;

    // Или
    Номер = 0;
    Пока Номер < ТаблОбразование.Количеств� �() Цикл
    Сообщить(ТаблОбразование[Номер].ВидОбразования);
    Номер = Номер + 1;
    КонецЦикла;


  3. 06.07.2019, 20:59


    #3

    iLex вне форума


    Гость форума


    По умолчанию Re: Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Какая-то ерунда с сообщением — половина стерлась через несколько минут.
    И как отредактировать не понимаю…

    Не силен в 1С, но вижу, что за месяц не ответил никто. Если правильно понял, то:
    Получить табличную часть можно так:

    // Пусть СсылкаНаТЗ это ссылка на владельца ТЧ Образование
    ТаблОбразование = СсылкаНаТЗ.Образование.Выр узить(); // это таблица значений
    Для Каждого Обр из ТаблОбразование Цикл
    Сообщить(Обр.ВидОбразовани я);
    КонецЦикла;

    // Или
    Номер = 0;
    Пока Номер < ТаблОбразование.Количеств� �() Цикл
    Сообщить(ТаблОбразование[Номер].ВидОбразования);
    Номер = Номер + 1;
    КонецЦикла;


  4. 06.07.2019, 21:02


    #4

    iLex вне форума


    Гость форума


    По умолчанию Re: Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Попытка 3. Расширенный режим. Почему сообщения так корежит?

    Какая-то ерунда с сообщением — половина стерлась через несколько минут.
    И как отредактировать не понимаю…

    Не силен в 1С, но вижу, что за месяц не ответил никто. Если правильно понял, то:
    Получить табличную часть можно так:

    // Пусть СсылкаНаТЗ это ссылка на владельца ТЧ Образование
    ТаблОбразование = СсылкаНаТЗ.Образование.Выг рузить(); // это таблица значений
    Для Каждого Обр из ТаблОбразование Цикл
    Сообщить(Обр.ВидОбразовани я);
    КонецЦикла;

    // Или
    Номер = 0;
    Пока Номер < ТаблОбразование.Количеств� �() Цикл
    Сообщить(ТаблОбразование[Номер].ВидОбразования);
    Номер = Номер + 1;
    КонецЦикла;


  5. 06.07.2019, 21:05


    #5

    iLex вне форума


    Гость форума


    По умолчанию Re: Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Попробую картинкой

    Screenshot_1.jpg


  6. 09.07.2019, 11:44


    #6

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Получение значения реквизита табличной части. 1С:Предприятие 8.3

    Цитата Сообщение от iLex
    Посмотреть сообщение

    Не силен в 1С, но вижу, что за месяц не ответил никто. Если правильно понял, то:
    Получить табличную часть можно так:

    Никто не ответил потому как вопрос дурацкий.

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

    если знаешь номер строки (например первая) то обращение будет Образование[0].ВидОбразования


Как получить имя реквизита табличной части?

Как получить имя реквизита табличной части, а именно выбранной колонки.
Задача обойти все элементы табличной части по определенному реквизиту.

UPD #1 — Перефразировал
Как получить ИМЯ реквизита колонки ТЧ находясь в ячейке ТЧ.


  • Вопрос задан

    более трёх лет назад

  • 2067 просмотров

Пригласить эксперта

Ответ зависит от варианта разрабатываемого интерфейса.

Обычный интерфейс:
Элемент формы связанный с табличной частью «ТаблицаДанных» — ЭлементыФормы.ТаблицаДанных
Текущая колонка — ЭлементыФормы.ТаблицаДанных.ТекущаяКолонка
Имя реквизита формы для колонки — ЭлементыФормы.ТаблицаДанных.ТекущаяКолонка.Имя
Имя реквизита табличной части, который связан с колонкой — ЭлементыФормы.ТаблицаДанных.ТекущаяКолонка.Данные

Управляемый интерфейс
Элемент формы связанный с табличной частью «ТаблицаДанных» — Элементы.ТаблицаДанных
Текущая колонка — Элементы.ТаблицаДанных.ТекущийЭлемент
Имя реквизита формы для колонки — Элементы.ТаблицаДанных.ТекущийЭлемент.Имя
Имя реквизита табличной части, который связан с колонкой — Элементы.ТаблицаДанных.ТекущийЭлемент.ПутьКДанным (доступно только на сервере)

Это можно сделать запросом. Другой вариант — обойти в цикле.


  • Показать ещё
    Загружается…

23 мар. 2023, в 12:27

1500 руб./в час

23 мар. 2023, в 12:26

5000 руб./за проект

23 мар. 2023, в 12:15

10000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Загс могоча забайкальский край часы работы
  • Документ с содержанием основных реквизитов
  • Загс на веры хоружей в бресте время работы
  • Документ с угловым расположением реквизита
  • Загс на институтском проспекте часы работы