|
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) очень плохо, читай Злопчинского он прав.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |