Имя: Пароль:
1C
1С v8
как получить значение реквизита формы
, ,
0 arkada
 
08.01.18
11:02
Здравствуйте. Прошу не пинать ногами. Вопрос простейший. Есть форма документа. Есть поле "Контрагент".

В модуле формы документа
Делаю процедуру

Значение=Объект.Контрагент;
    Сообщить(Значение);

Показывается наименование поля Контрагент. А как получить ИНН поля Контрагент?

    Значение=Объект.Контрагент.ИНН;
    Сообщить(Значение);

Так не работает. Заранее спасибо.
1 PuhUfa
 
08.01.18
11:06
Где делаешь?
2 arkada
 
08.01.18
11:08
Управляемая форма бп 3.0
3 PuhUfa
 
08.01.18
11:20
ИНН = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ИНН");
или делай как в (0) но на &НаСервере
4 arkada
 
08.01.18
11:23
Вставил в процедуру и выдается ошибка

{Документ.тест.Форма.ФормаДокумента.Форма(12,8)}: Переменная не определена (ОбщегоНазначения)
    ИНН = <<?>>ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ИНН") (Проверка: Тонкий клиент)
5 arkada
 
08.01.18
11:24
Значение=Объект.Контрагент;
    Сообщить(Значение);
    ИНН = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ИНН")
    Сообщить(ИНН);
6 DrZombi
 
гуру
08.01.18
11:29
(5) "ОбщегоНазначения" - это общий модуль, который работает на стороне СЕРВЕРА.

Вы тоже самое можете организовать и в модуле формы, используя "&НаСервере"
7 DrZombi
 
гуру
08.01.18
11:31
+ Лучше "&НаСервереБезКонтекста"
И в качестве параметра используем команду "Знач" (нам не надо возвращать обратно на клиентскую часть ссылку, не стоит забивать трафик лишней информацией)
8 arkada
 
08.01.18
11:40
Ребята, как правильно и где написать. Ну не понимаю я пока. :(
9 PuhUfa
 
08.01.18
11:48
&НаСервереБезКонтекста
Функция ХочуЗначениеРеквизита(Ссылка,ИмяРеквизита)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка,ИмяРеквизита);
КонецФункции

&НаКлиенте
Процедура МояПрелесть()
Сообщить(ХочуЗначениеРеквизита(Объект.Контрагент,"ИНН");
КонецПроцедуры
10 PuhUfa
 
08.01.18
11:49
(6) странное решение размещать функцию получения реквизита в общем модуле доступном только на сервере...
11 DrZombi
 
гуру
08.01.18
11:57
(10) По мне так вообще странно тонкий клиент отвратно работает, особенно если на форму разместить все 1000 реквизитов и табличных частей разом :)
12 arkada
 
08.01.18
16:04
Огромное спасибо!!! Работает!!
13 arkada
 
08.01.18
16:33
В продолжение темы. А как добраться до Юридического и фактического адреса Контрагента?
14 arkada
 
08.01.18
16:35
Банковский счет и т.д.
15 rozer76
 
08.01.18
16:40
(14) это уже запросом в &НаСервереБезКонтекста
16 hawksib
 
08.01.18
17:59
а че так не работает?

&НаКлиенте
Процедура СообщитьИНН()
Сообщить(ИННКонтрагента());
КонецПроцедуры

&НаСервере
Функция ИННКонтрагента()
Возврат РеквизитФормыВЗначение("Объект.Контрагент").ИНН;
КонецФункции
17 FIXXXL
 
09.01.18
08:28
(13) (14) не изобретай велосипед
наверняка в конфигурации есть функции получения этой инфы
18 DrZombi
 
гуру
09.01.18
09:04
(13) так же, обращаешься на сервер, и там выполняешь запрос к нужной информации.
19 arkada
 
11.01.18
05:24
Коллеги, добраться к другим реквизитам, по данной схеме не получается. Они просто не присутствуют в справочник.Контрагенты. Но каким образом к ним добираться? Например реквизит Адрес или Банковский счет?
20 igorPetrov
 
11.01.18
05:32
(19) так посмотри где они присутствуют
21 segn
 
11.01.18
06:32
(19) Посмотри как получают данные контрагента для заполнения печатной формы (например ТОРГ-12). Процедура Печать() расположена в модуле менеджера объекта.