Имя: Пароль:
1C
 
Получить значение реквизита из табличной части документа
0 theblockhead
 
05.06.18
01:37
Доброй ночи, подскажите пожалуйста.
Получить значение не из табличной части Документ[реквизит.имя], а как например, если есть табличная часть "тест" со своими реквизитами ?
1 hhhh
 
05.06.18
03:18
(0) Документ[табличнаячасть.имя][0][реквизит.имя]

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

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


Документ[табличнаячасть.имя][99][реквизит.имя]
2 theblockhead
 
05.06.18
12:25
(1) А можно еще вопрос, получается если хочу обойти все данные из документа, мне надо обойти все его реквизиты, а также все реквизиты табличной части и получается все её строки ?
Немного не понимаю этих моментов. Задача была вывести документ в текстовый формат(csv, txt) с помощью метаданных (только вот документ любой).
3 hhhh
 
05.06.18
12:28
(2) ну конечно в текстовый файл ты все строки должен добавить. Это не обсуждается.
4 1Сергей
 
05.06.18
12:29
(2) используй Для Каждого...
5 theblockhead
 
05.06.18
12:31
(3) (4) ДокументДляВыгрузкиСсылка = ЭтаФорма.ЭлементыФормы.ДокументСсылка.Значение.Ссылка;
    РеквизитыДокумента = ДокументДляВыгрузкиСсылка.Метаданные().Реквизиты;
    Текст = Новый ТекстовыйДокумент;
      Для Каждого РеквизитДокумента Из РеквизитыДокумента Цикл
        Текст.ДобавитьСтроку("" + РеквизитДокумента.Имя + ":" + ДокументДляВыгрузкиСсылка[РеквизитДокумента.Имя] );
    КонецЦикла;  
    ТЧДокумента = ДокументДляВыгрузкиСсылка.Метаданные().ТабличныеЧасти;
    Для Каждого ТекТЧДокумента Из ТЧДокумента Цикл
    СсылкаТЧ = ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя];
        Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл
          Текст.ДобавитьСтроку("" + строкаТЧ.Имя + ":" + ???СсылкаТЧ[0].[строкаТЧ.Имя]??????);
        КонецЦикла;
      КонецЦикла;
    Текст.Записать(ИмяФайла);
Я это сделал, вот теперь вопрос как проверить сколько строк в табличной части или я что-то не поянл
6 VitShvets
 
05.06.18
12:37
:) См (4):
Для каждого ТекСтрока Из ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя] Цикл
7 1Сергей
 
05.06.18
12:38
(5)
Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл
    Для Каждого СтрокаТЧ ИЗ СсылкаТЧ Цикл
         Текст.ДобавитьСтроку("" + строкаТЧ.Имя + ":" + СтрокаТЧ[строкаТЧ.Имя]);


Как-то так
8 hhhh
 
05.06.18
12:38
Для каждого стр Из СсылкаТЧ цикл
        Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл
          Текст.ДобавитьСтроку("" + строкаТЧ.Имя + ":" + стр[строкаТЧ.Имя]);
        КонецЦикла;
         КонецЦикла;
9 1Сергей
 
05.06.18
12:38
(7) ох, блин. Не читай (7)
10 hhhh
 
05.06.18
12:38
еще номер строки тч надо по идее
11 theblockhead
 
05.06.18
12:42
(10) (6) (9) Спасибо большое, постараюсь разобраться. Меньше недели в 1С, до этого опыт был с другими языками. Уже и 1С разонравился, но просто "спортивный интерес" закончить начатое.
12 theblockhead
 
05.06.18
12:53
(10) ТЧДокумента = ДокументДляВыгрузкиСсылка.Метаданные().ТабличныеЧасти;
    Для Каждого ТекТЧДокумента Из ТЧДокумента Цикл
     СсылкаТЧ = ДокументДляВыгрузкиСсылка[ТекТЧДокумента.Имя];
        Для каждого стр Из СсылкаТЧ цикл
          Для каждого строкаТЧ Из ТекТЧДокумента.Реквизиты цикл
           Текст.ДобавитьСтроку("" + строкаТЧ.Имя + ":" + стр[строкаТЧ.Имя]);
          КонецЦикла;
        КонецЦикла;
    КонецЦикла;

Сделал так, теперь читает только реквизиты документа, а в табличной части не читает.
Что - то не так пошло :(
13 Гипервизор
 
05.06.18
12:56
(11) "1С разонравился"
Зря вы это написали )
14 theblockhead
 
05.06.18
13:03
(13) Да не привычно все как-то, задание дали сразу такое, поэтому кроме негатива пока ничего нет, может когда результат будет изменю свое мнение
15 1Сергей
 
05.06.18
13:48
(14) Кроме 1С есть опыт с языками программирования?
16 theblockhead
 
05.06.18
13:52
(15) C#, js, C++
17 1Сергей
 
05.06.18
14:09
(16) тогда будешь плеваться на 1С. Это неизбежно