1с 7 обработка формы при создании
Для удобства работы пользователей со справочником на этапе конфигурирования можно создать несколько видов экранных форм для показа справочника. В зависимости от контекста вызова справочника можно задать использование определенного диалога для работы с ним.
Модуль формы списка содержит процедуры и функции, которые действуют в контексте данной формы (в контексте объекта Справочник).
Предопределенные процедуры вызываются системой 1С при наступлении определенных событий, поэтому они являются обработчиками событий.
ПриОткрытии – Вызывается при открытии формы списка справочника. Можно задать начальные значения для переменных, проверить права пользователя на открытие данного справочника и т.д.
ПриЗаписи – Вызывается при записи элемента справочника, если элементы вводятся прямо в форме списка, а не в форме элемента. Это используется для справочников с простой структурой, например справочник Должности. В этой процедуре можно проверить вводимые данные на наличие ошибок.
ПриВыбореРодителя ( НовРодитель ) – Вызывается при выборе родителя (группы). В этой процедуре можно проверить права пользователя на просмотр элементов данной группы.
ПриВыбореВладельца ( НовВладелец ) – Вызывается при выборе владельца справочника-хозяина. Имеет смысл, если данный справочник подчинен другому.
ПриУстановкеОтбора ( Реквизит , Значение ) – Предопределенная процедура при интерактивной установке отбора любым способом (отбор, быстрый отбор, отбор по значению, история отбора) и при отключении отбора.
ПриВыбореСтроки () – Режим обработки выбора строки (двойной щелчок мыши или клавиша Enter) включается в форме списка справочника, журнала документов, счетов, журнала операций, журнала проводок при помощи метода Форма . ОбработкаВыбораСтроки (1). Тогда при выборе строки будет вызываться эта предопределенная процедура.
В форме списка справочника элементы могут быть отсортированы в различном порядке: по коду, по наименованию или по любому реквизиту, у которого в Конфигураторе установлен флажок Сортировка. Задать тип сортировки можно программно методом Сортировка ( Способ , ФлагРазрешенияИзменения ).
Процедура ПриОткрытии ()
. Сортировка (“Код”,0); //сортировка по коду, пользователь изменить не может
КонецПроцедуры
В форме списка справочника элементы могут быть отфильтрованы, т.е. пользователю будут показаны только нужные элементы. Программно установить отбор можно методом УстановитьОтбор ( Реквизит , Значение ). Для этого у реквизита должен быть установлен флажок “Отбор по реквизиту” в Конфигураторе.
В 1С 7.7 нельзя установить отбор по периодическому реквизиту или по нескольким реквизитам одновременно (сложный фильтр). В этом случае выходом из положения может быть метод ИспользоватьСписокЭлементов . Этому методу нужно передать список элементов, которые должны быть показаны. Предварительно этот список нужно сформировать.
Процедура ПоказатьРаботающихПлотников ()
СписокЭлементов = СоздатьОбъект (“СписокЗначений”);
СпрСотр = СоздатьОбъект (“Справочник.Сотрудники”);
СпрСотр . ИспользоватьДату ( РабочаяДата ());
СпрСотр . ВыбратьЭлементы ();
Пока СпрСотр . ПолучитьЭлемент () = 1 Цикл
. Если ( СпрСотр . Родитель = группаРаботающие ) И ( СпрСотр . Должность = длжПлотник ) Тогда
. СписокЭлементов . ДобавитьЗначение ( СпрСотр . ТекущийЭлемент ());
. КонецЕсли ;
КонецЦикла ;
ИспользоватьСписокЭлементов ( СписокЭлементов );
КонецПроцедуры
Если справочник имеет сложную структуру, тогда его элементы удобнее редактировать в отдельном окне, а не в списке. В форме элемента справочника также есть предопределенные процедуры (события):
ПриОткрытии () – Вызывается при открытии формы элемента справочника. Можно задать начальные значения для переменных, проверить права пользователя на открытие данного элемента справочника и т.д.
ПриЗаписи () – Вызывается при записи элемента справочника. В этой процедуре можно проверить вводимые данные на наличие ошибок.
Процедура ПриЗаписи ()
. Если Категория . Выбран () = 0 Тогда
. Предупреждение (“Не указана категория сотрудника!”);
. СтатусВозврата (0);
. КонецЕсли ;
КонецПроцедуры
ВводНового () – Вызывается при интерактивном вводе нового элемента справочника. В этой процедуре можно проверить права пользователя на создание новых элементов справочника, а также задать начальные значения реквизитов.
Редактор формы используется для создания и редактирования форм объектов прикладного решения. Формы объектов используются системой для визуального отображения данных в процессе работы пользователя.
- элементов — объектов, определяющих визуальное представление формы и осуществляющих взаимодействие с пользователем,
- командного интерфейса — совокупности команд, отображаемых в форме;
- реквизитов — объектов, данные которых форма использует в своей работе.
- команд — действий, которые определены в данной конкретной форме,
- параметров — объектов, значения которых характеризуют саму форму, используются при ее создании и остаются постоянными в процессе «жизни» формы,
- модуля — программы на встроенном языке, отвечающей за работу с элементами и за обработку событий;
Редактор формы содержит несколько закладок, обеспечивающих редактирование всех составляющих формы.
В отдельном окне, в нижней части редактора, отображается внешний вид формы в режиме 1С:Предприятие.
Редактирование элементов
Редактор форм позволяет разработчику использовать широкий набор возможностей для изменения внешнего вида формы — того вида, который форма будет иметь в режиме 1С:Предприятие. Перечислим основные из этих возможностей:
Редактор форм позволяет добавлять в форму специальные элементы, которые помогают придать форме собственный узнаваемый стиль, сделать доступ к данным простым и понятным, а также разместить большой объем информации на ограниченной площади.
Тогда в режиме 1С:Предприятие она будет выглядеть следующим образом:
Заголовок каждой группы — страницы отображается на отдельной закладке. Разработчик имеет возможность задать режим отображения закладок: снизу или сверху:
Например, закладки можно расположить снизу:
Элементы
Редактор позволяет добавлять в форму различные элементы. Добавлять элементы можно с помощью команды добавления или путем перетаскивания реквизитов формы в дерево элементов:
Все элементы формы представляются в виде иерархической структуры, корнем которой является сама форма. Это позволяет быстро перемещаться к нужному элементу формы:
Располагая элементы выше/ниже в дереве, подчиняя их другим элементам и задавая свойства элементов-групп можно задавать порядок, в котором пользователь будет обходить элементы управления формы при вводе и редактировании данных. В режиме 1С:Предприятие элементы формы будут обходиться в порядке их иерархии и в соответствии с тем, какой тип группировки выбран для групп: вертикальная или горизонтальная.
Разделители
Разделители являются специальными элементами, с помощью которых возможно перераспределение пространства формы без изменения ее размеров. Платформа в режиме 1С:Предприятие самостоятельно добавляет эти элементы в форму. Разделитель обладает способностью «захватываться» мышью и перемещаться внутри формы в ее пределах с учетом возможности расположения других элементов и ориентации разделителя:
При перемещении разделителя, все элементы, связанные с разделителем, будут изменять свои размеры или перемещаться.
Модуль формы
Для редактирования модуля формы конфигуратор вызывает редактор текстов и модулей. Этот редактор предоставляет разработчику большое разнообразие возможностей для создания и изменения текста модуля. Подробнее…
Реквизиты формы
Редактирование реквизитов формы выполняется в списке, который позволяет создавать новые реквизиты, изменять имеющиеся и удалять ненужные реквизиты. Свойства реквизитов задаются с помощью палитры свойств.
Если у формы существует основной реквизит, определяющий поведение формы, отличное от типового, — он выделяется жирным шрифтом.
Командный интерфейс формы
Командный интерфейс формы редактируется в дереве. Основные ветви дерева содержат команды, добавленные в панель навигации окна, в котором будет показана форма, и в командную панель формы. Внутри каждой из этих ветвей команды разделены по стандартным группам.
Часть команд в командный интерфейс платформа добавляет автоматически. Наряду с этим разработчик самостоятельно может добавить в командный интерфейс команды, перетащив их из списка команд формы или из списка доступных глобальных команд. Для всех команд, добавленных в командный интерфейс, разработчик может задать их видимость для различных ролей, определенных в конфигурации.
Команды формы
Команды формы редактируются в списке. Разработчик имеет возможность добавить, удалить команды формы и задать их свойства с помощью палитры свойств. В том числе назначить для команды процедуру, которая будет выполняться при вызове этой команды пользователем.
На закладках Стандартные команды и Глобальные команды разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы. Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме.
Параметры формы
Параметры формы редактируются в списке. Разработчик имеет возможность добавить, удалить параметры формы и задать их свойства с помощью палитры свойств.
Формы – это основной вид диалога с пользователем. Все справочники, документы, журналы, отчеты и обработки имеют экранные формы. Обычно форма открывается пользователем интерактивно (мышкой), но форму можно открыть и программно.
Конт = 0; //контекст формы (ссылка на форму)
ОткрытьФорму (“Справочник.Сотрудники.Основная”, Конт ); //открыть форму списка справочника
ОткрытьФорму ( ВыбрСотрудник ); //открыть форму элемента справочника
ОткрытьФорму (“Отчет.ГлавнаяКнига”);
ОткрытьФорму (“Документ.ПриемНаРаботу”, Конт ); //новый документ
//можно открыть форму модально и еще можно передать в форму параметр
//в модуле формы переданный параметр доступен через конструкцию Форма.Параметр
ОткрытьФормуМодально (“Обработка.УсловияПоиска”,10);
В модуле формы к элементам диалога можно обращаться по их идентификаторам через конструкцию Форма . ЭлементДиалога :
Форма . Сотрудник . Доступность (1); //сделать доступным
Форма . Сотрудник . Доступность (0); //сделать недоступным
Форма . Сотрудник . Видимость (1); //сделать видимым
Форма . Сотрудник . Видимость (0); //сделать невидимым
//можно менять заголовки на кнопке и на других элементах диалога
Форма . Кнопка . Заголовок (“Далее >>”);
Форма . Кнопка . Заголовок (“Готово!”);
//можно менять цвет элементов диалога
Если ВыбрСотрудник . Выбран () = 0 Тогда
Форма . Надпись_Сотрудник . Цвет (200,50,50); //красный, зеленый, синий (RGB)
Активизировать (“ВыбрСотрудник”);
Иначе
Форма . Надпись_Сотрудник . Цвет (0,0,0);
КонецЕсли ;
Форма может состоять из нескольких слоев. Каждый слой может быть показан или скрыт в любой комбинации с другими слоями.
Синтаксис: Форма . ИспользоватьСлой (< ИмяСлоя >,[< Режим >])
//показать слой Основной
Форма . ИспользоватьСлой (“Основной”,1);
//скрыть слой Основной
Форма . ИспользоватьСлой (“Основной”,0);
//показать слой Основной и скрыть все остальные
Форма . ИспользоватьСлой (“Основной”,2);
//показать слой Основной и Фон и скрыть все остальные
Форма . ИспользоватьСлой (“Основной,Фон”,2);
//закладки на форме реализуются с помощью слоев
Форма . ИспользоватьЗакладки (1);
Форма . Закладки.ДобавитьЗначение (1, “Закладка 1”);
Форма . Закладки.ДобавитьЗначение (2, “Закладка 2”);
Процедура ПриВыбореЗакладки ( НомерЗакладки , ЗначениеЗакладки )
Если НомерЗакладки = 1 Тогда
Форма . ИспользоватьСлой (“Фон,Шаг1”);
Иначе
Форма . ИспользоватьСлой (“Фон,Шаг2”);
КонецЕсли ;
КонецПроцедуры
Внешние отчёты и обработки системы «1С:Предприятие» — это отчёты и обработки, которые не входят в состав прикладного решения, а хранятся в отдельных файлах. Такие файлы имеют расширение .ert и находятся, как правило, в папке \ExtForms каталога информационной базы.
Главное преимущество внешних отчётов и обработок заключается в том, что применять их можно в различных прикладных решениях без изменения структуры самих решений. Важным преимуществом является и то, что создавать и отлаживать такие отчёты и обработки можно, не прерывая работы пользователей системы «1С:Предприятие».
Создание нового внешнего отчёта или обработки
Для создания нового отчёта (обработки) открываем программу в режиме конфигуратора и щёлкаем мышкой по кнопке «Новый документ» на панели инструментов, либо в меню « Файл » выбираем пункт « Новый ».
При этом на экран будет выведено диалоговое окно для выбора типа создаваемого файла.
В этом диалоговом окне выбираем пункт «Внешний отчет (обработка)» и щёлкаем по кнопке «ОК», после чего на экране появится окно редактора форм.
Процесс редактирования формы внешней обработки мало чем отличается от редактирования формы любого другого объекта метаданных. Для добавления или изменения элементов формы используются стандартные средства редактора форм, обратиться к которым можно через меню « Действие », « Диалог » или « Вставить ». Основные команды этих меню вынесены на панели инструментов «Редактор диалогов» и «Элементы диалогов».
Примечание: При создании некоторых внешних отчётов и обработок в качестве шаблона можно использовать уже имеющиеся в системе отчёты и обработки. Для сохранения имеющейся в системе обработки во внешний файл необходимо щёлкнуть правой кнопкой мыши по выбранной обработке и в контекстном меню выбрать пункт « Сохранить как внешний отчет (обработку) ».
При написании программных модулей внешних отчётов и обработок необходимо учитывать некоторые особенности функционирования последних. Например, если обработка создаётся для выполнения каких-либо операций с файлами и в ней используется функция ТекКаталог(), следует помнить следующее. Когда обработка открыта пользователем через меню « Сервис −> Дополнительные возможности », текущим каталогом для обработки является рабочий каталог пользователя. Если же пользователь почему-либо открыл обработку через меню « Файл −> Открыть », то текущим каталогом для неё становится тот каталог, в котором находится файл обработки (обычно это папка \ExtForms ). Поэтому в программном коде (на всякий случай!) необходимо предусмотреть оба варианта открытия.
Для сохранения созданной внешней обработки на диске щёлкаем мышкой по кнопке «Сохранить» на панели инструментов «Стандартная» или выбираем в меню « Файл » соответствующую команду. При этом на экран будет выведено стандартное окно «Сохранить как…», в котором необходимо указать имя файла и выбрать директорию для сохранения (по умолчанию внешние обработки сохраняются в папку \ExtForms каталога информационной базы).
Примечание: Любой существующий в конфигурации отчёт или обработка могут быть преобразованы во внешние, и наоборот. Кроме того, внешние отчеты и обработки могут быть добавлены в структуру прикладного решения как новые объекты.
Открытие внешнего отчёта (обработки) в режиме «1С:Предприятие»
Для открытия файла внешнего отчёта (обработки) щёлкаем мышкой по кнопке «Открыть документ» на панели инструментов «Стандартная» или выбираем в меню « Файл » команду « Открыть ».
При этом на экран будет выведено стандартное окно открытия файла.
С помощью данного окна находим файл нужного отчёта и открываем его. Работать такой отчёт будет точно так же, как если бы он входил в состав прикладного решения.
В том случае, если файл внешнего отчёта (обработки) предполагается использовать постоянно, для открытия этого файла лучше всего воспользоваться окном «Дополнительные возможности», которое вызывается через меню « Сервис −> Дополнительные возможности ». Для внесения отчёта (обработки) в имеющийся список отчётов щёлкнем мышью по кнопке «Изменить» (см. рис. ниже) и в появившемся меню выберем пункт « Внести в список «. После этого нам необходимо будет выбрать из предложенного списка имя файла добавляемого отчёта (обработки) и указать его название.
В заключение замечу, что отчёты и обработки в списке отсортированы по их названиям, а внести в данный список можно только файлы, находящиеся в папке \ExtForms .
Открытие внешнего отчёта (обработки) из программного кода
Для открытия формы внешнего отчёта (обработки) из программного кода используется встроенная системная функция ОткрытьФорму() . В качестве первого параметра в функцию передаётся строка "Отчет" , в качестве третьего параметра — строка, содержащая полное имя файла внешнего отчёта или обработки. Например:
Для открытия формы в модальном режиме используется функция ОткрытьФормуМодально() , имеющая аналогичный синтаксис:
В качестве второго (необязательного) параметра функции может использоваться имя переменной, которой можно присвоить значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр .
Возвращаемым значением обеих функций будет число 1, если действие выполнено (форма открыта), или 0, если действие не выполнено.
Очень часто у многих начинающих программистов возникает вопрос: почему при открытии формы какого-либо объекта (справочника, документа и т.д) в командном интерфейсе 1С: Предприятия, открывается именно определенная форма. В этой статье мы разберем почему так происходит.
За открытие управляемой формы 1С в командном интерфейсе отвечают свойства объектов «Основные формы…». Посмотреть их можно двумя способами. Первый, в конструкторе объекта на закладке «Формы».
Второй, в палитре свойств объекта. В категории представление
Здесь и далее приведены примеры из конфигурации, разработанной в книге «Программировать в 1С за 11 шагов».
У всех объектов есть определенный перечень основных форм. Причем количество и состав основных форм может отличаться в зависимости от прототипа объекта (что это: справочник, документ, обработка и т.д.).
Например, у справочников это – форма элемента, форма списка, форма группы, форма выбора и форма выбора группы. А у документов – форма документа, форма списка и форма выбора.
Вид основных форм и их доступность определяются не только прототипом объекта, но и функциональностью объекта. Например, на рисунке ниже, у справочника Автомобили отключена иерархия, поэтому форма группы и форма выбора группы не доступна.
А на этом скрине, приведена основные формы справочника с включенной иерархией.
При создании новой формы разработчику предлагается выбрать тип формы.
По сути, для каждого типа формы должна быть одна основная форма. Но в то же время форм одного типа может быть несколько. Например, можно создать несколько форм списков справочника Гаражи и выбрать одну из этих форм основной.
Если мы сделаем так, как показано на рисунке выше, то по умолчанию, в командном интерфейсе будет всегда открываться форма списка – ФормаСписка1. Но форма ФормаСписка, ни куда не денется, разработчик сможет её использовать в собственных алгоритмах. Например, при программном открытии управляемой формы.
Статьи о программном открытии управляемых форм:
Программное открытие управляемой формы 1С
Открытие управляемой формы существующего объекта
Открытие управляемой формы на основании другого объекта
Открытие управляемой формы выбора объекта
Если же основная форма объекта не задана, то при выполнении стандартных команд будет открываться автоматически сгенерированная форма. Такое действие платформы в некоторых случаях разработчика может устроить (например, если мы создали простой справочник). Но большинстве случаев, программист конструирует форму самостоятельно, и тогда её необходимо указать в нужном свойстве.
Иногда кажется, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 11 шагов»
- Без сложных технических терминов.
- Более 700 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Читайте также: