|
Как узнать есть ли реквизит докмента |
☑ |
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) приоритет у НЕ
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший