Вход | Регистрация
 

Как получить синоним реквизита?

Как получить синоним реквизита?
Я
   gerthog
 
10.03.15 - 14:31
Есть задача, проверка заполнения реквизитов по условию. Реквизиты на техническом английском, а синонимы по русски и нужно, что бы если реквизит(например "X_GZT") не заполнен, тогда сообщить пользователю, что не заполнен реквизит "СинонимРеквизита". Гугл пока ничего подходящего не сказал, мб тут подскажут?
   aka AMIGO
 
1 - 10.03.15 - 14:32
какая конфа? релиз?
   zak555
 
2 - 10.03.15 - 14:33
Метаданные ?
   Vladal
 
3 - 10.03.15 - 14:33
Правильно ли я понимаю, что синоним реквизита не заполнен в дереве метаданных?
Тогда по метаданным в цикле и проверять реквизит.
Если НЕ ЗначениеЗаполнено(Реквизит.Синоним) Тогда
    // Ошибочка вышла

КонецЕсли;
   Веселый молочник
 
4 - 10.03.15 - 14:34
никак
   aka AMIGO
 
5 - 10.03.15 - 14:35
(4) почему "Никак"?
   Веселый молочник
 
6 - 10.03.15 - 14:36
(5) потому что штатными средствами в режиме предприятия никак
   Vladal
 
7 - 10.03.15 - 14:37
проверь и поправь в своей конфе:

    МетаданныеДокумента = Источник.Метаданные();
    
    // Проверка по реквизитам шапки

    Для Каждого РеквДок из МетаданныеДокумента.Реквизиты Цикл
        Сообщить(РеквДок.Синоним);
    КонецЦикла;
    
    // Проверка по табличным частям

    Для каждого ТабЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл
        Для каждого КолонкаТЧ Из ТабЧасть.Реквизиты Цикл
            Сообщить(КолонкаТЧ.Синоним);
        КонецЦикла;
    КонецЦикла;

Я грубо вырезал свою обработку использования помеченных на удаление элементов справочников.

(5) и (6) Потому что ты этого не знаешь. А средства штатные. Код - выше.
   aka AMIGO
 
8 - 10.03.15 - 14:38
(6) так в (3) и предложено нештатное :)
а штатно - только смотреть в конфигураторе дерево метаданных :)
   aka AMIGO
 
9 - 10.03.15 - 14:39
(7) понятно :)
   Vladal
 
10 - 10.03.15 - 14:39
(8) Почему нештатное? Внешние компоненты, VBS, WSH - нештатное. А нативный код в 1С - штатное.
   Vladal
 
11 - 10.03.15 - 14:40
+(7) Весь код такой (может, кому пригодится)

    МетаданныеДокумента = Источник.Метаданные();
    
    // Проверка по реквизитам шапки

    Для Каждого РеквДок из МетаданныеДокумента.Реквизиты Цикл
        Если ВидОбъектаПоСсылке(Источник[РеквДок.Имя]) = "Справочник" Тогда
            Если ЗначениеЗаполнено(Источник[РеквДок.Имя])
                И Источник[РеквДок.Имя].ПометкаУдаления Тогда
                ОбщегоНазначения.СообщитьОбОшибке("Нельзя использовать помеченный на удаление элемент!
                |Реквизит шапки " + РеквДок.Синоним + " - " + Источник[РеквДок.Имя]);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    // Проверка по табличным частям

    Для каждого ТабЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл
        Для каждого СтрокаТЧ Из Источник[ТабЧасть.Имя] Цикл
            Для каждого КолонкаТЧ Из ТабЧасть.Реквизиты Цикл
                Если ВидОбъектаПоСсылке(СтрокаТЧ[КолонкаТЧ.Имя]) = "Справочник" Тогда
                    Если ЗначениеЗаполнено(СтрокаТЧ[КолонкаТЧ.Имя])
                        И СтрокаТЧ[КолонкаТЧ.Имя].ПометкаУдаления Тогда
                        ОбщегоНазначения.СообщитьОбОшибке("Нельзя использовать помеченный на удаление элемент!
                        |Табличная часть " + ТабЧасть.Синоним
                        + ", строка " + СтрокаТЧ.НомерСтроки
                        + ", колонка " + КолонкаТЧ.Синоним
                        + " - " + СтрокаТЧ[КолонкаТЧ.Имя], Отказ);
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
   aka AMIGO
 
12 - 10.03.15 - 14:40
(10) т.е. я вношу изменения в модуль конфы, и получаю штатное решение?
   DirecTwiX
 
13 - 10.03.15 - 14:49
(12) Так обработки же есть
   Vladal
 
14 - 10.03.15 - 14:50
(12) Внешней обработкой.
Что есть штатное и нештатное?
Что есть штатное для типовой?
Что есть нештатное для типовой?
Что находится в папках Extforms на диске ИТС?
   Timon1405
 
15 - 10.03.15 - 14:51
Телепатирую: у ТС есть некий объект Деталь1, у которого есть реквизит Деталь1.X_GZT, у которого синоним, например "Ширина детали" и, если при загрузке извне она оказалась пустой, то сообщать нужно "у Детали1 не заполнена Ширина детали"
   Vladal
 
16 - 10.03.15 - 14:52
(12) Вот получить Exif-информацию из фоток (размер, выдержка, GPS-координты. модель фотоаппарата, дата и время снимка и т.д.) средствами 1С без внешних компонент - явно нештатное, ибо приходилось задействовать vbs.
А прочиттать синоним метаданых - вполне себе штатный метод, описан в синтакс-помощнике.
   Vladal
 
17 - 10.03.15 - 14:53
(15) Хороший вариант.
   gerthog
 
18 - 10.03.15 - 14:56
(1) Конфа - Управление Мед. Центром
(2) Что метаданные?
(3) Нет, синоним в дереве метаданных заполнен. Например реквизит "X_TVP" его синоним: "ТВП". Программно проверяю заполнен ли реквизит "X_TVP", если нет, то нужно вывести сообщение пользователю "Не заполнен реквизит "ТВП"", но как узнать синоним реквизита не могу нагуглить.
(7) Спасибо, сейчас попробую
   b_ru
 
19 - 10.03.15 - 14:57
>>Реквизиты на техническом английском
Я бы рекомендовал эвтаназию для автора решения.
   gerthog
 
20 - 10.03.15 - 15:00
(19) Не знаешь для чего и почему так сделано, а критикуешь - глупо
   Vladal
 
21 - 10.03.15 - 15:05
(18) Ну вот как раз это и есть синоним:

ОбщегоНазначения.СообщитьОбОшибке("Нельзя использовать помеченный на удаление элемент!
|Реквизит шапки " + РеквДок.Синоним + " - " + Источник[РеквДок.Имя]);

РеквДок.Синоним -- синоним реквизита, как его привыкли видеть пользователи на экране.
   aka AMIGO
 
22 - 10.03.15 - 15:13
(16) я понял, спасибо! :)
   gerthog
 
23 - 10.03.15 - 15:21
(21) Пробую сейчас по Вашему примеру. К метаданным можно обращаться только НаСервере, да?


Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.