Имя: Пароль:
1C
 
А как программно узнать есть ли в документе Идентификатор "Контрагент"?
0 Ленин
 
13.10.05
15:43
А как программно узнать есть ли в документе Идентификатор "Контрагент"?
1 Иешуа
 
13.10.05
15:46
(0) Можно поюзать
Попытка
Исключение;
КонецПопытки;
2 Волшебник
 
модератор
13.10.05
15:46
(1) Метод Рупора.
3 Rovan
 
гуру
13.10.05
15:46
(0) в смысле реквизит (поле) ?
4 Гламурный Подонок
 
13.10.05
15:46
(0)Через метаданные.
5 Akula
 
13.10.05
15:52
Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита).Выбран()
или
Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита).Выбран()
6 Ленин
 
13.10.05
15:57
Akula  Спасиб!!! Сей час поп робую.....
7 Simod
 
13.10.05
16:03
(0) Примерно так:

//******************************************************************************
// ПроверкаИдентификатора(ИмяРеквизита, ВидДокумента)
//
// Параметры:
//  ИмяРеквизита - имя реквизита (строка)
//  ВидДокумента - вид документа (строка)
//
// Возвращаемое значение:
//  0 - отсутствие реквизита с заданным именем;
//  1 - наличие реквизита с заданным именем.
//
// Описание:
//  Проверяет, есть ли в структуре метаданных документа указанного вида
//    реквизит с указанным названием
//
Функция ПроверкаИдентификатора(ИмяРеквизита, ВидДокумента)
   
   // Проверка
   Если (ПустоеЗначение(ИмяРеквизита) = 1)
   или  ((ПустоеЗначение(ВидДокумента) = 1)) Тогда
       Возврат 0;
   КонецЕсли;
   
   // Общие реквизиты
   Для Сч = 1 По Метаданные.ОбщийРеквизитДокумента() Цикл
       Если Метаданные.ОбщийРеквизитДокумента(Сч).Идентификатор = ИмяРеквизита Тогда
           Возврат 1;
       КонецЕсли;
   КонецЦикла;
   
   // Реквизиты шапки
   Для Сч = 1 По Метаданные.Документ(ВидДокумента).РеквизитШапки() Цикл
       Если Метаданные.Документ(ВидДокумента).РеквизитШапки(Сч).Идентификатор = ИмяРеквизита Тогда
           Возврат 1;
       КонецЕсли;
   КонецЦикла;
   
   // Реквизиты табличной части
   Для Сч = 1 По Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти() Цикл
       Если Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(Сч).Идентификатор = ИмяРеквизита Тогда
           Возврат 1;
       КонецЕсли;
   КонецЦикла;
   
   Возврат 0;
   
КонецФункции // ПроверкаИдентификатора()
8 skunk
 
13.10.05
16:03
(2)вопрос... почему метод Рупора...

try
{
}
catch(...)
{
}

известен давно
9 Гламурный Подонок
 
13.10.05
16:04
(5)Неполно.
10 Волшебник
 
модератор
13.10.05
16:05
(8) Попытка...Исключение применяется для отлова ошибок, а вот для проверка наличия чего-то придумал применять его Рупор абсурда. По принципу: если случилась ошибка, то это именно то, что нам нужно.
11 skunk
 
13.10.05
16:08
(10)не знаю... использовал это... когда Рупора даже близко не знал... например для выяснения стоит ли в дисководе дискета или нет...
12 Ковычки
 
13.10.05
16:09
(10) До Рупора в Раусе во весь рост использовали
13 скучно мне
 
13.10.05
16:11
+12
см. стандартную обработку загрузки адресного классификатора от 1с :) там используется именно такой подход при загрузке с ИТС.
14 Grant
 
13.10.05
16:11
(11,12) Не спорьте... Дисковод изобрёл Рупор... и написал Рарус, после того, как заработал дисковод...
15 Широкий
 
13.10.05
16:11
Я тоже это юзал
16 skunk
 
13.10.05
16:12
да и если в первых постах поискать... я показывал через это проверку... запущен outlook или нет...
17 Ленин
 
13.10.05
16:19
(7) ОбщийРеквизитДокумента() - нет такой функции :(
18 skunk
 
13.10.05
16:23
Количество
Count
Синтаксис:
Метаданные.ОбщийРеквизитДокумента()
Назначение:
 Определение количества общих реквизитов документов
Возвращаемое значение

 Число - количество общих реквизитов документов
19 Simod
 
13.10.05
16:24
(17) А у меня есть  :-)
20 avb
 
13.10.05
16:26
(7) Надо бы документацию внимательно читать, чтоб впредь не позориться так ...
21 Ленин
 
13.10.05
16:31
В Синтаксис-помощнике нет справки об ОбщийРеквизитДокумента():(
22 skunk
 
13.10.05
16:33
(21)прав нету... но функция есть...
23 Ленин
 
13.10.05
16:40
(22) Да, я вижу, что я один ее не знаю... Подскажи где списать....
24 Ленин
 
13.10.05
16:50
Иешуа - - Спасибо огромное, твой совет самый гениальный (все гениальное - просто), сообщи куда выслать ящик пива...:)))
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс