Не могу обратиться к реквизитам справочника

Обращение к реквизиту.

Я
   Novostruev

03.08.13 — 14:55

Добрый день. Недавно начал изучать 1С и вот такой вопрос возник:

Имеется справочник Контрагент, с реквизитом ПроцентСкидки.

Также имеется документ ПриходнаяНакладная, с реквизитом Контрагент (с ссылкой на справочник).

Нужно , чтобы при изменении поля Контрагент в форме документа, ПроцентСкидки записывался в табличную часть документа. Как мне в форме получить ссылку на выбранный в поле контрагент ?? Я понял, что на клиенте я к нем не могу обратиться(к справочнику) и не могу считать реквизит справочника. Но можно получить ссыль и в общем модуле получить нужный реквизит. Как мне получить эту ссылку ??

И второй небольшой вопрос. Опять же в форме, я могу обратиться «Элементы.Контрагент» и «объект.Контрагент». В чем разница между ними, к чем у я именно обращаюсь в этих случаях ??

  

Партнерская программа EFSOL Oblako

   GROOVY

1 — 03.08.13 — 15:28

Элементы.Контрагент — это элемент формы. Его можно скрыть, сделать недоступным, покрасить в разные цвета.

Объект.Контрагент — это данные формы. Данные формы содержат ссылку на элемент справочника и его представление.

Именно передавая в серверную процедуру данные формы — мы можем по ссылке получить значения реквизитов.

   Novostruev

2 — 04.08.13 — 08:48

Спасибо большое за пояснение, все работает =)

   Novostruev

3 — 04.08.13 — 10:16

Решил не создавать новую тему, вопрос тот же, но уже связан с табличной частью документа.

Документ  ПриходнаяНакладаная.

Табличная часть — СписокНоменклатры.

При изменении поля Номенклатура из ТабЧасти, должна возвращаться цена продажи из справочника. С простым полем выбора(1 случай) у меня срабтало, а вот с ТЧ не получается.

обращаюсь —

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.Номенклатура);

Не видит поле номенклатура.(хотя вроде как передаю ссылку на нее)

пробовал обращаться по номеру строки. Не видит реквизит справочника — ЦенаТовара.

НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока;

    ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки));

Так как же в ТЧ теперь получить ссылку на справочник ?? =)

   Ковычки

4 — 04.08.13 — 10:41

все делается без изменений конфигурации

   Novostruev

5 — 04.08.13 — 11:13

Так почему-то не делается. Ошибку выдает. Где я не так написал ??

   Orfin

6 — 04.08.13 — 11:35

Может так?

НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки;

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки));

   Novostruev

7 — 04.08.13 — 11:53

пишет ошибку ((

{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(10)}: Значение не является значением объектного типа (НомерСтроки)

    НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки;

   Капитан О

8 — 04.08.13 — 11:56

&НаКлиенте

Процедура ТоварыСтрокаТЧПриИзменении(Элемент)

    КлиентскийМодуль.РассчитатьСтоимость(Элементы.Товары.ТекущиеДанные);

КонецПроцедуры

Процедура РассчитатьСтоимость(СтрокаТЧ) Экспорт

    СтрокаТЧ.Стоимость=СтрокаТЧ.Количество*СтрокаТЧ.Цена;

КонецПроцедуры

   Novostruev

9 — 04.08.13 — 12:02

Мне не нужно считать стоимость. Мне нужно получиться в из ТабличнойЧасти получить ссылку на реквизит справочника. С полем ввода у меня получилось, но вот с ТЧ выдает почему-то ошибку

   Novostruev

10 — 04.08.13 — 12:03

*Мне нужно получить из ТабличнойЧасти ссылку на реквизит

   Капитан О

11 — 04.08.13 — 12:06

(9) не нужно считать стоимость — не считай

   Novostruev

12 — 04.08.13 — 12:21

Мне не элемент формы нужен, а ссылка на реквизит справочника Номенклатура. Обратиться к этому реквизиту я могу через серверную функцию с ссылкой на элемент этого справочника. Так вот как именно получить эту ссылку из ТЧ ???

   Капитан О

13 — 04.08.13 — 12:23

(12) я ни хрена не понял. вон тебе в качестве примера обращение к цене, количеству и стоимость текущей строки ТЧ. сформулируй вопрос

   Любопытная

14 — 04.08.13 — 12:24

(12) на сервер отправь свою текущую строку, а на сервере уще СтрокаТЧ.Номенклатура и будет ссылка на элемент справочника. Что непонятно?

   Капитан О

15 — 04.08.13 — 12:28

(14) дык ссылка бывает не только на сервере

   Любопытная

16 — 04.08.13 — 12:32

(15) ты внимательно читай (12): «Обратиться к этому реквизиту я могу через серверную функцию…» Он один хрен на сервер пойдет, пусть сразу туда все тащит

   Капитан О

17 — 04.08.13 — 12:35

(16) да, ты права

(12) отдавай на сервер свою номенклатуру

   Novostruev

18 — 04.08.13 — 12:40

Сейчас все заново опишу, чего мне не понятно.

в Документе в ТабличнойЧасти нужно при изменении Номенклатуры получить значение реквизита ЦенаПродажи из справочника Номенклатура.

На клиенте есть только ссылка на справочник. А значение реквизита справочника ЦенаПродажи я получу через серверную функцию, так как на клиенте к нему нет доступа.(Ответ на самый первый мой пост). Мне нужна ссылка не на строку ТабличнойЧасти , а на реквизит справочника. До этого я заполнил поле Контрагент(поле выбора) и обращался к нему Объект.Контрагент — вот ссылка на элемент справочника Контрагент, и на серверной функции я считал его резквизит. Это работает. Но вот как получить ссылку на элемент справочника, но уже из ТЧ ??

код в модуле формы:

&НаКлиенте

Процедура СписокНоменклатурыНоменклатураПриИзменении(Элемент)

    СтрокаТЧ = Элементы.СписокНоменклатуры.ТекущиеДанные;

    ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ);

    СтрокаТЧ.Цена = ЦенаТовара*(100-ПроцентСкидки)/100;

    РаботаСДокументами.РасчитатьСумму(СтрокаТЧ);

КонецПроцедуры

А вот серверная функция :

Функция УзнатьЦенуТовара(Товар) Экспорт

    Возврат Товар.ЦенаПродажи;

КонецФункции

   Капитан О

19 — 04.08.13 — 12:41

(18) нельзя цену продажи хранить в реквизите элемента. дальше советовать не вижу смысла

   Капитан О

20 — 04.08.13 — 12:43

(19) хотя, не, вижу. ПолучитьПродажнуюЦену(Номенклатура) всего-то нужно переписать. и отдавать ей номенклатуру из текущей строки, а не всю строку целиком

   Novostruev

21 — 04.08.13 — 12:47

Вот я подаю сроку

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ.Номенклатура);

а как функцию переписать ?? Что ей не хватает ??

   Капитан О

22 — 04.08.13 — 12:52

(21) запроса к РС ЦеныНоменклатуры ей не хватает

   Novostruev

23 — 04.08.13 — 12:54

Запросом ?? я просто хотел без него попробовать, как с полем Контрагент, просто передать ссыль и считать реквизит, ну да ладно, запросом, так запросом. Спасибо большое за терпение ))

  

Капитан О

24 — 04.08.13 — 12:56

(23) осмысли (19)

Как обратиться к реквизитам справочника из модуля формы

Автор Andrepan, 23 янв 2017, 11:06

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте! Подскажите пожалуйста, как обратиться к реквизитам справочника из модуля формы документа. Есть табличная часть документа, в которой производится отбор номенклатуры товара по поставщикам из справочника НоменклатураПоставщиков. Нужно, чтобы при записи номенклатуры в документе, из соответствующих реквизитов Справочника поставщиков переносились в ячейки таблицы Документа характеристики товаров.
Делаю ПриИзменении (для записи Номенклатуры в документе) и объявляю переменную

СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтрокаТабличнойЧасти.ТНВД = ??


Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!




Цитата: Andrepan от 23 янв 2017, 13:06Объект — Имя справочника справочника, реквизит — необходимый реквизит??

В данном случае Объект — это текущий документ, а если нужны значения реквизитов справочника, то только через сервер.

Спасибо за Сказать спасибо


...
СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтруктураРеквизитов = ПолучитьСтруктуруРеквизитов(СтрокаТабличнойЧасти.Номенклатура);
СтрокаТабличнойЧасти.ТНВД = СтруктураРеквизитов.ТНВД;
СтрокаТабличнойЧасти.ЛюбойРеквизитНоменклатуры = СтруктураРеквизитов.ЛюбойРеквизитНоменклатуры;
...

&НаСервере
Функция ПолучитьСтруктуруРеквизитов(НоменклатураСсылка)
    СтруктураРеквизитов = Новый Структура;
    СтруктураРеквизитов.Вставить("ТНВД", НоменклатураСсылка.ТНВД);
    СтруктураРеквизитов.Вставить("ЛюбойРеквизитНоменклатуры", НоменклатураСсылка.ЛюбойРеквизитНоменклатуры);
    Возврат СтруктураРеквизитов;
КонецФункции

Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению … рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.


Цитата: Golickoff от 24 янв 2017, 05:01
...
СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтруктураРеквизитов = ПолучитьСтруктуруРеквизитов(СтрокаТабличнойЧасти.Номенклатура);
СтрокаТабличнойЧасти.ТНВД = СтруктураРеквизитов.ТНВД;
СтрокаТабличнойЧасти.ЛюбойРеквизитНоменклатуры = СтруктураРеквизитов.ЛюбойРеквизитНоменклатуры;
...
&НаСервере
Функция ПолучитьСтруктуруРеквизитов(НоменклатураСсылка)
    СтруктураРеквизитов = Новый Структура;
    СтруктураРеквизитов.Вставить("ТНВД", НоменклатураСсылка.ТНВД);
    СтруктураРеквизитов.Вставить("ЛюбойРеквизитНоменклатуры", НоменклатураСсылка.ЛюбойРеквизитНоменклатуры);
    Возврат СтруктураРеквизитов;
КонецФункции

Спасибо большое! Все получилось.


С обращением к табличной части справочника все понял. Подскажите пожалуйста, а как обратиться для другой колонки табличной части этой же строки документа НоменклатураТовара, уже к реквизитам другого справочника. То есть, есть справочник ТНВД (в котором сам ТНВД код прописан в Наименовании в стандартных реквизитах) реквизитами этого справочника являются ставки: обеспечения, таможенных платежей и акцизов. Необходимо вытащить эти реквизиты и поместить в табличную часть документа


ПолучениеСправочника = Справочники.НужныСправочник.НайтиПоНаименованию(«наименование»).ПолучитьОбъект;

И Потом ПолучениеСправочника.НужныйВамРеквизит;

Но такой скрипт выполняется только на стороне сервера


То есть, я из процедуры модуля формы:

Процедура ПриложениеКЗаявлениюНоменклатураТоваровПриИзменении(Элемент)

Должен вызвать Функцию на сервере в которой будет выполняться данный скрипт?


Retroman

1 / 1 / 1

Регистрация: 27.01.2015

Сообщений: 71

1

Не могу обратиться к реквизиту справочника для записи

05.04.2021, 10:18. Показов 1792. Ответов 11

Метки нет (Все метки)


Всем здравствуйте. Мне надо обратиться к реквизиту справочника «Номенклатура» для того, чтобы записать в него данные. Проблема в том, что у меня никак не получается это сделать — появляется ошибка «Поле объекта не обнаружено (Стж_НоменклатураКСН)». Как мне обратиться к реквизиту справочника?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
&НаСервереБезКонтекста
Процедура фд_СпецификацияСтж_НоменклатураКСНПриИзмененииНаСервере(НоменклатураКСН)
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Номенклатура.Стж_НоменклатураКСН
        |ИЗ
        |   Справочник.Номенклатура КАК Номенклатура";
    
    Выборка = Запрос.Выполнить().Выбрать();    
    Выборка.Следующий();            
    Справочники.Номенклатура.Стж_НоменклатураКСН = НоменклатураКСН;
    Справочники.Номенклатура.Заполнить(Справочники.Номенклатура.Стж_НоменклатураКСН);
КонецПроцедуры
 
&НаКлиенте
Процедура фд_СпецификацияСтж_НоменклатураКСНПриИзменении(Элемент)
    СтандартнаяОбработка = Ложь;
    НоменклатураКСН = Элемент.ТекстРедактирования;
    фд_СпецификацияСтж_НоменклатураКСНПриИзмененииНаСервере(НоменклатураКСН);
КонецПроцедуры



0



1142 / 689 / 203

Регистрация: 22.04.2013

Сообщений: 5,161

Записей в блоге: 1

05.04.2021, 10:24

2

записывать надо в объект
а вы делаете нечто непонятное. получаете из всех номенклатур значение стж, а потом что-то хотите сделать только с первым



0



1 / 1 / 1

Регистрация: 27.01.2015

Сообщений: 71

05.04.2021, 11:25

 [ТС]

3

Yulunga, Ну так мне надо из стж только из одного взять, с которым работаю на данный момент — мне не нужна вся колонка.
Схема такая — идёт запись в ТЧ, заполняются те значения в табличной части автоматически, что уже заполнены в справочнике Номенклатура, кроме стж. Стж заполняется прямо в ТЧ и это ТЧ надо записать в справочник. То есть это должно выглядеть примерно так:
ИмяНоменклатуры | СТЖ
Тест | Пусто (Изначально отсутствовало) <- ТестСТЖ (Заполняется интерактивно в ТЧ)

После записи строки ТЧ должно получиться так:
ИмяНоменклатуры | СТЖ
Тест | ТестСТЖ

Добавлено через 50 минут
Yulunga,

Цитата
Сообщение от Yulunga
Посмотреть сообщение

записывать надо в объект

Я, если честно, не имею представления, как это сделать



0



1142 / 689 / 203

Регистрация: 22.04.2013

Сообщений: 5,161

Записей в блоге: 1

05.04.2021, 12:10

4

Лучший ответ Сообщение было отмечено Retroman как решение

Решение

то есть ДО (весь справочник номенклатура):
отец пусто
мать пусто
сын пусто
доч пусто
падчерица 19
ПОСЛЕ:
отец 100
мать 100
сын 100
доч 100
падчерица 19

тогда так
запрос = новый запрос. запрос.текст = «выбрать ном.ссылка как ссылка из справочники.номенклатура как ном»
Выборка = Запрос.Выполнить().Выбрать();
пока Выборка.Следующий() цыкл
об = выборка.ссылка.получитьобъект(); если об.стж = 0 (или там незаполнено или ещё что) об.стж = 100 конецесли; конеццыкла
штототакое



1



Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

05.04.2021, 15:12

5

Yulunga, А если будут работать два человека?



0



1142 / 689 / 203

Регистрация: 22.04.2013

Сообщений: 5,161

Записей в блоге: 1

05.04.2021, 16:44

6

Dethmontt, два администратора? по рукам
ты про блокировки? да оно и так ни разу н ебыстро будет работать.
реквизиты ставить, записывать. это небыстро.
НачатьТранзакцию();

Попытка
… // чтение или запись данных
ДокументОбъект.Записать()
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
… // дополнительные действия по обработке исключения
КонецПопытки;
(итс)
ну ещё добавить Сообщить(ном такой-то не записан, ибо занед)



0



Yulunga

06.04.2021, 06:50

Не по теме:

Dethmontt, а вообще вопрос поставлен таким способом, что можно понять, что есть один бух, который вводит всё.
потому что если сидит 10 операторов и каждый вводит свою приходную на 74 позиции, и в каждой будет проверяться есть ли такая номенклатура и куда-то-там-зачем-то писаться «19 гусь-петухов», то таких вопросов не задают
это так, не по теме



0



Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

07.04.2021, 12:39

8

Цитата
Сообщение от Yulunga
Посмотреть сообщение

а вообще вопрос поставлен таким способом, что можно понять, что есть один бух, который вводит всё.

Я к тому что решенный «неправильно» один вопрос порождает кучку новых



0



1142 / 689 / 203

Регистрация: 22.04.2013

Сообщений: 5,161

Записей в блоге: 1

07.04.2021, 12:48

9

Dethmontt, я к тому, что, если начнёшь писать «тебе надо учесть, что может вот это случиться и вот это»
а вася напишет «а=4»
и его «решение» отметят как верное а мне скажут — пошёл бы ты в баню. выдумываешь невесть чего. тупой медленный днище.
поэтому так.
это моё решение на основе двухлетнего анализа форумов



0



Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

07.04.2021, 12:50

10

Yulunga, так это твой минус, сделай так же быстро как а=4, но правильно



0



1142 / 689 / 203

Регистрация: 22.04.2013

Сообщений: 5,161

Записей в блоге: 1

07.04.2021, 16:15

11

Dethmontt, да, минус. я только учусь
а как надо?



0



Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

11.04.2021, 02:21

12

Цитата
Сообщение от Yulunga
Посмотреть сообщение

а как надо?

вот так

Цитата
Сообщение от Yulunga
Посмотреть сообщение

«тебе надо учесть, что может вот это случиться и вот это»

Добавлено через 27 секунд
Только так же быстро как и а=4



0



Рассмотрим ситуацию, когда мы находимся в форме документа и нам нужно получить какой-либо его реквизит. Например, номер документа или значение реквизита Поставщик.

Данные объекта, которые отображаются в форме (в нашем случае данные документа), находятся всегда в основном реквизите формы. В подавляющем большинстве случаев этот реквизит имеет имя Объект. По крайней мере именно такое имя дает ему платформа, когда с помощью конструктора создает форму объекта. В нашем случае это именно так:


Основной реквизит формы содержит набор подчиненных реквизитов, соответствующих реквизитам прикладного объекта. Поэтому для того, чтобы обратиться, например, к поставщику, указанному в документе, нужно указать имя основного реквизита формы и через точку – имя подчиненного реквизита, хранящего ссылку на поставщика.

В нашем случае, для того чтобы получить ссылку на поставщика, нужно будет выполнить следующий код:

ПоставщикДокумента = Объект.Поставщик; 

Доброго дня, коллеги!

А вы теряли стандартные реквизиты в конструкторе запросов в расширении? Сколько времени ушло на поиск решения проблемы? А наш слушатель получил  ответ оперативно. Теперь данной хитростью делимся с вами! Безвозмездно :)

Вопрос

Добрый день! Подскажите, а добавляются ли в расширение стандартные реквизиты, например, для справочника реквизит “ЭтоГруппа” или “Владелец” (когда я делаю запрос в расширении и хочу отобрать элементы, не являющиеся каталогами, данных реквизитов  нет). Пробовал добавлять все реквизиты и формы данного справочника в расширение, но стандартные так и не добавились. В свойствах стандартных реквизитов так же не нашел возможности добавить в расширение. Платформа 1С 8.3.15, конфигурация 1С:УПП 1.3.

Ответ

Добрый день! Нужно в расширении указать, что этот справочник является иерархическим (то есть указать в расширении свойство Иерархический как контролируемое):

Свойства: Справочник 1

Тогда конструктор запроса покажет поле ЭтоГруппа.

Или давайте рассмотрим на примере, на пустой базе. Пусть у нас есть справочник Спецификации, подчиненный справочнику Номенклатура:

Справочник Спецификации

Создадим расширение конфигурации, заимствуем оба справочника в расширение.

В расширении воспользуемся конструктором запроса. Для справочника Спецификации поле Владелец недоступно:

Конструктор запроса

Теперь отметим для справочника Спецификации свойство Владельцы как контролируемое:

Справочник Номенклатура Владельцы

После этого в конструкторе запроса появляется поле Владелец:

Конструктор запроса

На форме объекта в расширении можно отобразить владельца:

Форма объекта

На обычных формах (не управляемые) контекст основного реквизита (в данном случае СправочникОбъект.Номенклатура) дополняет контекст самой формы. Т.е. если в тексте модуля формы явно не определять переменные Артикул, НоменклатурнаяГруппа и т.д. , а сразу начать их читать или заполнять значениями — работа будет идти напрямую с одноименными реквизитами редактируемого объекта.

Поля ввода, так же как и прочие элементы на форме, входят в множество ЭлементыФормы. Т.е. у вас есть на форме элемент с именем Артикул, то с помощью пути ЭлементыФормы.Артикул можно получить доступ к свойствам вашего поля ввода и далее управлять видимостью, доступностью, подсказкой и прочими свойствами, которые доступны для изменения.

Если поле ввода находится в коллекции (к примеру, является колонкой в табличном поле, которое связано с табличной частью), то доступ немного усложняется и будет в духе: ЭлементыФормы.Товары.Колонки.Цена

Vzonder

04.10.2017 21:29

Предположим имеется КакойТоСправочник.

В нем реквизиты:

В документе имеется реквизит:

И соответственно – куда проще получить значение реквизита:

РеквизитПриемник = КакойТоСправочник .Реквизит1;

И так 99 раз, и тысяча условий…((((

Уважаемые знатоки, как назначить имя реквизиту переменно?

РеквизитПриемник = КакойТоСправочник .ПеременнаяРеквизита;

Пробовал через поиск:

Yandex

Возможно, вас также заинтересует

Vzonder

05.10.2017 01:13

Выполнить(«РеквизитПриемник = СправочникСсылка.» + ПеременнаяРеквизита);

На обычных формах (не управляемые) контекст основного реквизита (в данном случае СправочникОбъект.Номенклатура) дополняет контекст самой формы. Т.е. если в тексте модуля формы явно не определять переменные Артикул, НоменклатурнаяГруппа и т.д. , а сразу начать их читать или заполнять значениями – работа будет идти напрямую с одноименными реквизитами редактируемого объекта.

Поля ввода, так же как и прочие элементы на форме, входят в множество ЭлементыФормы. Т.е. у вас есть на форме элемент с именем Артикул, то с помощью пути ЭлементыФормы.Артикул можно получить доступ к свойствам вашего поля ввода и далее управлять видимостью, доступностью, подсказкой и прочими свойствами, которые доступны для изменения.

Если поле ввода находится в коллекции (к примеру, является колонкой в табличном поле, которое связано с табличной частью), то доступ немного усложняется и будет в духе: ЭлементыФормы.Товары.Колонки.Цена

На стороне клиента нельзя обратиться к данным базы, в т.ч. получить реквизит от ссылочного значения. Рассмотрим как все же можно решить эту задачу.

На стороне клиента код вида

приведет к ошибке. Такие конструкции возможны только на сервере.

Предположим, что стоит задача при нажатии на кнопку отобразить ИНН контрагента, выбранного на форме. Для решения поставленной задачи необходимо обратиться на сервер для получения требуемой информации(ИНН). Программный код может иметь вид:

При нажатии на кнопку ПолучитьИНН вызывается серверная функция ПолучитьИНННаСервере () . В единственном параметре передается контрагент, выбранный интерактивно пользователем. Функция получает ИНН через точку и сразу же возвращает значение обратно на клиент. Результат работы серверной функции помещается в переменную ИННКонтрагента и выводится пользователю с помощью метода Сообщить () .

Серверная функция является внеконтекстной ( &НаСервереБезКонтекста ). Это значит, что данные, содержащиеся в форме, не будут отсылаться на сервер, что уменьшит объем передаваемых данных и скорость возврата результата функции.

Внимание!

При работе с конфигурациями, в которые встроена библиотека стандартных подсистем, вместо получения реквизита через точку рекомендуется использовать функцию ЗначениеРеквизитаОбъекта () из общего модуля ОбщегоНазначения . Таким образом, строку

можно заменить на:

В случае, когда значение реквизита нужно только для визуального отображения пользователю, можно пойти другим путем: имеется возможность вывести реквизит от ссылочного значения на форму. При этом пользователь не сможет отредактировать этот реквизит.

Рассмотрим пример: на форме документа рядом с полем ввода контрагента должен выводиться его ИНН. Для этого перенесем реквизит ИНН на форму:

В пользовательском режиме при указании контрагента, его ИНН будет автоматически отображен на форме. Никакого программирования в этом случае не потребовалось.

Остались вопросы?
Спросите в комментариях к статье.

Понравилась статья? Поделить с друзьями:
  • Ндс реквизиты по уплате в 2022 году для ооо
  • Не могу оплатить налоги по новым реквизитам
  • Ндфл в 2023 году какие изменения реквизитов
  • Не могу посмотреть реквизиты карты тинькофф
  • Ндфл реквизиты для уплаты самарская область