Имя: Пароль:
1C
 
Как проверить есть ли табличная часть?
0 CalvinKlein
 
20.05.11
10:38
Как можно проверить, есть ли табличная часть в документе?
Делаю так,не работает:
Если (Результат.Регистратор.Услуги = Неопределено ) тогда
пишет поле объекта не обнаружено
1 Мыш
 
20.05.11
10:40
(0) Через метаданные проверять надо.
2 Ненавижу 1С
 
гуру
20.05.11
10:41
Регистратор.Метаданные().ТабличныеЧасти.Найти("Услуги")=Неопределено
3 aleks-id
 
20.05.11
10:41
Функция ЕстьРеквизитОбъекта(ИмяРеквизита, Объект) Экспорт
           
           МетаданныеОбъекта = Объект.Метаданные();
   Если МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
       Возврат Ложь;
   Иначе
       Возврат Истина;
   КонецЕсли;

КонецФункции
4 CalvinKlein
 
20.05.11
10:41
(1) Можешь пример показать?
5 Mitriy
 
20.05.11
10:41
(1) можно и без метаданных...
6 Mitriy
 
20.05.11
10:42
(5)+ и без попытки...
7 Мыш
 
20.05.11
10:43
(5) Можно, наверное. Но правила хорошего тона рекомендуют именно так. :)
8 Ненавижу 1С
 
гуру
20.05.11
10:44
(5) поделишься?
9 pavig
 
20.05.11
10:47
(8) +1
10 Mitriy
 
20.05.11
10:49
УИ = Новый УникальныйИдентификатор();
СтруктураПроверки = Новый Структура("Услуги", УИ);
ЗаполнитьЗначенияСвойств(Результат.Регистратор);
Если СтруктураПроверки.Услуги = УИ Тогда
Сообщить("Нет такой табчасти/реквизита");
КонецЕсли;

в какой-то типовой давно уже подсмотрел, если честно ))
11 Mitriy
 
20.05.11
10:50
(10)+ для проверки реквизитов форм хорошо продходит...
12 Mitriy
 
20.05.11
10:50
(11) или экспортных переменных...
13 pavig
 
20.05.11
10:53
ЗаполнитьЗначенияСвойств(Результат.Регистратор);

что это?
14 Рэйв
 
20.05.11
10:54
15 pavig
 
20.05.11
10:55
я про то что там как минимум два обязательных параметра

Глобальный контекст
ЗаполнитьЗначенияСвойств (FillPropertyValues)
Синтаксис:
ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>, <Список свойств>, <Исключая свойства>)
Параметры:
<Приемник> (обязательный)
Тип: Произвольный. Значение, чьи свойства будут заполнены значениями соответствующих свойств <Источника>.
<Источник> (обязательный)
Тип: Произвольный. Значения свойств данного объекта будут установлены в соответствующие свойства <Приемника>.
16 Ненавижу 1С
 
гуру
20.05.11
10:55
(10)
Недостаточно фактических параметров (ЗаполнитьЗначенияСвойств)
<<?>>ЗаполнитьЗначенияСвойств(Регистратор);

мне кажется через метаданные будет попроще как-то
17 Рэйв
 
20.05.11
10:56
(16)Да он просто СтруктураПроверки  вставить в параметры забыл:)
18 pavig
 
20.05.11
10:57
(17) позже сам уже догадался :-)
просто как бы пример с ошибкой
19 Ненавижу 1С
 
гуру
20.05.11
10:57
(17) все равно сложноватенько
20 pavig
 
20.05.11
10:57
хотя, тоже вариант вполне уместный

насколько конкурентен с Метаданными?
21 Ненавижу 1С
 
гуру
20.05.11
10:59
в 8.2 не прокатит, нужен другой тип данных
тип УникальныйИдентификатор может быть у реквизита
22 Mitriy
 
20.05.11
11:00
(17) ну да ))
23 Mitriy
 
20.05.11
11:00
(21) такой же? О_О
24 Ненавижу 1С
 
гуру
20.05.11
11:02
(23) ну теоретически может быть
специально пустой хранят
25 Mitriy
 
20.05.11
11:08
(24) УИ = Новый УникальныйИдентификатор() пустым не будет никогда...
26 Mitriy
 
20.05.11
11:08
(15)+ ты же сравниваешь не типы, а значения...
27 Ненавижу 1С
 
гуру
20.05.11
11:10
(25) туплю же
28 CalvinKlein
 
20.05.11
12:26
Спасибо!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс