Как передать параметры в форму при открытии

Как передать параметры в форму при открытии

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Параметр и контекст формы

Параметр и контекст формы. Передача параметра и работа с ним. Передача контекста, как параметра.Автор статьи: Ангел-Хоронитель | Редакторы: Волшебник, Ангел-Хранитель
Последняя редакция №12 от 28.05.06 | История
URL: http://kb.mista.ru/article.php?id=172

Ключевые слова: параметр, контекст, форма, передача, передать

Итак, что же такое параметр?

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

Зачем нужен параметр?

Параметр нужен для передачи в форму дополнительных значений. Например: откуда открыта форма.

Как передать параметр?

Параметр передается в форму при открытии. Например:

Как получить параметр в открывшейся форме?

Получить параметр, переданный в форму, мы можем таким образом:

Как передать несколько значений?

Поскольку параметр может принимать любое значение, он может принимать значение типа Список. Пример

Пример обработки его в открывшейся форме:

Что такое контекст формы?

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

Как работать с контекстом?

Все довольно просто. Для того, чтобы с контекстом работать, его надо сначала передать.
Передается он с помощью параметра. Например:

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

использовать ее нужно так:

Для закрепления полученных знаний приведем практический пример.

Создадим тестовую обработку, и назовем ее Пример. Добави на нее кнопку Закрыть для закрытия формы. Теперь добавим на нее Текстовый реквизит и пропишем ему в поле Формула ТР. Также в модуле формы пропишем:

Теперь откроем форму списка справочника Номенклатура и добавим туда кнопку. В формуле кнопки напишем

Запустите 1С, откройте справочник номенклатуры, нажмите кнопку. Откроется форма и там будет наименование выбранной номенклатуры. Мы передали параметр.
Теперь передадим несколько значений. У кнопки поменяем формулу на ОткрытьПример(). Опишем процедуру:

В обработке перепишем:

Пробуем. В зависимости от того, группа или нет, текущий элемент, в обработке пишется полное наименование или обычное.

Теперь поработаем с контекстом. Перепишем процедуру ОткрытьПример:

Изменим и обработку:

В текстовом реквизите на обработке в формулу пропишем Надпись() и приделаем туда еще одну кнопку Обновить у которой в формулу пропишем Форма.Обновить()

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

Теперь в функции какого-нить текстового реквизита (например ИнформационнаяНадпись()), пропишем такие строки:

Источник

Параметры формы

Продолжаем изучать 1с в рубрике ‘Джуниор 1с’. Сегодня мы рассмотрим такую простую вещь как параметры формы. Вам кажется это очень простым вопросом? Тогда задайте своему коллеге вопрос: за что отвечает свойство параметра формы ‘Ключевой параметр’? Или в каком контексте формы он доступен? Многие не смогут дать ответа на этот вопрос!

Итак, начнем с простого: у нас есть форма документа ‘Задачи’. Давайте попытаемся её открыть и передать в неё структуру параметров:

Отлично, с этой задачей мы справились. Теперь идем в процедуру ‘ПриСоздании’ нашей формы документа и смотрим, где же найти наши параметры:

Мы видим что наши переданные параметры можно увидеть в переменной ‘Параметры’ / ДанныеФормыСтруктура. Они будут в самом конце списка (в красной рамке). Выше них идут стандартные параметры формы (предопределенные). И самыми первыми идут параметры (в зеленой рамке), которые мы можем определять непосредственно в самой форме:

Но давайте посмотрим, какие параметры будут жить вне процедуры ‘ПриСозданииНаСервере’. Для примера посмотрим что у нас доступно в клиентской процедуре ‘ПриОткрытии’:

Здесь мы видим что у нас остался только ограниченный список параметров. И наших параметров из вне здесь нет. А вот в процедуре ‘ТестоваяПроцедураСервер’, которая вызывается из ‘ПриСозданииНаСервере’ имеет полный список параметров формы:

И давайте еще проверим какие параметры мы видим из процедур, которые отдельно вызываются уже после создания формы (допустим по нажатию какой-либо кнопки):

Итак, мы можем подвести итог: полный список параметров формы доступен только в контексте процедуры ‘ПриСозданииНаСервере’ (плюс все процедуры, которые вызываются из неё)! Но тогда возникает вопрос, а что же это за параметры, которые живут все время, которое существует формы?

А все просто – это ключевые параметры формы. Доступны в контексте формы (в любых процедурах)! Что бы сделать свой ключевой параметр, достаточно создать параметр формы и указать у него свойство ‘Ключевой параметр’ (он тогда выделится жирным шрифтом):

Ключевых параметров может быть несколько. Так же программа сама формирует список предопределенных ключевых параметров. К примеру таких как ‘Ключ‘:

Итак, с этим разобрались. Остался у нас теперь один вопрос, а как же нам к ним обращаться? А очень просто! Это НЕ обычная структура, а ДанныеФормыСтруктура, по сути из неё мы можем только читать наличия свойства и значения:

Вот в принципе и все! Ничего сложного! Всем удачи!

Источник

Программирование в 1С для всех

У многих начинающих программистов, особенно у тех, кто впервые сталкивается с управляемым приложением в 1С, возникает вопрос: как программным способом открыть управляемую форму. Еще больше вопросов возникает с передачей данных, когда одна форма открывается с другой формы. Многих этот момент ставит в тупик.

В этой статье я разберу оба этих момента.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

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

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

В этой тренировке в форме Данные будем вводить некоторые числовые значения, которые потом используем в форме Расчёт. Сделаем простой пример: решим линейное уравнение тип ax + b = c. Для этого на форме Данные зададим величины a,b и с соответственно, а при открытии формы Расчёт вычислим значение x. Пример больше учебный, нужный для того, чтобы показать, как передавать данные с одной формы на другую. a, b и с – это реквизиты управляемой формы Данные с типом число (10,2). Создадим эти реквизиты и перетащим их на форму.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Следующим шагом создадим команду на форме Данные, при выполнении которой откроется форма Расчёт, где мы увидим решение линейного уравнения. Назовем команду«Решить уравнение» и поместим её на форму в виде простой кнопки.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

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

Поэтому создадим обработчик команды «Решить уравнение» на клиенте.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

В процедуре-обработчике этой команды откроем форму Расчёт, для этого необходимо использовать метод глобального контекста ОткрытьФорму.

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

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

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Причем в контекстной подсказке можно выбрать, как конкретную форму, так и какую-то основную форму нужного объекта.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

В нашем случае мы выбираем форму Расчет обработки.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Подготовим форму Расчёт – создадим у этой формы реквизит x, который поместим на форму.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

А так же установим у формы в свойство Режим открытия окна значение Блокировать окно владельца. Тогда форма Расчёт будет открываться в отдельном окне.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Всё! Если мы сейчас сохраним обработку, запустим её и выполним команду «Решить уравнение» формы Данные, то откроется форма Расчёт. На которой, естественно, ни чего пока ещё не рассчитано.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

И первое что нам бросается в глаза, это заголовок в названии управляемой формы. Переименуем. Для этого в палитре свойств формы нужно снять флаг у свойства Автозаголовок и написать какой-то заголовок в свойстве Заголовок.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

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

Создадим у управляемой формы Расчёт параметры a,b,c.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

Замечу, что к параметрам можно обращаться только в событии управляемой формы ПриСозданииНаСервере. Это событие возникает тогда, когда форма была создана на сервере, но еще не была передана в клиентский контекст.

Если Вы хотите, чтобы параметр был доступен все время существования формы, то у него необходимо установить свойство Ключевой параметр.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

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

Посмотрим, как будет работать этот код.

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

Как передать параметры в форму при открытии. Смотреть фото Как передать параметры в форму при открытии. Смотреть картинку Как передать параметры в форму при открытии. Картинка про Как передать параметры в форму при открытии. Фото Как передать параметры в форму при открытии

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

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

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

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


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

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

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

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

Источник

Открытие форм

Область применения: управляемое приложение, мобильное приложение.

Рекомендация обусловлена соображениями

2. В случаях когда форма требует параметризации при открытии, все ее параметры следует указывать в наборе параметров формы. Таким образом, набор параметров формы декларативно описывает возможности формы по ее параметризации.

Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).

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

МояФорма = Форма.ОткрытьФорму(“ОбщаяФорма.ПутеводительПоСистеме”);
МояФорма.Элементы.ГруппаШаг.ТекущаяСтраница = МойФорма.Элементы.ГруппаШаг.Страницы.Приветствие;

следует по той же причине использовать параметры формы:

ОткрытьФорму(“ОбщаяФорма.ПутеводительПоСистеме”, Новый Структура(“РежимОткрытия”, “Приветствие”));

4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы

ФормаВопроса = ПолучитьФорму(“ОбщаяФорма.ФормаВопроса”);
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …

следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:

Оповещение = Новый ОписаниеОповещения(“БольшеНеПоказыватьНапоминаниеЗавершение”, ЭтотОбъект);
ОткрытьФорму(“ОбщаяФорма.ФормаВопроса”. Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.

&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт

Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;

Если БольшеНеПоказыватьНапоминание Тогда
// …

5. Другие ограничения:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;

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

6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню “Все функции” вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:

Источник

Параметры формы

Параметры формы

1. Общая информация

Параметры формы (закладка Параметры ) служат двум целям:
● Описать набор данных, которые будут влиять на открытие формы (параметризация формы). Для этого нужно перечислить все необходимые параметры и указать их типы.
● Определить параметры, которые будут влиять на ключ уникальности формы. Для этого необходимо установить свойство Ключевой параметр у тех параметров, которые должны участвовать в формировании ключа уникальности формы. При попытке открыть форму система производит поиск существующей формы с помощью сформированного ключа уникальности формы. Если в системе существует форма с полученным ключом
уникальности, возвращается именно эта форма; если нет – создается новая форма.
При вызове формы значения параметров, созданных разработчиком, можно указывать в структуре параметров наряду с системными параметрами форм (если таковые имеются).
Параметры формы можно передать в форму в момент ее создания. Анализ переданных параметров можно выполнить в событии ПриСозданииНаСервере() (коллекция Параметры является свойством объекта УправляемаяФорма ):

2. Стандартные параметры формы

Для того чтобы поддерживать автоматическое взаимодействие между формами, система предоставляет ряд стандартных параметров, которые используются для управления формами при их открытии. С помощью этих параметров системой реализуется в полях форм выбор из форм выбора, открытие форм объектов, работа стандартных команд и т. д. То есть они обеспечивают различные заложенные в систему сценарии работы интерфейса.
Но разработчик также может использовать эти параметры во встроенном языке, передавая их при вызове метода ОткрытьФорму().
Перечень стандартных параметров форм в зависимости от вида расширения формы можно посмотреть в разделах Встроенный язык – Интерфейс
(управляемый) – Управляемая форма – Расширение… встроенной справки.

3. Пример работы с параметрами формы

&НаКлиенте
Процедура СписокВыборЗначения(Элемент, СтандартнаяОбработка, Значение)
СтандартнаяОбработка = Ложь ;
ОповеститьОВыборе(Значение );
КонецПроцедуры
Нам осталось реализовать обработку выбора элемента в самом поле ввода. Для этого необходимо обработать событие ОбработкаВыбора нашего поля ввода ВыбранныйТовар.

&НаКлиенте
Процедура ВыбранныйТоварОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка )
СтандартнаяОбработка = Ложь ;
Объект.ВыбранныйТовар = ВыбранноеЗначение;
КонецПроцедуры
Мы самостоятельно реализовали системный механизм выбора значения в поле ввода на форме.
ВНИМАНИЕ! Данный пример не является законченным. Его единственным назначением является демонстрация механизмов работы с параметрами формы.
Если при создании параметров (обработчик ВыбранныйТоварНачалоВыбора( )) заменить строку:

ПараметрыВыбора.Вставить (“ЗакрыватьПослеВыбора”, Истина );
на строку:
ПараметрыВыбора.Вставить (“ЗакрыватьПослеВыбора”, Ложь) ;
то форма выбора перестанет закрываться после того, как будет осуществлен выбор. Это можно использовать, например, для реализации формы подбора (выбор нескольких товаров без закрытия формы выбора).

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *