1с переключить закладку на форме уф

Обновлено: 05.07.2024

Режимы панели

В формах 1С:Предприятия 8 элементы управления не существуют сами по себе, а размещаются на страницах панелей или табличных документах. Самый простой случай - элемент управления размещен на первой и единственной странице главной панели формы. Дополнительные панели обычно используют для группировки или унификации форм. Элементы управления привязываются к панели или к другим элементам на этой же странице и не зависят от элементов формы, размещенных на других панелях формы.
Таким образом, панель является своего рода "изолятором" для содержащихся в ней элементов управления, ограничивая их зависимость от остальной формы в области привязок.

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

  1. Если поля не влезают в форму, то их можно распределить по закладкам панели по смысловому признаку (важные - вспомогательные, основные - дополнительные и т.д.) или принадлежности к одной информационной группе (например, одна закладка для реквизитов юридического лица, а другая - для реквизитов физического лица)
  2. Если поля четко можно разделить на основные и второстепенные так, что второстепенные будут использоваться крайне редко. В этом случае их удобно поместить на закладку с названием, например, "Дополнительно".
  3. Для создания сложных форм с программным управлением доступностью и видимостью нужных страниц.

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

Наиболее популярным и понятным для пользователя является вариант отображения закладок "Сверху".


Следом за ним идет вариант "Снизу". Далее по популярности следуют варианты "Слева (горизонтально)" и "Справа (горизонтально)". Все остальные варианты применяются значительно реже:

  • Сверху (с прокруткой)
  • Сверху (в несколько строк)
  • Сверху (в несколько строк с перестановкой)
  • Снизу (с прокруткой)
  • Снизу (в несколько строк)
  • Снизу (в несколько строк с перестановкой)
  • Слева (вертикально)
  • Справа (вертикально)

Особенности отрисовки закладок

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

Картинки в закладках

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


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

Переключение страниц

Интерактивно переключать страницы панели можно несколькими способами:

  1. Щелчок левой кнопкой мыши на соответствующей закладке.
  2. Открытие контекстного меню при помощи щелчка правой кнопкой мыши в панели или области закладок с последующим выбором команды, соответствующей названию нужной страницы (только в режиме редактирования или проверки формы).
  3. Нажатие Ctrl+PgUp (Ctrl+Alt+F) или Ctrl+PgDown (Ctrl+Alt+B) для выбора предыдущей или следующей страницы.

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

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

Одна страница - много закладок

Невидимые страницы

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

Запрещенные страницы

Если страница является недоступной, то ее нельзя сделать активной.
Элементы управления, расположенные на недоступной закладке, также являются недоступными.
Закладка и команды контекстного меню недоступных страниц отображаются притененными.

Режим прокручиваемых страниц

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


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

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

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

Реквизит формы с типом число

Перетащим этот реквизит в закладку элементы конструктора формы.

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

По умолчанию для реквизитов с типом Число создается элемент формы Поле с видом ПолеВвода. Изменим значение свойства Вид на Поле переключателя. Вид реквизита на управляемой форме сразу же поменяется.

Значение свойства вид – Поле переключателя

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

Свойство элемента Список выбора

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

Значения в свойстве Список выбора

После этого поле переключателя на нашей форме изменится.

Поле переключателя на форме

Сделаем для переключателя более красивый вид: уберем заголовок и установим в свойство Вид переключателя значение Тумблер.

Установили вид переключателя тумблер

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

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

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

На рисунке ниже результат работы этой команды.

Работа переключателя формы

Более подробно работа с элементами формы на практичных примерах дается в книге «Основы разработки в 1С:Такси. Разработка управляемого приложения за 12 шагов».


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

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!


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

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

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

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

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

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

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


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

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


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

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


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


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


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

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

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

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

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

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


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

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


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

17

Снова запустим режим 1С:Предприятие (меню "Отладка"->"Начать отладку"), откроем обработку и нажмём кнопку "Удалить сотрудников":



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

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


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

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


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


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


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


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

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


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

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

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

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


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

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

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


На форме появилась кнопка закрыть. Запустим 1С:Предприятие (меню "Отладка"->"Начать отладку"), откроем обработку и убедимся, что кнопка работает:



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


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

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

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


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

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

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


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


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


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

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

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


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


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


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


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


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

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

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

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


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


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


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


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


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


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

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


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


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


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

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

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

Итак, форма - это визуальное представление нашей программы: кнопки, надписи, рисунки, списки. да много чего! Всё это ЭЛЕМЕНТЫ формы.

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

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

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

Кнопка

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

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

Команды бывают встроенные (закладки "Стандартные команды" и "Глобальные команды") и те, что программист придумывает сам (закладка "Команды формы").

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

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

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

Надпись

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

Поле

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также: