|
Как получить значение строки табличной части документа | ☑ | ||
---|---|---|---|---|
0
arkada
01.05.12
✎
05:09
|
Здравствуйте. Делаю первые шаги в программировании на 8-ке. Возникла проблема следующего характера: Есть журнал документов. Надо перебрать все документы журнала и получить некоторые значения выбранного документа. Реквизиты документа получить удается, а значения табличной части не получается
Вот начало процедуры Процедура СоздатьПлан(Элемент) ТекДок = ЖурналыДокументов.Договоры1с.Выбрать(); Пока ТекДок.Следующий() Цикл Сообщить(ТекДок.Контрагент); Сообщить(ТекДок.Номер); а как перебрать все строки выбранного документа и получить значение реквизита выбранной строки??? КонецЦикла ; КонецПроцедуры Заранее спасибо |
|||
1
golden-pack
01.05.12
✎
05:12
|
ЖурналыДокументов.Договоры1с.Выбрать(); // это жесть
Пока ТекДок.Следующий() Цикл Сообщить(ТекДок.Контрагент); Сообщить(ТекДок.Номер); Для Каждого Стр Из ТекДок.<ИмяТЧ> Цикл Сообщить(Стр.<Реквизит>); КонецЦикла; |
|||
2
arkada
01.05.12
✎
05:13
|
а почему жесть, может как-то по-другому надо было?
|
|||
3
arkada
01.05.12
✎
05:23
|
Вот, что получилось
Процедура СоздатьПлан(Элемент) ТекДок = ЖурналыДокументов.Договоры1с.Выбрать(); Пока ТекДок.Следующий() Цикл Сообщить(ТекДок.Контрагент); Сообщить(ТекДок.Номер); Для Каждого Стр Из ТекДок.ВидыПрограммНаСопровождении Цикл Сообщить(Стр.Наименование); выдается ошибка "{Документ.ПланОбновлений.Форма.ФормаДокумента.Форма(8)}: Поле объекта не обнаружено (ВидыПрограммНаСопровождении) Для Каждого Стр Из ТекДок.ВидыПрограммНаСопровождении Цикл" Что не так? КонецЦикла ; КонецЦикла ; КонецПроцедуры |
|||
4
catena
01.05.12
✎
05:31
|
(3)Значит у ТекДок нет ТЧ, под названием ВидыПрограммНаСопровождении.
|
|||
5
arkada
01.05.12
✎
05:48
|
Всё проверил , пришел к выводу, что получить можно только те реквизиты, для которых созданы графы в журнале документов, а если нет граф для реквизитов документа в журнале, то их и получить нельзя, не говоря уже о табличной части документа. Может как по-другому они обрабатываются???
|
|||
6
arkada
01.05.12
✎
05:57
|
Я понял. В моём случае надо было делать так
ТекДок = Документы.Договор1С.Выбрать(); а не ТекДок = ЖурналыДокументов.Договоры1с.Выбрать(); Спасибо всем, кто помогал |
|||
7
Капитан О
01.05.12
✎
07:37
|
никто ещё не сказал, что есть запросы?
|
|||
8
Мимохожий Однако
01.05.12
✎
08:20
|
(7) Запросы - для ботаников! )))
|
|||
9
zak555
01.05.12
✎
10:47
|
(6) а если в журнале Договоры1с появится ещё один документ ? =)
|
|||
10
moshefoo
01.05.12
✎
10:56
|
Запросы работают быстрее с большим объемом данных и ботаники тут не причем,
текДок = Документы.Договор.Выбрать(); ТекДок.Получить(); СтрокаТабчасти = ТекДок.Товары.ТекущиеДанные; Для каждого из ТекДок.Товары Цикл Сообщить(СтркоаТабЧасти.Наименвоание+СтркоаТабЧасти.ВидДоговора); КонецЦикла; |
|||
11
zak555
01.05.12
✎
10:59
|
(10) что такое получить ?
|
|||
12
moshefoo
01.05.12
✎
11:08
|
ТекДок.ПолучитьОбъект()
|
|||
13
moshefoo
01.05.12
✎
11:09
|
получаешь конкретный объект - документ и делаешь цикл к таб части перебераешь строки и вытаскиваешь значения (наименвоание,вид договора , цена,сумаа и тд)
|
|||
14
moshefoo
01.05.12
✎
11:10
|
Пока конкретный документ не получишь методом получитьОбъект . про таб части забудь))
|
|||
15
moshefoo
01.05.12
✎
11:12
|
когда делаешь выборку то указываешь конкретный вид документа
Документы.Договор1С.Выбрать() в данном случае это Договор1 .а если в журнале появетсья еще один вид документов то он в выборку никак не попадет придетсья тогда еще одну выборку делать с указанием того вида документа, но если в базе документов более 1000 тогда лучше все делать запросом |
|||
16
Рэйв
01.05.12
✎
11:13
|
(14)Можно и ссылку прочитать.Необязательно объект получать.
|
|||
17
moshefoo
01.05.12
✎
11:18
|
обязательно .если хочешь .что то делать с таб части
по ссылке лучше получать реквизиты шапки .но по идее можно и таб часть выбрать |
|||
18
Мимохожий Однако
01.05.12
✎
11:22
|
(10)2 и 3 строка лишние.
|
|||
19
Рэйв
01.05.12
✎
11:43
|
(17)Не факт, что ТС этого хочет:-)...
|
|||
20
sergeante
01.05.12
✎
15:17
|
(17) по условию в (0) этого не было. Не придумывайте лишнего.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |