1с 8 получить форму внешней обработки на сервере
Многие сталкиваются с проблемой при использовании внешних отчетов и обработок в управляемом приложении: если необходимо открыть вторую форму обработки, то данные, введенные на первой форме не доступны. То есть, вторая форма открывается, как бы, отдельно от первой, как новый экземпляр обработки.
В этой статье мы рассмотрим способ, с помощью которого можно открыть вторую (а также третью, четвертую и т.д.) форму внешней обработки, не потеряв при этом данные, введенные на первой форме. Опустим моменты, связанные с созданием кнопок и процедур открытия форм и перейдем сразу к процедуре переноса данных из первой управляемой формы во вторую. Кстати, об открытии форм в управляемом приложении можно почитать тут.
Итак, первое, что нужно сделать — это поместить все данные внешней обработки, введенные на первой форме, в некоторое хранилище. Для этого используем функцию ПоместитьВоВременноеХранилище(). В нее нужно передать все данные внешней обработки. В целом код выглядит так:
&НаКлиенте
Процедура ОткрытьВторуюФорму ( )
//Обойдем в цикле все реквизиты внешней обработки и запишем их в структуру
_Объект = РеквизитФормыВЗначение ( "Объект" ) ;
СтруктураПараметров = Новый Структура ;
Для каждого Реквизит из _Объект . Метаданные ( ) . Реквизиты Цикл
СтруктураПараметров . Вставить ( Реквизит . Имя , Объект [ Реквизит . Имя ] ) ;
КонецЦикла ;
//Можно добавить и табличные части, и реквизиты первой формы.
СтруктураПараметров . Вставить ( "РеквизитФормы1" , РеквизитФормы 1 ) ;
СтруктураПараметров . Вставить ( "ТабличнаяЧасть1" , Объект [ "ТабличнаяЧасть1" ] . Выгрузить ( ) ) ;
//Теперь помещаем эти данные в хранилище и получаем адрес этого хранилища
АдресПередаваемыхПараметров = ПоместитьВоВременноеХранилище ( СтруктураПараметров , Новый УникальныйИдентификатор ) ;
//Создаем структуру с параметрами, которые передадим во вторую форму
_Параметры = новый Структура ( "Адрес" , АдресПередаваемыхПараметров ) ;
//Создаем оповещение, которое сработает при закрытии второй формы,
//т.к. измененные в ней данные нужно передать обратно в первую.
ОписаниеОповещения = Новый ОписаниеОповещения ( "ОбработатьЗакрытиеВторойФормы" , ЭтаФорма ) ;
//Ну и, наконец, открываем вторую форму
ОткрытьФорму ( "ВнешняяОбработка.ВыпускПроданнойПродукции.Форма.ФормаПараметровЗаполненияУПР" , _Параметры , ЭтаФорма . ОписаниеОповещения ) ;
Теперь нужно во второй управляемой форме принять и обработать данные. Это делается через обработчик события ПриСозданииНаСервере().
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
//Получаем сохраненные в хранилище данные
СтруктураПараметров = ПолучитьИзВременногоХранилища ( Параметры . Адрес ) ;
//Загружаем табличную часть
Объект [ "ТабличнаяЧасть1" ] . Загрузить ( СтруктураПараметров [ "ТабличнаяЧасть1" ] ) ;
//Загружаем реквизиты внешней обработки
_Объект = РеквизитФормыВЗначение ( "Объект" ) ;
Для каждого Реквизит из _Объект . Метаданные ( ) . Реквизиты Цикл
Объект [ Реквизит . Имя ] = СтруктураПараметров [ Реквизит . Имя ] ;
КонецЦикла ;
При закрытии второй формы нужно сделать то же самое: собрать все данные в хранилище, передать в процедуру оповещения в первой форме и обработать там.
&НаКлиенте
Процедура ЗакрытьФорму ( )
//Обойдем в цикле все реквизиты внешней обработки и запишем их в структуру
_Объект = РеквизитФормыВЗначение ( "Объект" ) ;
СтруктураПараметров = Новый Структура ;
Для каждого Реквизит из _Объект . Метаданные ( ) . Реквизиты Цикл
СтруктураПараметров . Вставить ( Реквизит . Имя , Объект [ Реквизит . Имя ] ) ;
КонецЦикла ;
//Можно добавить и табличные части, и реквизиты первой формы.
СтруктураПараметров . Вставить ( "РеквизитФормы1" , РеквизитФормы 1 ) ;
СтруктураПараметров . Вставить ( "ТабличнаяЧасть1" , Объект [ "ТабличнаяЧасть1" ] . Выгрузить ( ) ) ;
//Теперь помещаем эти данные в хранилище и получаем адрес этого хранилища
АдресПередаваемыхПараметров = ПоместитьВоВременноеХранилище ( СтруктураПараметров , Новый УникальныйИдентификатор ) ;
//Создаем структуру с параметрами, которые передадим во вторую форму
_Параметры = новый Структура ( "Адрес" , АдресПередаваемыхПараметров ) ;
//Закрываем форму, передав параметры.
Закрыть ( _Параметры ) ;
А в первой форме создаем процедуру, для которой делали описание оповещения. В ней обрабатываем принятые данные.
&НаСервере
Процедура ОбработатьЗакрытиеВторойФормы ( РезультатЗакрытия , Параметры ) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат ;
КонецЕсли ;
//Получаем данные из хранилища
СтруктураПараметров = ПолучитьИзВременногоХранилища ( РезультатЗакрытия . Адрес ) ;
//Загружаем данные
Объект [ "ТабличнаяЧасть1" ] . Загрузить ( СтруктураПараметров [ "ТабличнаяЧасть1" ] ) ;
_Объект = РеквизитФормыВЗначение ( "Объект" ) ;
Для каждого Реквизит из _Объект . Метаданные ( ) . Реквизиты Цикл
Объект [ Реквизит . Имя ] = СтруктураПараметров [ Реквизит . Имя ] ;
КонецЦикла ;
Как открыть вторую форму внешней обработки в управляемом приложении 1С : 1 комментарий
«&НаКлиенте
Процедура ОткрытьВторуюФорму ()
//Обойдем в цикле все реквизиты внешней обработки и запишем их в структуру
_Объект = РеквизитФормыВЗначение(«Объект»);»
РеквизитФормыВЗначение на клиенте.
Добавить комментарий Отменить ответ
Теперь мы в соцсетях! Подписывайтесь, чтобы получать информацию о последних обновлениях или задать вопрос.
В 8.2 1С подложила разработчикам достаточно большую свинью - получить одну форму внешнего отчета из другой напрямую не получается, т.к. необходимо указать полный путь к форме. Для решения проблемы требуется подключить отчет к конфигурации. Всю голову сломал, пока дошел до данной реализации, надеюсь кому-нибудь поможет.
Прописываем в форме следующий код:
Затем получаем форму на клиенте вызовом процедуры ПолучитьФормуВнешнегоОтчета(ИмяФормы), где ИмяФормы - строка с именем нужной формы.
Форму требовалось вызывать единожды, поэтому проверку на повторное подключение не делал, выдает ошибку при повторном вызове, как вариант - подключение реализовывать при открытии данной формы, а полученное имя хранить в строковом реквизите.
Идея сыровата, но может кому поможет.
Специальные предложения
Тоже как-то надо было. Уж не помню как я это реализовал (но код очень похож), но у меня проблема была в следующем.
Есть отчет. у него две формы: форма1 и форма2. Я открывал получал форму отчета, открывал её, пользователь вносил в неё данные. Получал форму2, открывал её, а в ней нет тех данных что ввели в форму1. Будто бы два объекта создавала. Но тогда я только с 8.2 знакомился, может чего и напутал. С тех пор каждый раз в конфу встраивал и не возвращался к этому вопросу.
Статья баянистая конечно))) Уже давно это изучено почти как полгода назад.
Или такой, из ещё неоконченной работы
"Открывая новую форму - создаете новый объект формы.
Это идеология УП: формы как объекты не хранятся на клиенте, поэтому создаются при каждом вызове заново. Соотвественно, никаких общих данных у них нет, а чтобы использовать общие данные - либо сохранять в аналог переменной "ПоместитьВоВременоеХранилище", либо - передавать при открытии через ПараметрыФормы.
Исключение - у форм Справочника можно задать использование единых источников данных БД, и тогда они будут получать одни и те же данные.
Отсюда - еще один неявный вариант хранения данных: использовать сохранние общих данных в объекты БД и брать их оттуда для каждой формы."
(0) а в статье сохраняют отчет целиком, чтобы потом взять у него форму с данными..
зачем это - не совсем непонятно.
В этой статье я разберу особенности программного открытия обработок в 1С. Мы узнаем, как открыть форму обработки, как открыть форму внешней обработки из самой внешней обработки, а также как открыть форму внешней обработки из клиентского режима платформы 1С 8.3.
Открыть форму обработки 1С
Начнем с того, что саму по себе открыть программной обработку нельзя. Можно открыть какую-либо из форм обработки. Для программного открытия управляемой формы обработки необходимо использовать метод ОткрытьФорму.
В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.
В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.
В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.
Какая именно форма обработки будет открыта, можно указать в контекстной подсказке, которая появляется после ввода названия обработки.
После, в результате выполнения команды, в отдельном окне будет открываться форма обработки «Обработка для примера».
Открыть форму внешней обработки 1С
Если нам необходимо, чтобы из одной формы внешней обработки открылась другая форма этой же внешней обработки, то также необходимо использовать метод ОткрытьФорму, как в примере выше, только вместо слова Обработка необходимо написать ВнешняяОбработка.
Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.
На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.
У этой команды будет клиентский обработчик события, со следующим кодом:
Теперь, открыв внешнюю обработку, мы сможем из её основной формы открыть дополнительную.
Открыть внешнюю обработку 1С
Выше мы разбирали пример, когда внешняя обработка открыта, и нам нужно открыть форму внешней обработки из самой внешней обработки, но иногда возникают задачи, когда нужно открыть форму внешней обработки из какого-то другого места, зная путь к этой обработке на жестком диске, или выбрав непосредственно файл обработки.
Разберем эту задачу. Откроем внешнюю обработку из обработки, которую создали в предыдущей статье, и с которой работали уже в этой — «Обработка 1».
В этой обработке создадим команду, при выполнении которой откроется форма внешней обработки.
В форме обработки напишем следующий код:
Код работает, начиная с платформы 8.3.15.
В вышеприведенном коде, процедура ОткрытьВнешнююОбработку — обработчик команды «Открыть внешнюю обработку», в этом обработчике используется метод НачатьПолучениеФайлаНаСервер, который выполнен в варианте открытия диалога выбора файла. После выбора файла срабатывает процедура описания оповещения ПослеВыбораФайла. В этой процедуре получается адрес временного хранилища файла (переменная Адрес), по которому находится название внешней обработки (в серверной процедуре ПолучитьИмяВнешнейОбработки), а потом эта внешняя обработка открывается.
После выполнения команды, откроется окно выбора файла внешней обработки.
Если файл будет выбран, внешняя обработка откроется.
Статьи про открытие форм:
Статьи по конфигурированию в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
One thought on “ Программное открытие обработок в 1С ”
Добрый день. А из документа, можно открыть внешнюю обработку? В окне с подсказкой, нет пункта «Внешняя обработка».
В этой статье мы узнаем, что такое обработки в платформе 1С 8.3 и для каких целей они нужны. Научимся создавать обработки в качестве объектов метаданных конфигурации 1С, научимся создавать внешние обработки, создавать формы обработок, добавлять обработки в подсистемы и давать права на обработки пользователям, а также узнаем, как открыть внешнюю обработку в 1С.
В платформе 1С, помимо объектов конфигурации, которые так или иначе связаны ведением учета (например, Справочники – для хранения однотипной информации, Документы – для отображения событий), существует объект, который напрямую не связан с ведением учета, и с помощью которого можно осуществлять различные вспомогательные действия (групповая обработка справочников и документов, загрузка – выгрузка информации и т.д.). Этот объект – Обработка. Обработки могут быть как объекты какой-то конфигурации, а также внешние – в этом случае сама обработка будет храниться где-то на жестком диске, её можно будет открыть в пользовательском клиенте 1С предприятия, и выполнить нужные действия.
Создать обработку 1С
Для того, чтобы создать обработку, в конфигураторе 1С в дереве метаданных необходимо выделить ветку Обработки, вызвать контекстное меню и выполнить команду «Добавить».
После выполнения этой команды, будет создана пустая обработка, которая появится в дереве метаданных в соответствующей ветке, а также откроется окно менеджера обработки.
Обработка создана, и вы можете с ней работать: задать имя обработки, синоним и т.д.
Создать внешнюю обработку 1С
Для того, чтобы создать внешнюю обработку, нужно или выполнить команду «Новый» по пути «Главное меню» — «Файл».
Или нажать на кнопку «Новый» в меню «Стандартная».
После откроется окно «Выбор вида документа», в котором необходимо выбрать «Внешняя обработка».
Откроется окно менеджера внешней обработки, и вы можете проделать с ней все нужные операции.
После того, как внешняя обработка создана, её желательно сохранить на жестком диске (и делать это периодически во время работы с ней в конфигураторе). Для того, чтобы сохранить внешнюю обработку необходимо или нажать на кнопку «Сохранить» меню «Стандартная».
Или выполнить команду «Сохранить» по пути: «Главное меню» — «Файл».
Или просто нажать сочетание клавиш Ctrl + S.
После этих действий откроется окно, в котором можно выбрать каталог, где будет храниться эта внешняя обработка, а также ввести название файла.
После сохранения, у внешней обработки сверху будет прописан путь к ней.
Замечу, что файлы всех внешних обработок имеют расширение epf.
Добавить внешнюю обработку 1С
Иногда возникают задачи добавить внешнюю обработку в конфигурацию 1С. Чтобы это сделать, необходимо выделить ветку «Обработки» дерева метаданных конфигурации, вызвать контекстное меню и выполнить в нем команду «Вставить внешнюю обработку, отчет…».
В открывшемся окне необходимо выбрать нужную обработку.
После, обработка появится в дереве.
Сохранить обработку 1С в файл
Может возникнуть обратная задача: сохранить обработку из какой-то конфигурации в файл, т.е. сделать внешнюю обработку из простой обработки.
Делается это достаточно просто: нужно выделить обработку в дереве конфигурации, вызвать контекстное меню и выполнить команду «Сохранить как внешнюю обработку, отчет…»
Откроется окно «Сохранить как», в котором нужно выбрать месторасположение обработки, а также, если это необходимо, изменить название.
Подсистема обработки 1С
Обработку, которую мы создали в дереве метаданных можно включить в любую подсистему, тогда у нас появится возможность отобразить её в пользовательском интерфейсе. Для того, чтобы включить обработку в подсистему, необходимо зайти на закладку «Подсистемы» менеджера обработки и поставить флаг напротив нужной подсистемы.
Можно включить в подсистему другим способом. Необходимо выделить нужную обработку, вызвать контекстное меню и выполнить в этом меню команду «Дополнительно».
В правой части рабочего стола откроется окно «Дополнительно», в котором на закладке «Подсистемы» можно привязать эту обработку к нужной подсистеме, установив флаг рядом с подсистемой.
После того, как мы поставим флажки, то обработка включится в состав подсистемы.
Но, если мы попробуем её найти в пользовательском клиенте, то ни чего не найдем. Также, её не будет в командном интерфейсе подсистемы.
Причина этому – отсутствие основной формы обработки.
Основная форма обработки 1С
Для того, чтобы обработка появилась в командном интерфейсе, необходимо создать основную форму обработки.
Для этого, нужно в менеджере обработки перейти на вкладку «Формы», в которой нажать на кнопку «Добавить». После, откроется конструктор формы обработки, в котором можно ввести название новой обработки, её синоним, и самое главное установить флаг «Назначить форму основной».
Если вы нажмете на кнопку «Далее», то можете выбрать какие реквизиты обработки будут включены на форму, а если нажать на кнопку «Готово», то форма будет создана без реквизитов.
После этого, обработка появится в командном интерфейсе подсистемы.
Замечу, что основная форма обработки указана в свойстве обработки «Основная форма», если мы это свойство очистим.
То даже при наличии формы, обработка не будет отображаться в командном интерфейсе подсистемы.
Права на обработку 1С
Чтобы пользователь мог работать с обработкой, ему нужно дать права на неё. Для этого, необходимо у соответствующей роли для обработки установить права Использовать и Просмотр.
Если вы установите только право Использовать, то пользователь не сможет видеть обработку в интерфейсе. Он сможет только обращаться в ней посредством программного кода.
Если Вы внедряете обработку в какую-то типовую конфигурацию, то лучше для этого создать отдельную роль, а не изменять текущую. Тогда у вас будет меньше проблем с обновлением в будущем.
Открыть обработку 1с
Для того, чтобы открыть обработку 1С в пользовательском клиенте «1С: Предприятия», необходимо, чтобы она была добавлена в командный интерфейс нужной подсистемы, а также на обработку были даны пользователю соответствующие права. Если всё это сделано, то обработка появится в меню «Сервис» подсистемы, в которую её добавили.
И при выполнении команды с именем обработки будет открыта форма обработки.
Я немного изменил управляемую форму обработки, добавив надпись.
Управляемая форма открылась в независимом окне, если мы хотим, чтобы она открылась поверх окон, то нужно у основной формы обработки установить в свойство «Режим открытия окна» или значение «Блокировать весь интерфейс», или значение «Блокировать окно владельца».
После таких настроек, обработка будет открываться по верх окон.
Открыть внешнюю обработку 1С
Если вы хотите открыть внешнюю обработку 1С, то следует выполнить команду «Открыть», которая находится по пути «Сервис и настройки» — «Файл» (для версии платформы начиная с 8.3.15).
В окне «Открыть» необходимо найти и выбрать нужную вам обработку.
После выйдет предупреждение безопасности, если вы знаете, что это за обработка, то нажимаете кнопку «Да».
Форма внешней обработки открылась.
Замечу, что в моем случае открылась форма обработки в отдельном окне, потому что, во-первых, я создал основную форму внешней обработки, а во-вторых, установил у основной формы в свойство «Режим открытия окна» значение блокировать окно владельца.
Чтобы пользователь мог открывать внешние обработки, ему необходимо установить право «Интерактивное открытие внешних обработок».
Другие статьи по конфигурированию в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
У многих начинающих программистов, особенно у тех, кто впервые сталкивается с управляемым приложением в 1С, возникает вопрос: как программным способом открыть управляемую форму. Еще больше вопросов возникает с передачей данных, когда одна форма открывается с другой формы. Многих этот момент ставит в тупик.
В этой статье я разберу оба этих момента.
Открытие управляемой формы
Для тренировки создадим в конфигураторе 1С внешнюю обработку, в которой сделаем две формы. Назовем их: Данные и Расчёт. Причем форма Данные это основная форма обработки, т.е. будет открываться при запуске обработки.
В этой тренировке в форме Данные будем вводить некоторые числовые значения, которые потом используем в форме Расчёт. Сделаем простой пример: решим линейное уравнение тип ax + b = c. Для этого на форме Данные зададим величины a,b и с соответственно, а при открытии формы Расчёт вычислим значение x. Пример больше учебный, нужный для того, чтобы показать, как передавать данные с одной формы на другую. a, b и с – это реквизиты управляемой формы Данные с типом число (10,2). Создадим эти реквизиты и перетащим их на форму.
Следующим шагом создадим команду на форме Данные, при выполнении которой откроется форма Расчёт, где мы увидим решение линейного уравнения. Назовем команду«Решить уравнение» и поместим её на форму в виде простой кнопки.
Открывать управляемые формы следует в клиентском контексте. Причем не важно, какой это будет клиент: тонкий, толстый или веб-клиент.
Подробно о клиентском и серверном контексте управляемой формы читайте в статье:
Поэтому создадим обработчик команды «Решить уравнение» на клиенте.
В процедуре-обработчике этой команды откроем форму Расчёт, для этого необходимо использовать метод глобального контекста ОткрытьФорму.
Синтаксис этого метода имеет много параметров, но обязательным является только один – первый, в котором задается путь к управляемой форме.
При работе с этим методом, можно воспользоваться контекстными подсказками: достаточно написать после открывающей скобки параметров кавычки, и выйдут различные варианты, по которым можно получить нужную форму.
Причем в контекстной подсказке можно выбрать, как конкретную форму, так и какую-то основную форму нужного объекта.
В нашем случае мы выбираем форму Расчет обработки.
Подготовим форму Расчёт – создадим у этой формы реквизит x, который поместим на форму.
А так же установим у формы в свойство Режим открытия окна значение Блокировать окно владельца. Тогда форма Расчёт будет открываться в отдельном окне.
Всё! Если мы сейчас сохраним обработку, запустим её и выполним команду «Решить уравнение» формы Данные, то откроется форма Расчёт. На которой, естественно, ни чего пока ещё не рассчитано.
И первое что нам бросается в глаза, это заголовок в названии управляемой формы. Переименуем. Для этого в палитре свойств формы нужно снять флаг у свойства Автозаголовок и написать какой-то заголовок в свойстве Заголовок.
Параметры управляемой формы
С открытием форм все просто и понятно. Но как передать данные с одной формы на другую? Для этого у управляемой формы 1С есть закладка Параметры. В этой закладке перечисляются данные, которые будут использоваться при создании управляемой формы на сервере.
Создадим у управляемой формы Расчёт параметры a,b,c.
Замечу, что к параметрам можно обращаться только в событии управляемой формы ПриСозданииНаСервере. Это событие возникает тогда, когда форма была создана на сервере, но еще не была передана в клиентский контекст.
Если Вы хотите, чтобы параметр был доступен все время существования формы, то у него необходимо установить свойство Ключевой параметр.
У формы Расчёт создадим событие формы ПриСозданиеНаСервере. Для этого в палитре свойств формы нужно найти это событие и кликнуть на кнопку «Лупа».
Решим в этом событие линейное уравнение. Для того, чтобы обратиться к нужному параметру формы, необходимо использовать коллекцию Параметры. И через точку получать значение интересующего нас параметра.
Теперь нам осталось передать параметры при открытии формы. Для этого на форме Данные в обработчике команды «Решить уравнение» создадим структуру, в которой перечислим все передаваемые параметры. Ключ этой структуры должен соответствовать названию параметра в открываемой форме.
И эту структуру будем указывать в качестве второго параметра метода ОткрытьФорму.
Посмотрим, как будет работать этот код.
Как видите, в управляемом приложении 1С нет ничего сложного в передачи данных с одной формы на другую. Для этого просто необходимо использовать параметры управляемой формы.
Подробно вопросы работы с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:
Читайте также: