| 
    
            
         
         | 
    
    
  | 
v7: Как получить заголовок реквизита на табличной части формы? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        sysadminlk    
     29.04.20 
            ✎
    10:44 
 | 
         
        Как получить заголовок реквизита табличной части?
 
        хотел через формекс но не могу понять как туда форму текущего документа передать ФормаРасш = СоздатьОбъект("РасширениеФормы"); Не работает: ФормаРасш.УстановитьФорму(ТекущийДокумент()); //ФормаРасш.УстановитьФорму(Форма); //ФормаРасш.УстановитьФорму(ТекущийДокумент().форма); Для Х = 0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл Сообщить(ФормаРасш.ПолучитьАтрибут(Х).Идентификатор()); Сообщить(ФормаРасш.ПолучитьАтрибут(Х).Заголовок()); КонецЦикла; в модуле документа ТекущийДокумент().Форма я так понял нету Сообщить(Контрагент.Заголовок()); {Документ.ВыпискаБанка.Модуль Документа(25)}: Поле агрегатного объекта не обнаружено (Заголовок) Сообщить(Форма<<?>>.Контрагент.Заголовок()); {Документ.ВыпискаБанка.Модуль Документа(25)}: Переменная не определена (Форма) Контрагент - это реквизит табличной части Подскажите мне пожалуйста как получить его заголовок при проведении документа?  | 
|||
| 
    1
    
        HawkEye    
     29.04.20 
            ✎
    10:55 
 | 
         
        (0) зачем?     
         | 
|||
| 
    2
    
        Злопчинский    
     29.04.20 
            ✎
    10:57 
 | 
         
        ФормаРасш.УстановитьФорму(ТекущийДокумент());
 
        это не надо. и неправильно. на крайняк (Форма), если просто УстановитьФорму() - то текущая.  | 
|||
| 
    3
    
        Злопчинский    
     29.04.20 
            ✎
    10:59 
 | 
         
        "..его заголовок при проведении документа"
 
        при проведении документа форма может отсутсвовать. документ проводится программно. - какая форма? какой заголовок? вы о чем? . напиши задачу, а не то как ты гвоздь в рельсу пытаешься забить.  | 
|||
| 
    4
    
        Злопчинский    
     29.04.20 
            ✎
    11:05 
 | 
         
        И без всяких формексов можно получить и изменить заголовок
 
        А3 = Форма.ПолучитьАтрибут("Контрагент"); А3.Заголовок() - читаем А3.Заголовок("ХреньКакуюТоВыдумал") - устанавливаем  | 
|||
| 
    5
    
        sysadminlk    
     29.04.20 
            ✎
    11:11 
 | 
         
        Документ проводится юзером.
 
        У реквизита меняется заголовок в зависимости от того что там пользователь натыкал. Хочу показать юзеру если он забыл выбрать реквизит что конкретно он забыл. Поэтому нужно прочитать заголовок. Форма не доступна в модуле документа.  | 
|||
| 
    6
    
        АгентБезопасной Нацио    
     29.04.20 
            ✎
    11:16 
 | 
         
        (5) Ну передавай контекст, если уж так приперло.
 
        а в ОбработкеПроведения проверяй, пустой параметр или нет. но все равно это плохое решение...  | 
|||
| 
    7
    
        Bigbro    
     29.04.20 
            ✎
    12:14 
 | 
         
        обычно заголовок как раз выводится в зависимости от реквизита или их комбинации.
 
        может проще проверить исходные данные по которым определяется заголовок документа?  | 
|||
| 
    8
    
        Cthulhu    
     29.04.20 
            ✎
    12:35 
 | 
         
        а что говорить тупо <ИмяРеквизита>.Заголовок() ?     
         | 
|||
| 
    9
    
        Cthulhu    
     29.04.20 
            ✎
    12:36 
 | 
         
        прим.: все реквизиты табличной части формы объекта (не путать с реквизитом формы типа "таблица значений"!!!) - это тупо реквизиты формы же.     
         | 
|||
| 
    10
    
        sysadminlk    
     29.04.20 
            ✎
    14:44 
 | 
         
        (8) Сообщить(Контрагент.Заголовок());
 
        {Документ.ВыпискаБанка.Модуль Документа(25)}: Поле агрегатного объекта не обнаружено (Заголовок)  | 
|||
| 
    11
    
        Duke1C    
     29.04.20 
            ✎
    14:46 
 | 
         
        (10) Форма.Контрагент.Заголовок()     
         | 
|||
| 
    12
    
        Duke1C    
     29.04.20 
            ✎
    14:47 
 | 
         
        +11 Проверяй перед проведением, в модуле формы,
 
        а не модуле документа  | 
|||
| 
    13
    
        sysadminlk    
     29.04.20 
            ✎
    14:55 
 | 
         
        (4) 
 
        я же говорю что это не в модуле формы, а в модуле документа, при проведении А3 = Форма<<?>>.ПолучитьАтрибут("Контрагент"); {Документ.ВыпискаБанка.Модуль Документа(25)}: Переменная не определена (Форма) При проверке модуля обнаружены синтаксические ошибки! Процедура ОбработкаПроведения()  | 
|||
| 
    14
    
        sysadminlk    
     29.04.20 
            ✎
    15:30 
 | 
         
        Всем спасибо, сделал так:
 
        Если Контрагент.Выбран() = 0 тогда Конт=""; Сервис = СоздатьОбъект("Сервис"); Если Сервис.АктивныйКонтекст(Конт) = 1 Тогда Предупреждение("Не выбран реквизит """+Конт.Форма.Контрагент.Заголовок()+""" !"); Иначе ВидРекКонтрагент = ?(ТипЗначенияСтр(Контрагент) = "Справочник",Контрагент.Вид(),ТипЗначенияСтр(Контрагент)); Предупреждение("Не выбран реквизит """+ВидРекКонтрагент+""" !"); КонецЕсли; СтатусВозврата(0); Возврат; КонецЕсли;  | 
|||
| 
    15
    
        Cthulhu    
     29.04.20 
            ✎
    16:14 
 | 
         
        ну т.е. тебя устраивает то, что теперь программно проводить этот документ стало невозможно?.. ну и при этом в модуле роведения(!!!) ты юзаешь "предупреждение(..)" (причем - без таймаута даже!!!))))...
 
        ну што ж.... дело твое, конечно...  | 
|||
| 
    16
    
        Cthulhu    
     29.04.20 
            ✎
    16:15 
 | 
         
        (15)+: но я бы лично тебя нахрен уволил, да...     
         | 
|||
| 
    17
    
        Злопчинский    
     30.04.20 
            ✎
    00:00 
 | 
         
        я сказал о форме в модуле - еще в самом начале. это херовое решение.     
         | 
|||
| 
    18
    
        Злопчинский    
     30.04.20 
            ✎
    00:03 
 | 
         
        (5) "У реквизита меняется заголовок в зависимости от того что там пользователь натыкал. Хочу показать юзеру если он забыл выбрать реквизит что конкретно он забыл. Поэтому нужно прочитать заголовок. Форма не доступна в модуле документа."
 
        - юзер проводит ручками документ. ты что не знаешь. что ты можешь документ провести сам себя из формы документа? поэтому что там натыкал юзвер и сообщай ему - ДО ПРОВЕДЕНИЯ документа. не трогай модуль проведения, все можно сделать в интерактивнйо чсти дока. В форме пишешь Если ПользовательНатыкалХорошо()=1 Тогда Провести(); Иначе Предупреждение("Плохо натыкал!") КонецЕсли;  | 
|||
| 
    19
    
        Bigbro    
     30.04.20 
            ✎
    05:20 
 | 
         
        (14) очень плохо, читай Злопчинского он прав.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |