Имя: Пароль:
1C
 
Как проверить наличие колонки в ТЧ документа?
0 Прекрасный дилетант
 
13.12.10
07:29
Как проверить наличие определенной колонки в ТЧ документа? Используя саму ТЧ, без ссылки на документ.
1 Defender aka LINN
 
13.12.10
07:31
Через метаданные. Или выгрузить структуру в ТЗ и посмотреть в ней.
2 6tuf
 
13.12.10
07:33
еще можно через элементы формы. что-нибудь типа
Если ЭтаФорма.ЭлементыФормы.ТабличнаяЧасть.Колонки.Найти("НужнаяКолонка") = Неопределено Тогда
Сообщить("Все плохо");
КонецЕсли;
3 Прекрасный дилетант
 
13.12.10
07:33
(1) Как через метаданные?
4 Генератор
 
13.12.10
07:38
Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт

   ТабЧасть = МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти);

   Если ТабЧасть = Неопределено Тогда // Нет такой таб. части в документе
       Возврат Ложь;

   Иначе
       Возврат НЕ (ТабЧасть.Реквизиты.Найти(ИмяРеквизита) = Неопределено);

   КонецЕсли;

КонецФункции
5 Генератор
 
13.12.10
07:40
+(4) Метаданные взять методом Метаданные() у объекта или ссылки, взято из типовой
6 Прекрасный дилетант
 
13.12.10
07:41
(4) у меня есть только сама ТЧ, как по ней получить метаданные документа и имя ТЧ?
7 Прекрасный дилетант
 
13.12.10
07:43
+6 такой код я бы и в типовой подглядел.
8 Рэйв
 
13.12.10
07:44
(6)В каком модуле происходят эти танцы с бубном?
9 Прекрасный дилетант
 
13.12.10
07:45
(8) в общем, а какая разница?
10 Рэйв
 
13.12.10
07:49
(9)Да вобщем то большая. Было бы в модуле объекта или формы было бы проще.

известная ТЧ - это таб часть документа или таб . поле на форме?
11 ShoGUN
 
13.12.10
07:52
(6) Если тебе надо строго БЕЗ ССЫЛКИ, то
ТЗ = ТЧ.ВыгрузитьКолонки();  
ЕстьКолонка = ЗначениеЗаполнено(ТЗ.Колонки.Найти(ИмяКолонки));
12 Прекрасный дилетант
 
13.12.10
07:52
(10) ТЧ это ТЧ
13 Рэйв
 
13.12.10
07:56
(12)Аха. Только в модулях объекта она нафиг бы не нужна была.

ЭтотОбъект.Метаданные() +(4)
14 Рэйв
 
13.12.10
07:57
Вернее нужна но подругому:)
15 ShoGUN
 
13.12.10
07:59
(13) Прозреваю: (0) пишет какую-то универсальную обработку, которая перебирает все документы в базе. Правда что мешает при этом получить ссылку - нипанятна.
16 Прекрасный дилетант
 
13.12.10
08:01
(15) ссылку ладно, как получить имя ТЧ?
17 Прекрасный дилетант
 
13.12.10
08:05
(15) нифига не прозреваешь. В типовой процедура в общем модуле, передается ссылка на документ и ТЧ. Мне надо проверить наличие колонок в ТЧ.
18 ShoGUN
 
13.12.10
08:08
(17) Так ссылка-то передается... Или я чего-то не понимаю?
19 ShoGUN
 
13.12.10
08:09
+(18) И нафига вообще имя ТЧ? Дайте кода уже.
20 Прекрасный дилетант
 
13.12.10
08:11
(18) передается, но как получить имя ТЧ?
21 Прекрасный дилетант
 
13.12.10
08:11
(19) имя ТЧ для
МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти);
22 ShoGUN
 
13.12.10
08:16
(21) Опс... Да, действительно. Вот всегда такое с метаданными :/
23 Рэйв
 
13.12.10
08:18
ну если немного извратиться то можно так:

строчка=СтрЗаменить(Строка(ТЧ),"ДокументТабличнаяЧасть.","");
ТочкаМесто=Найти(строчка,".");
дл=СтрДлина(строчка);
ИмяТабЧасти=Прав(строчка,(дл-ТочкаМесто));
Сообщить(ИмяТабЧасти);
24 Прекрасный дилетант
 
13.12.10
08:21
Придется выгружать в ТЗ, спасибо за помощь.
Тему можно закрыть.
25 TankerM
 
13.12.10
08:55
А перебрать все табличные части документа, каждую сравнить с неизвестной ТЧ и таким образом установить ее имя?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший