1с как обратиться к реквизиту формы отчета

Я
   ATverdikov

29.11.11 — 08:51

1C 8.2 Как обратится к реквизиту отчета из модуля формы отчета?

Через Объект , ЭтотОбъект не получается…

  

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

   Рэйв

1 — 29.11.11 — 08:57

(0)что пишет когда не получается?

   dimaldinho

2 — 29.11.11 — 09:00

Как называется основной реквизит формы, который в скобочках?

   aleks-id

3 — 29.11.11 — 09:01

он поди к элементу управления формы обращается

   Ranger_83

4 — 29.11.11 — 09:04

ЭлементыФормы.ТвойРеквизит

   Romcheg

5 — 29.11.11 — 09:05

Нужно так «товарищ реквизит, разрешите обратиться». Ну и еще в процедурах на клиенте реквизиты не видно, только на сервере

   andrewks

6 — 29.11.11 — 09:19

(5) а что, был озвучен вид формы?

(0) если из модуля формы к реквизиту формы — можешь сразу писать имя реквизита

   andrewks

7 — 29.11.11 — 09:21

(5) и, кстати, откуда такая инфа?

   ATverdikov

8 — 29.11.11 — 09:33

В отчете есть реквизит «Маршрут» который является ссылкой на «Справочники.Маршруты». Также в отчете есть форма, в модуле формы в процедуре &НаСервере пытаюсь обратится так

Маршрут = Объект.Маршрут;

В ответ «Переменная не определена Объект»

Аналогично для ЭтотОбъект

….

   andrewks

9 — 29.11.11 — 09:47

(8) давай скрин закладки «Реквизиты» формы, с развёрнутым деревом

   ATverdikov

10 — 29.11.11 — 10:00

http://s017.radikal.ru/i437/1111/7f/e608395242bc.jpg

   ATverdikov

11 — 29.11.11 — 10:02

хм, разобрался в отчетах получается к реквизитам нужно обращаться через Отчет.Реквизит, и как пример:

Маршрут = Отчет.Маршрут;

  

andrewks

12 — 29.11.11 — 10:03

в конфигураторе открой форму, во 2-м ТП сверху, слева: вкладка Реквизиты — разверни дерево, сфоткай, и выложи

TurboConf — расширение возможностей Конфигуратора 1С

1C 8.2 Как обратится к реквизиту отчета из модуля формы отчета? Через Объект , ЭтотОбъект не получается…

что пишет когда не получается?

Как называется основной реквизит формы, который в скобочках?

он поди к элементу управления формы обращается

ЭлементыФормы.ТвойРеквизит

Нужно так «товарищ реквизит, разрешите обратиться». Ну и еще в процедурах на клиенте реквизиты не видно, только на сервере

а что, был озвучен вид формы? если из модуля формы к реквизиту формы — можешь сразу писать имя реквизита

и, кстати, откуда такая инфа?

В отчете есть реквизит «Маршрут» который является ссылкой на «Справочники.Маршруты». Также в отчете есть форма, в модуле формы в процедуре &НаСервере пытаюсь обратится так Аналогично для ЭтотОбъект ….

давай скрин закладки «Реквизиты» формы, с развёрнутым деревом

хм, разобрался в отчетах получается к реквизитам нужно обращаться через Отчет.Реквизит, и как пример:

в конфигураторе открой форму, во 2-м ТП сверху, слева: вкладка Реквизиты — разверни дерево, сфоткай, и выложи

Тэги: 1С 8

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

Содержание:

1.    Реквизиты объекта и реквизиты формы в 1С

2.    Как получить значения из элементов формы 1С  

1.    Реквизиты объекта и реквизиты формы в 1С

В обычном приложении у элемента формы 1С 8.3 было свойство «Значение», доступное как для чтения, так и для записи. Какой аналог в управляемом приложении?

Элементы формы 1С 8.3 могут содержать реквизиты двух видов: реквизиты объекта 1С и реквизиты формы.

Красным помечен реквизит объекта 1С Контрагент, а зеленым – реквизит формы в 1С.

Интерактивно выберем эти элементы в пользовательском режиме 1С и попробуем прочитать их «программно» кнопкой «Прочитать».

Если читать значения реквизитов в клиентской процедуре, то код для 1С Предприятия будет следующий:


Все бы хорошо: мы получили на клиенте значения реквизитов объекта 1С и формы, но – не значения элементов формы 1С. На клиенте значение элементов формы 1С получить нельзя. 

2.    Как получить значения из элементов формы 1С

Чтобы получить значения из элементов формы 1С, нам потребуется серверный вызов:

Именно на сервере у элемента формы 1С 8.3 становится доступно свойство ПутьКДанным, по которому его можно извлечь либо из Объекта, который имеет тип ДанныеФормыСтруктура:

…либо из Формы, которая имеет тип ФормаКлиентскогоПриложения:


Форма и ее элементы не видны на сервере без контекста. То есть код для 1С:Предприятия выдаст множество ошибок.

Также Форму нельзя передать как параметр в процедуру и функцию на сервер или в общий модуль.


            Еще хочется разобрать момент, когда нам возможно увидеть состояние различающихся значений в элементе форме 1С и в объекте. Это возможно в событии элемента ОбработкаВыбора.
Например, при значении поля Контрагент — Ассоль, мы выбрали контрагента Бакалея:


Новое значение доступно как параметр процедуры ВыбранноеЗначение.


Система дает шанс что-то сделать в этой ситуации.

Специалист компании ООО «Кодерлайн»

Добрыгин Михаил

2 / 2 / 0

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

Сообщений: 65

1

1C 8.x

Обратиться к реквизиту отчета, обычная форма

23.11.2013, 22:54. Показов 7541. Ответов 5


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



0



Модератор

Эксперт 1С

3708 / 2905 / 572

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

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

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

24.11.2013, 03:23

2

Из модуля формы ЧЕГО?



0



о_____О

Эксперт 1С

224 / 223 / 37

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

Сообщений: 1,062

24.11.2013, 11:46

3

Для

недалеких

меня :
А что в данном случае «реквизит отчета»?



0



856 / 655 / 111

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

Сообщений: 2,410

24.11.2013, 12:20

4

Отчет.Реквизит



0



2954 / 1766 / 82

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

Сообщений: 8,280

24.11.2013, 16:48

5

Если у отчета есть реквизит, тогда просто: Реквизит. Если хочется узнать об объекте — посмотрите закладку формы «Реквизиты». Там объект выделен жирным, как правило ОтчетОбъект либо ОбработкаОбъект



0



2 / 2 / 0

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

Сообщений: 65

26.11.2013, 03:56

 [ТС]

6

В общем ситуация такая. Создал отчет, форма произвольная. Создал реквизит в отчете — не видно в модуле формы его! А не видно было потому, что не было основного реквизита (объекта) в форме. Решилось все прочтением мануалов.



0



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

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


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

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

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

Если отчёт является внешним, то к его объекту нельзя обратиться методом «Отчеты.ИмяОтчёта». Также нет возможности использовать реквизит ОтчетОбъект, который применяется в неуправляемых формах.

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

Как обратиться к Объекту внешнего отчёта или обработки из их Формы

Далее применяем такую конструкцию:

В модуле формы внешнего отчёта:

ОтчетОбъект= РеквизитФормыВЗначение("Отчет");

В модуле формы внешней обработки:

ОтчетОбъект= РеквизитФормыВЗначение("Объект").ЭтотОбъект;

В дальнейшем, применительно к внешнему отчёту, мы можем через установленную нами переменную ОтчетОбъект получить макет Системы компоновки данных:

Макет = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

«ОсновнаяСхемаКомпоновкиДанных» – это имя макета СКД.

Информация о материале
Категория: Программирование 1С

Опубликовано: 21 мая 2016

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

Научимся создавать простые реквизиты формы и размещать их на форме.

Управляемое приложение 1С 8.3

Для этого в конфигураторе 1С создадим пустую форму. Пусть это будет форма некой внешней обработки. В этой форме нас интересует закладка Реквизиты

Пустая управляемая форма

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

Для того, чтобы добавить реквизит необходимо нажать на кнопку «Добавить реквизит» командной панели закладки «Реквизиты»

Добавить реквизит управляемой формы

После этого будет добавлен реквизит управляемой формы 1С с типом по умолчанию (строка) и справа откроется палитра свойств этого реквизита.

Палитра свойств реквизита управляемой формы

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

Для тренировки создадим четыре реквизита с типом строка:  Фамилия, Имя, Отчество и ФИО. И один реквизит с типом дата: ДатаРождения.

Реквизиты на управляемой форме

Разместим реквизиты на форме. Сделать это просто: необходимо нужный реквизит мышкой «перетащить»  из закладки «Реквизиты» на закладку «Элементы»

Перетаскиваем реквизит в элементыПеретащим все реквизиты на формы, и с помощью кнопок «Вверх», «Вниз» удобно расположим их на форме.

Реквизиты на управляемой форме 1С

Сейчас мы сделали такую примитивную форму, на которой расположили реквизиты. После того, как мы «перетащили»  реквизит в элементы, то на форме был создан элемент формы. В нашем случае это поле формы. Если мы сейчас зайдем в палитру свойств поля ввода, то увидим, что он связан с реквизитом посредством  свойства ПутьКДанным.

Свойство ПутьКДанным элемента формы

Если нажать на кнопку «…» свойства ПутьКДанным, то у разработчика есть возможность поменять привязанный к этому элементу реквизит формы.

Изменяем свойство ПутьКДанным элемента формы

Сейчас научимся использовать реквизиты в программном коде. Из статьи, посвященной архитектуре управляемой формы 1С 8.3 Вы знаете, что выполнение кода на форме возможно под директивами &НаКлиенте &НаСервере и  &НаСервереБезКонтекста.  Доступ к реквизитам формы возможен только в процедурах и функциях, которые выполняются на &НаКлиенте и &НаСервере.

Для наглядности выполним небольшую задачу: создадим команду, при выполнении которой Фамилия, Имя, Отчество и дата Рождения будут складываться в ФИО + Дата рождения.

Создадим локальную команду формы. Для этого на закладке «Команды» в подзакладке «Команды формы» необходимо нажать на кнопку «Добавить»

Добавление команды управляемой формы 1С

После создания команды, справа откроется палитра свойств новой команды, где мы зададим её название.

Название команды управляемой формы 1С

Но команда – это выполнение некоторых действий на форме.  Чтобы действия осуществились необходимо создать обработчик команды. Для создания обработчика команды нужно нажать на кнопку «Лупа» свойства действия. После этого откроется окно выбора места размещения обработчика.

Выбор расположения обработчика команды управляемой формы

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

После выбора места расположения обработчика, в модуле формы будет создана процедура под директивой &НаКлиенте, в которой мы напишем несложный код. В этом коде к реквизитам формы мы будем обращаться просто как к переменным. Мы можем это делать в клиентском и серверном контексте.

&НаКлиенте
Процедура СформироватьФИО(Команда)

    ФИО = Фамилия + " " +
               Имя + " " +
               Отчество + ", д.р. " +

    Формат(ДатаРождения, "ДЛФ=D");

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

В этом коде, я преобразовал дату в строку при помощи функции формат.

Обратите внимание, после создание процедуры в палитре свойств команды свойство Действие заполнилось названием нашей новой процедуры.

Свойство Действие команды управляемой формы

И последним шагом нам осталось нашу команду разместить на управляемой форме. Просто перетащим её мышкой в закладку Элементы

Перетаскиваем команду в закладки Элементы

При этом на форме появится кнопка.

Сохраним обработку и попробуем выполнить нашу команду.

Работа команды на управляемой форме

Как видите, к реквизитам формы в модуле формы можно обращаться напрямую, как к переменным, но только если процедура или функция выполняется под директивами &НаКлиенте и &НаСервере.

Управляемое приложение 1С 8.3

Подробно вопросы работы с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.

Книга «Основы разработки в 1С: Такси»

Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

Промо-код на скидку в 15% — 48PVXHeYu

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Понравилась статья? Поделить с друзьями:
  • 1с как перебрать все реквизиты справочника
  • 1с как получить программно реквизиты формы
  • 1с макеты печатных форм добавить реквизиты
  • 1с метаданные проверить наличие реквизитах
  • 1с назначить тип реквизиту табличной части