Как передать параметры при закрытии формы 1с

Передача параметров из второй формы обратно

Элементы коллекции:
КлючИЗначение
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

Свойства:
Методы:
Конструкторы:

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

Массив (Array)
Элементы коллекции:
Произвольный
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значения элементов массива.
Возможно обращение к значению элемента посредством оператора [. ]. В качестве аргумента передается индекс значения (нумерация с 0).

Описание:
Предназначен для доступа к элементам массива, его методам и конструктору.
Элементы коллекции:
ЭлементСпискаЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс (нумерация с 0) элемента.

Описание:
Используется для доступа к методам

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

При закрытии формы открытой модально в параметре метода:
ЭтаФорма.Закрыть(ВозвращаемоеЗначение)

ну и когда получаешь форму указываешь владельца

Если конфа своя, то не нужно структуры.
В реквизитах формы создай три параметра и юзай.

Источник

Передача параметров в Управляемых формах

Подскажите один момент плз:
Я из одной УФ открываю другую, код вот такой-

После закрытия дочерней УФ выполняется следующая процедура (оповещение)

Если закрытие дочерней формы осуществляется с помощью кнопки, тогда параметры в исх. форму можно передать фот так:
Закрыть(ПАРАМЕТРЫ);

Добавлено через 17 часов 6 минут
Раобрался самостоятельно, надо вставить код при закрытии:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Запись объекта на управляемых формах
пишу обектнакладная= реквизитформывзначение(«объект) обектнакладная.записать(); //////////.

Можно ли на управляемых формах создать аналог обычной формы документа «операция» из Бухгалерии
что использовать для отображения данных в табличной части на управляемых формах, чтобы в первой.

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Оформление в управляемых формах
Добрый день! Не могу выровнять поля (обведено на рисунке). Там, где по два элемента в ряду.

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

Работа с таблицей в обработке В управляемых формах
Здравствуйте, Решил заняться изучением 1С и в процессе выполнения различных задач в учебной.

как получить ссылку на созданный элемент справочника в управляемых формах 8.2
Добрый день. Вопрос возник следующий. Из процедуры документа я вызываю форму элемента справочника.

Источник

[Новое в платформе] Как правильно закрывать формы и приложение в платформе 1С:Предприятие 8.3.8 (и старше)

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

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

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

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

Коротко о главном…

Сначала коротко обозначим суть изменений. Начиная с версии платформы 8.3.8 необходимо выделять 2 сценария закрытия формы:

Как это повлияло на объем кода?

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

Фактически теперь в процессе закрытия приложения можно указать только текст вопроса, который увидит пользователь.
Скорее всего, у вас уже возник вопрос: к чему же все эти изменения?

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

Теперь подробнее разъясним суть проблемы.

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

Что же сделали разработчики платформы? Теперь платформа ведет себя так же, как и веб-браузеры: если приложение не хочет, чтобы его закрывали, тогда выводится платформенный диалог. В результате нет необходимости писать код под разные клиенты, так как работает он одинаково, но платой за такую универсальность являются описанные выше ограничения.

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

На этом завершаем краткий обзор изменений и переходим к подробному разбору.

Вопрос при закрытии формы

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

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

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

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

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

Таким образом, код требует модернизации:

Как вы можете заметить, у обработчика ПередЗакрытием появились 2 новых параметра:

Теперь подробнее об изменении в коде. Как вы видите, появилась новая ветка алгоритма, которая выполняется в процессе завершения работы системы.

Обращаем ваше внимание, что никаких диалогов в этом случае не открывается, так как они запрещены. В коде устанавливается только текст предупреждения и обязательно устанавливается флаг Отказ. Как уже отмечалось выше, нельзя программным способом отменить процесс закрытия приложения, поэтому флаг Отказ работает иначе, чем при обычном закрытии формы. Установка флага указывает необходимость отображения предупреждения для пользователя, которое хранится в параметре ТекстПредупреждения.

В толстом и тонком клиенте окно предупреждения будет следующим:

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

Стоит отметить, что если флаг Отказ сброшен, а ТекстПредупреждения заполнен, тогда система проигнорирует текст и сообщение отображено не будет. Если же флаг Отказ установлен, а параметр ТекстПредупреждения не заполнен, тогда будет отображено системное предупреждение:

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

Также следует отметить, что количество подобных диалогов может быть любым – по числу закрываемых форм. Кроме того, аналогичный диалог может формироваться в обработчике ПередЗавершениемРаботыСистемы модуля управляемого приложения (этот вариант будет рассмотрен ниже). В итоге, если пользователь хотя бы в одном диалоге нажмет кнопку Продолжить работу, процесс завершения работы будет отменен и на экране останется та форма, в которой была нажата кнопка.

В веб-клиенте диалог будет выглядеть иначе. В веб-браузерах Mozilla Firefox и Google Chrome будет отображен только текст, заданный разработчиками веб-браузера и не будет отображаться текст, установленный в обработчиках событий системы.

Пример диалога для Mozilla Firefox:

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

Пример диалога для Google Chrome:

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

В веб-браузере Internet Explorer диалог будет выглядеть иначе. Будет отображен единый диалог, содержащий все сообщения, установленные в обработчиках формы и модуле управляемого приложения:

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

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

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

Также можно сформулировать небольшую рекомендацию. Если в коде обработчика формы ПередЗакрытием, исполняемом в процессе завершения работы системы, необходимо получать дополнительные данные с сервера, то их следует получить заранее и хранить в данных формы.

Вопрос при закрытии приложения

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

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

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

Открытие формы обработки при закрытии приложения

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

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

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

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

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

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

Заключение

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

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

Поддержка – 3 месяца. Объем курса – 49 учебных часов.

Об авторе

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

Автор статьи – Сергей Калинкин

Директор ЦСО «Центр профессионального программирования», г. Казань

PDF-версия статьи для участников группы ВКонтакте

Если Вы еще не вступили в нее – сделайте это сейчас, и в блоке ниже (на этой странице) появятся ссылки на скачивание материалов.

Источник

Как передать параметры при закрытии формы 1с

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

v8: Передача данных из одной формы в другую

Автор статьи: Волшебник | Редакторы: vvv29, Гений 1С
Последняя редакция №6 от 17.04.06 | История
URL: http://kb.mista.ru/article.php?id=52

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

Как из одной формы открыть другую, передав параметры, и получить обратно результат?

1. ОткрытьМодально, параметр закрытия, метод Закрыть

2. Реквизиты формы (или свойства расширения формы)

Реквизиты формы видимы снаружи как свойства объекта Форма. Их можно создать столько сколько нужно и присвоить им нужный тип.

3. Через ЭлементыФормы (не очень красиво)

5. Экспортные переменные модулей форм

Они становятся видимы снаружи, примерно как реквизиты форм:

6. Экспортные переменные модуля объекта, если он является основным реквизитом формы

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

7. Глобальные переменные (экспортные переменные модуля приложения)

9. СохранитьЗначение, ВосстановитьЗначение

10. Параметры сеанса

Обратите внимание! Попытка прочитать неинициализированный параметр сеанса приводит к ошибке! Поэтому нужно инициализировать все параметры сеанса раньше, например, еще в процедуре ПриНачалеРаботыСистемы.

11. Объекты базы данных (справочники, константы, регистры сведений и т.д.)

Источник

Как передать параметры при закрытии формы 1с

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *