Имя: Пароль:
1C
1С v8
Как узнать есть ли реквизит докмента
0 Melcor
 
05.11.13
09:18
Доброго утра. 1С8.2 КА 1.1 Стоит задача узнать есть ли у документа реквизит склад, но в этой конфе нет процедуры ОбщегоНазначения.ЕстьРеквизитДокумента. Можно как-то еще выяснить наличие реквизита?
1 zak555
 
05.11.13
09:19
метаданные
2 Ненавижу 1С
 
гуру
05.11.13
09:19
можно
3 shuhard
 
05.11.13
09:19
(0) написать свою функцию слабо ?
4 shlyahtich
 
05.11.13
09:19
Введите свой общий модуль и туда эту процедуру - для обновлений не помеха. А проверку повесить на подписку
5 Ненавижу 1С
 
гуру
05.11.13
09:20
Если СсылкаНаТвойДокумент.Метаданные().Реквизиты.Найти("Склад")<>Неопределено Тогда
6 zak555
 
05.11.13
09:21
не верю, что нет такой функции
7 Melcor
 
05.11.13
09:22
(5) Спасибо
8 shlyahtich
 
05.11.13
09:22
(all) чего пристали к мальчику? лишь бы постебаться с утра. лучше на мой бы вопрос ответили )
9 zak555
 
05.11.13
09:30
+ (6) странно, такой функции действительно нет, но есть



// Позволяет определить есть ли среди реквизитов табличной части документа
// реквизит с переданным именем.
//
// Параметры:
//  ИмяРеквизита - строковое имя искомого реквизита,
//  МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск.
//  ИмяТабЧасти  - строковое имя табличной части документа, среди реквизитов которого производится поиск
//
// Возвращаемое значение:
//  Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт

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

КонецФункции // ЕстьРеквизитТабЧастиДокумента()
10 DexterMorgan
 
05.11.13
09:50
(9) а чем это от (5) отличается? тем что он метаданные документа в коде получил, а у тебя в коде в функцию передается?
11 zak555
 
05.11.13
11:39
(10) я к тому, что в КА типовой функции нет, но она есть в БП


// Позволяет определить есть ли среди реквизитов шапки документа
// реквизит с переданным именем.
//
// Параметры:
//  ИмяРеквизита - строковое имя искомого реквизита,
//  МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск.
//
// Возвращаемое значение:
//  Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт

    Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено);

КонецФункции // ЕстьРеквизитДокумента()
12 mikecool
 
05.11.13
11:43
(5) тогда уж
Если Не СсылкаНаТвойДокумент.Метаданные().Реквизиты.Найти("Склад") = Неопределено Тогда
13 zak555
 
05.11.13
11:43
(12) приоритет у НЕ