1С параметры формы при открытии

  • автор:

Печать (Ctrl+P)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПолучитьФорму(«Документ.ПоступлениеТоваровУслуг.ФормаДокумента»).Открыть()

Это самый медленный метод открытия форм. Тем не менее, он позволяет программно обработать форму перед открытием. Для обработки код нужно немного изменить:

Форма=ПолучитьФорму(«Документ.ПоступлениеТоваровУслуг.ФормаДокумента»);
//Тут выполняем действия с формой
Форма.Открыть();

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

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

Как открыть форму объекта в управляемом приложении, если есть ссылка на него.

В этом случае все предельно просто.

СпрСсылка=Справочники.Номенклатура.НайтиПоКоду(«000000001»);
ОткрытьЗначение(СпрСсылка);

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

Для этого существует функция ВвестиЗначение(). У функции 3 параметра:

  • Переменная, в которую будет записано выбранное значение;
  • Подсказка, которая будет отображена в окне выбора;
  • Описание типов выбираемых значений. Может быть несколько типов, тогда перед выбором конкретного значения будет предложено выбрать тип.

В результате выполнения функции откроется форма выбора по умолчанию для объекта указанного типа.

Перем Значение;
Массив=новый массив;
Массив.Добавить(Тип(«СправочникСсылка.Номенклатура»));
Массив.Добавить(Тип(«СправочникСсылка.Контрагенты»));
ОписаниеТипов=новый ОписаниеТипов(Массив);
Рез=ВвестиЗначение(Значение, «Подсказка», ОписаниеТипов);

Предыдущие способы позволяли открывать только формы, установленные для объектов по умолчанию (форму объекта или форму выбора). Если нужно открыть произвольную форму, то можно воспользоваться функцией ОткрытьФорму().

Эта функция имеет довольно много параметров. Рассмотрим некоторые из них:

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

Рассмотрим, как применяется функция ОткрытьФорму() в различных ситуациях.

Как открыть форму существующего объекта

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(«Ключ», НайтиС());
ОткрытьФорму(«Справочник.Контрагенты.ФормаОбъекта»,Параметр);
КонецПроцедуры
&НаСервере
Функция НайтиС();
Возврат Справочники.Контрагенты.НайтиПоРеквизиту («ИНН», «745107734623»)
КонецФункции

Как открыть форму нового объекта

Тут подойдет просто функция ОткрытьФорму() без всяких параметров.

&НаКлиенте
Процедура Команда1(Команда)
ОткрытьФорму(«Справочник.Контрагенты.ФормаОбъекта»);
КонецПроцедуры

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

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(«Основание», СсылкаНаСчетПокупателю);
ОткрытьФорму(«Документ.РеализацияТоваровУслуг.ФормаОбъекта», Параметр);
КонецПроцедуры

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

Как открыть форму и задать на ней отбор

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

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

Например, откроем форму списка справочника НомераГТД и сделаем там отбор по владельцу — элементу справочника Номенклатура.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Отбор=новый Структура;
Отбор.Вставить(«Владелец», СсылкаНаНоменклатуру);
Параметр.Вставить(«Отбор», Отбор);
ОткрытьФорму(«Справочник.НомераГТД.ФормаСписка», Параметр);
КонецПроцедуры

Как открыть форму записи регистра сведений

Для этого понадобится ключ записи регистра сведений.

Ключ записи — это значения всех измерений и период (если регистр периодический). То есть ключ записи — это параметры, по которым можно однозначно идентифицировать запись.

Алгоритм открытия следующий:

  1. Заносим в структуру данные ключа записи с необходимыми значениями.
  2. Помещаем полученную структуру в массив.
  3. Из массива создаем ключ записи.
  4. Передаем в открываемую форму параметр Ключ с ключом записи из п.3 в качестве значения.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

ПараметрыКлюча=новый Структура;
ПараметрыКлюча.Вставить(«Номенклатура», СсылкаНаНоменклатуру);
ПараметрыКлюча.Вставить(«ТипЦены», СсылкаНаТипЦен);
ПараметрыКлюча.Вставить(«Период», Дата);
МассивКлюча = Новый Массив;
МассивКлюча.Добавить(ПараметрыКлюча);
КлючЗаписи = Новый(«РегистрСведенийКлючЗаписи.ЦеныНоменклатуры», МассивКлюча);
Параметр.Вставить(«Ключ», КлючЗаписи);
ОткрытьФорму(«РегистрСведений.ЦеныНоменклатуры.ФормаЗаписи», Параметр);
КонецПроцедуры

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

Войдите как ученик, чтобы получить доступ к материалам школы

Создание конфигураций 1С: добавляем команду

Автор уроков и преподаватель школы: Владимир Милькин

Продолжаем изучение азов создания конфигураций на 1С.

Вернёмся в конфигуратор и откроем дерево конфигурации:

Где находится форма у обработки

Откроем окно настроек обработки «УдалениеУволенныхСотрудников»:

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

На этот раз нас интересует закладка «Формы» — откроем её:

Найдите на этой закладке объект с именем «Форма» — это и есть наше визуальное представление обработки:

Давайте откроем его двойным щелчком:

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

Меняем код на встроенном языке 1С для формы

Ну прежде всего обратим внимание в самый низ открывшегося окна. Там мы найдём две закладки «Форма» и «Модуль».

Закладка «Форма» — это и есть визуальное представление. Сейчас на форме находится всего лишь одна кнопка «Удалить сотрудников».

Закладка «Модуль» — это код на встроенном языке 1С, который содержит процедуры и функции, определяющие поведение формы для пользователя.

Попробуем переключиться на закладку «Модуль»:

Здесь присутствует всего одна процедура с именем «УдалитьСотрудников». Очевидно именно она и вызывается при нажатии на кнопку.

Код процедуры сейчас свёрнут — нажмём на плюсик, чтобы развернуть его (не поместился на рисунке справа):

Точно, так и есть. Вот оно место, где выдаётся сообщение о том, что я не стал писать код этой обработки

Изменим этот код следующим образом:

И получим то самое сообщение, которое написали только что:

Закладка «Элементы» у формы

Вернёмся в конфигуратор в нашу форму на закладку «Форма»:

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

Например, чтобы открыть свойства кнопки «Удалить сотрудников» на форме — найдём эту кнопку на закладке «Элементы» и сделаем на ней двойной щелчок:

Откроется окно со свойствами кнопки:

Давайте установим для кнопки заголовок «БАХ»:

Форма теперь будет выглядеть так:

Закладка «Реквизиты» у формы

Теперь перейдём к закладке «Реквизиты»:

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

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

Закладка «Команды» у формы

Заключительная закладка, которую мы рассмотрим сегодня это закладка «Команды»:

Вообще все команды, которые вы видите на одной из закладок («Команды формы», «Стандартные команды» и «Глобальные команды»), можно смело перетаскивать на закладку «Элементы» и они «волшебным образом» превратятся в кнопки на форме.

Как вы понимаете, нажатие на эти кнопки, будет приводить к выполнению этих команд.

Ну, например, перейдём на закладку «Стандартные команды» и перетащим на закладку «Элементы» команду «Закрыть»:

Вернёмся в конфигуратор в форму обработки и перейдём на закладку «Команды формы»:

На этой закладке мы видим команды формы, которые мы определили сами. В том числе мы можем видеть здесь команду, которую я определил ещё в самом начале с именем «УдалитьСотрудников».

Откроем свойства этой команды (двойным щелчком).

Нас интересует прежде всего поле «Действие», нажмите на кнопку с лупой рядом с ним:

Нас перенесло в процедуру «УдалитьСотрудников» в модуле формы. Это означает, эта команда и эта процедура связаны между собой. И выполнение команды (например, при нажатии на кнопку, в которую она превратилась) приведёт к выполнению кода процедуры.

Добавляем новую команду для формы

Давайте создадим ещё одну команду формы. Для этого вернёмся на закладку «Команды формы» и нажмём зелёную кнопку с плюсом:

На закладку добавилась новая команда «Команда1»:

Откроем её свойства и установим имя «Привет», а затем нажмём на лупу рядом с полем «Действие»:

Нас спрашивают какой именно вид обработчика мы хотим создать.

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

Выбираем вариант «НаКлиенте» и нажимаем «ОК»:

Нас перенесло в модуль формы в автоматически созданную процедуру «Привет». Теперь эта процедура связана с командой формы «Привет»:

Давайте напишем в ней вывод строки привет пользователю:

Но как нам теперь заставить выполнять команду (а значит и процедуру) «Привет»? Для этого вернёмся на закладку «Команды формы» и перетащим наш «Привет» на форму, так как мы это сделали ранее с командой «Закрыть»:

На форме появилась ещё одна кнопка. Запустим 1С:Предприятие, откроем обработку и нажмём на кнопку «Привет». Должно получиться вот так:

Вводим от пользователя имя и говорим ему привет

А теперь давайте поставим себе такую задачу. Нужно, чтобы пользователь ввёл своё имя, мы нажали на кнопку и вывелось, например, «Привет, Алексей».

Чтобы мы смогли разместить на форме элементы для ввода данных нам потребуется реквизит формы (закладка «Реквизиты») с которым этот элемент будет связан.
Так как закладка «Реквизиты» у нас практически пустая — создадим новый реквизит.

Переходим на закладку «Реквизиты» и нажимаем зелёную кнопку плюс:

Добавился реквизит с именем «Реквизит1»:

В окне свойств этого реквизита установим имя «Имя» и тип «Строка»:

После этого перетащим уже привычным образом реквизит «Имя» на закладку «Элементы»:

Ага, на форме появился элемент для ввода строки! Что нам и требовалось

Запустим 1С:Предприятие, откроем обработку и попробуем туда ввести своё имя:

Всё получилось, но вот нажатие на кнопку «Привет» пока работает по-прежнему.

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

Перепишем её таким образом, чтобы к строке «Привет, » добавлялось значение реквизита «Имя», который связан с элементом ввода на форме:

Теперь снова запустим 1С:Предприятие, обработку, введём своё имя и нажмём кнопку «Привет»:

То что надо!

Команды, элементы, реквизиты, объект… вы ещё не запутались?

Думаю запутались Спешу вас успокоить, что не стоит переживать по этому поводу. Со временем ситуация прояснится.

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

Кнопка — элемент. Надпись — элемент. Поле ввода — тоже элемент

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

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

Вот например.

Кнопка

Очевидно, что кнопка не может быть сама по себе. Когда пользователь нажимает на неё — должно произойти некоторое действо, задуманное программистом.

Это действо и называется командой

Ну встроенные команды — они на то и встроенные. Что их действие придумано уже до нас. Мы можем лишь перетащить эти команды на форму и превратить их в кнопки. К таким командам относится, например, команда закрытия формы. Нам не нужно ничего программировать — достаточно перетащить стандартную команду «Закрыть» на форму и всё

А команда формы — это команда придуманная нами самими. Это та команда, которую мы сами добавили на закладку «Команды формы», затем нашли в её свойствах пункт «Действие», ткнули на него и запрограммировали код на встроенном языке в автоматически созданном обработчике в модуле формы (например, команда «Привет» из этого урока).

Ну в общем вы поняли: команда — это некоторое действие, запрограммированное на языке 1С (или уже встроенное в программу). А кнопка — это визуальный элемент формы, который при своём нажатии запускает связанную с собой команду.

Надпись

Это просто текст на форме. У такого элемента есть свойство «Заголовок», значение которого мы задаём в редакторе и оно отображается в виде текста.

Поле

А вот это уже интересно. Потому что это такой особый элемент, который не сам по себе (как надпись), а обязательно должен быть связан с какими-то данными или по-другому РЕКВИЗИТАМИ (закладка «Реквизиты»).

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

Ну вот представьте, что у нас на форме есть поле для ввода числа. Если бы не было реквизитов — как бы мы из кода узнали, какое число ввёл пользователь? Мы бы обратились к элементу ввода по имени и прочитали некоторое его свойство, отвечающее за значение введённое пользователем.

Так вот в 1С так нельзя. Тут (начиная с «управляемых» форм) представление данных отделено от самих данных.

Получается, что элемент ввода — это элемент формы. А число, которое вводит пользователь, хранится не в самом элементе, а в реквизите, который связан с этим элементом.

Ещё раз. Реквизит — это именно данные (строка, число, дата) . Не визуальное представление (надпись с текстом, поле для ввода числа, поле для ввода даты). Визуальным представлением реквизита является как раз элемент формы «Поле».

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

И наоборот. Пользователь вводит на форме значения в элементы ввода (числа, текст, даты) и значения реквизитов также меняются автоматически.

Какие преимущества даёт такое отделение элементов формы от данных (реквизитов)? Большие! Программист создает нужные ему реквизиты (для хранения, отображения и ввода некоторых полей на форме) и пишет программный код работая только с этими реквизитами (данными). Он совершенно не задумывается пока как всё это будет выглядеть на форме. Оно ему и не надо! Он пока пишет только программный код.

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

Ещё пример. Пусть у нас есть реквизит «Возраст» с типом «Число». Этот реквизит хранит только само число, больше ничего. Он не отвечает за то, как будет выглядеть это число, и в каком месте (или на какой закладке) будет располагаться элемент ввода на форме, связанный с этим числом. Реквизит — это только число! Обращаясь к реквизиту мы никак не сможем поменять размер элемента ввода на форме, цвет, видимость… За всё это отвечает не реквизит, а элемент! Меняя реквизит, мы меняем только число, которое отображается в элементе ввода на форме.

В общем: РЕКВИЗИТ — это переменная формы. Поэтому все данные храним в реквизитах (переменных), а для их вывода на форму (или ввода с формы) используем элементы. Именно это отделение логики от представления позволяет 1С с легкостью отображать одни и те же формы на разных клиентах: «толстый», «тонкий», «веб-браузер».

Чтобы обратиться к реквизиту «Возраст» из модуля формы достаточно сразу использовать его имя:

Возраст = 10;

А чтобы обратиться к элементу формы, который связан с этим реквизитом нужно использовать префикс «Элементы.», например:

Элементы.ПолеВводаВозраста.Цвет = «Красный»;

Что такое Объект?

Ну и, наконец, объект. Судя по-тому, что он находится на закладке «Реквизиты» — это тоже реквизит. Всё верно. Но он особенный.

Этот реквизит мы не создаём — он сам появляется на закладке «Реквизиты». В случае с обработкой он пустой, но если бы мы программировали форму какого-нибудь справочника, то реквизит объект как раз и представлял бы из себя поля этого справочника из базы.

Рядом с ним бы появился плюсик и мы могли бы его раскрывать и перетаскивать отдельные его части на форму и они бы также превращались в элементы.

Пройдите тест

Начать тест

Использование модальных окон в данном режиме запрещено! Модальные окна не работают, как быть?  4
  В конфигураторе в свойства конфигурации, есть параметр «Режим использования модальности» Если установить Не использовать , то — принципе весь код, который после ОткрытьФормуМодально() Вопрос(), Предупреждение(), Выборов и диалогов открытия-сохр Как изменить картинку главное в панели инструментов УП 1С?  4
  Разрабатывая конфигурацию, задался вопросом: Как изменить картинку раздела «Главное» в интерфейсе Такси? Сразу скажу, беглый поиск по настройкам не помог, но оказалось все не так сложно. В свойствах конфигурации есть пункт «Картинка основного разде Как посмотреть движения документа в управляемом приложении?  4
  При работе с документами в 1С очень часто возникает необходимость просматривать их движения по регистрам. И при работе с обычными формами в режиме толстого клиента никаких проблем не возникало. Кнопка Перейти и далее можно выбрать по какому регистру Пример хранения изображений в базе (отдельный справочник), в интерфейсе Такси и без модальности  3
  Часто разрабатывая некую конфигурацию, пользователи хотят прикреплять к элементу справочника фото и чтобы они хранились в базе данных. В этой статье я расскажу как к справочнику объекты строительства подключить хранилище фотографий в виде справочни Как из панели меню убрать пункт Вид и отключить Настройка панели?  3
  Нужно чтобы пользователи не могли менять настроенный для них интерфейс! Решение: Для отключения нужно в правах доступа у корневого элемента конфигурации убрать право » Сохранение данных пользователя «. Отключатся настройка панелей и пункт ме Посмотреть все в категории 1С Общие вопросы — Управляемые формы и Такси

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

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