1с форма выбора кнопка создать

Обновлено: 07.07.2024

№1 Шпаргалка 1С. Добавление кнопок на форму.

№1 Шпаргалка 1С. Добавление кнопок на форму.

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


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

1. Создание тестовой обработки

Здравствуйте дорогие друзья! С вами Дегтярев Роман. Тренинг - Центр “Старт в 1С”.

Прочтите текст, и одновременно посмотрите короткую видео-шпаргалку, в которой речь пойдет о вставке интерфейсных элементов в форму какого-либо прикладного объекта 1С, ( в том числе и обработки 1С, на примере которой мы рассмотрим этот процесс)

Видео, на котором показан весь процесс, расположено ниже.

Вы можете просматривать это видео в высоком качестве и в полноэкранном режиме, используя кнопки управления проигрыванием видеоролика

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

Мы поговорим о вставке одного из видов интерфейсных элементов, использующихся в любом прикладном решении 1С:Предприятии, о вставке кнопок в форму.

Давайте с вами запустим наше учебное прикладное решение в режиме конфигурирования (разработки) Эта инструкция, об учебном прикладном решении, касается тех, кто обучается на наших курсах программирования 1С.

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

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

Итак , мы вошли в режим конфигурирования прикладного решения. Давайте с вами создадим обработку. Правдой кнопкой мыши нажимаем на узле “Обработки” и выпадает меню.

Выбираем в выпавшем меню пункт с именем “добавить”. Откроется окно визуального конструктора обработки.

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

Например, давайте дадим нашей обработке имя “Тестовая обработка”. Вы сами называйте так как вам требуется , если вы создаете обработку.

После присвоения имени нашей обработке можем внизу окна конструктора сразу же нажать кнопку “Закрыть” - поскольку иных действий выполнять не требуется.

Тестовая обработка создана, мы видим ее имя в дереве конфигурации, в узле “Обработки”. Давайте, щелкнем мышью на имени нашей обработки, развернем этот пункт и увидим под-элементы, которые могут входить в состав нашей обработки: “Реквизиты”, “Формы”, “Макеты” и так далее.

2. Создание основной формы обработки

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

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

Давайте нажмем правой кнопкой мыши на узле “Формы”, далее, выбираем в появившемся контекстном меню пункт с именем “Добавить”

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

Но нам сейчас никаких особых настроек делать не нужно, поэтому мы просто нажимаем кнопку “Готово”, в нижней части окна конструктора формы обработки.

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

3. Теперь рассмотрим процесс создания кнопок в форме обработки

Итак, как же происходит вставка кнопок?

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

Нас же сейчас интересуют те кнопки, которые мы вставим сами, “вручную”.

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

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

Если кнопка на панели инструментов отсутствует (это зависит от настроек панелей инструментов), у нас имеет альтернативный путь: Когда перед нами на экране имеется окно конструктора формы, мы можем выбрать из главного меню конфигуратора пункт: “Форма”/ “Вставить элемент управления”.

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

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

Сейчас же нас интересует элемент “Кнопка”. По умолчанию, после открытия окна “Вставка элемента управления”, для вставки как раз выбран именно первый элемент из списка возможных и этот элемент управления - “Кнопка”.

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

То есть, перед вставкой какого-то элемента управления в форму, его можно предварительно “подготовить”, установив основные его свойства: имя, заголовок, текст подсказки при наведении мыши, и некоторые другие свойства.

Например, любому элементу, в том числе и “кнопке”, мы можем присвоить какое то имя перед вставкой. Это имя будет являться именем объекта на встроенном языке 1С:Предприятие, именем программного объекта.

Это то имя, к которому потом можно будет обращаться из встроенного языка программирования .

Аналогично, мы можем присвоить какой то заголовок кнопке, надпись на ней. В нашем примере присвоим кнопке заголовок “Наша кнопка”.

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

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

Там же, в окне “Вставка элемента управления” мы можем вести текст подсказки, если желаем. Давайте в поле ввода “Подсказка” напишем - ”Это наша кнопка”. Эта подсказка будет появляться при наведение курсора мыши на вставленную кнопку.

Все, подготовка перед вставкой завершена, теперь нажимаем кнопку “Ок”.

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

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

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

Давайте, все-таки, вернемся на закладку “Диалог” (закладки конструктора формы находятся снизу окна) и убедимся, что кнопка в форме появилась. Да, наша кнопка здесь!

Мы можем поменять ее размер, “потянув мышью” за угол кнопки, или куда-то сдвинуть нашу кнопку в пределах окна формы.

А перейдя снова в программный модуль (закладка “Модуль”) -мы можем писать код на языке программирования, для выполнения действий по нажатию нашей кнопки.

Впишем некоторый код, пусть он, для простоты, состоит всего из одной строчки “Сообщить(“Нажата наша кнопка!”);

Давайте проверим, запустим наша прикладное решение в режиме пользователя.

Далее, выберем в главном меню пункт “Операции”/”Обработки”. Вспоминаем, что мы создали обработку и назвали ее “Тестовая обработка”, поэтому обработку с таким именем мы и выбираем из открывшегося списка.

Тмк, мы видим перед собой форму нашей обработки. В форме мы видим нашу кнопку с заголовком “Наша кнопка”. Обратите внимание, подсказка “Это наша кнопка” появляется при наведение курсора мыши над кнопкой.

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

Резюме: Мы успешно вставили кнопку на форму обработки, и теперь вы должны уметь это делать. До встречи в видеоуроках .

С вами был Дегтярев Роман.

Тренинг-центр “Старт в 1С”

Как научиться программировать в 1С с нуля?

Как работать программистом 1С и получать до 150 000 рублей в месяц?


ЗАПИШИСЬ НА БЕСПЛАТНЫЙ

"ПРОГРАММИРОВАНИЕ в 1С ДЛЯ НОВИЧКОВ"

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

Организация выбора из произвольной формы (на примере выбора из списка регистра сведений)

1С:Предприятие 8 поддерживает готовую функциональность для организации выбора из форм списков объектных данных (справочников, документов и т.д.). В большинстве случаев выбираются именно такие значения. Однако, в некоторых случаях, необходимо организовать выбор и других значений. Механизм форм 1С:Предприятия 8 включает универсальный механизм выбора, позволяющий организовать выбор практически любых значений.

Для этого используется возможность открытия формы в режиме выбора и возможность обработки события выбора.

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

Вначале создадим новую форму списка регистра сведений и назовем ее "ФормаВыбора". В форме реализуем событие Выбор табличного поля отображающего список.

В этом событии мы отменяем стандартное действие, предусмотренное расширением табличного поля, и вместо него вызываем метод ОповеститьОВыборе() , передавая ему в качестве параметра текущую строку. Значением текущей строки будет являться значение типа РегистрСведенийКлючЗаписи.<имя> .

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

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

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

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

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

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

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

Что еще глянуть?

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

можно было сделать

Событие: ПриНачалеВыбора
СтандартнаяОбработка = Ложь;
Форма = ..ПолучитьФорму или ..ПолучитьФормуСписка
Форма.РежимВыбора = Истина
Форма.Открыть()

(8) Sergey_SP,
Можно, но какой смысл, если это стандартный механизм выбора, максимум в свойствах элемента указать форму выбора, если она отличается от предопределенной формы выбора.

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

Так и не понял, в чем проблема.

Сделал тестовую конфигурацию, все работает, как надо.

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

(15) Открывалось всё стандартно, т.е. никаких процедур на контрол повешено не было.

(15) SPID, а у меня кнопка Выбрать после добавления этого кода не появилась почему-то, хотя всё вроде правильно есть такой параметр у Форм.
Пытаюсь открыть список Задач. Нужна возможность или создавать в форме выбора или выбирать в форме списка. Как лучше реализовать, кто подскажет? Как можно программно настроить список команд элемента открываемой формы выбора для добавления кнопки Создать?
Добавление и использование кнопки Создать при редактировании текста поля у меня приводит к ошибке:
Ошибка при выполнении обработчика - 'ОбработкаПолученияФормы'
по причине:
: Поле объекта не обнаружено (Ключ)
КодВозврата = БизнесПроцессыИЗадачиВызовСервера.ПолучитьФормуВыполненияЗадачи(Параметры.Ключ);

При просмотре отладчиком вижу что структура Параметры имеет четыре поля: ЗначениеЗаполнения, РежимВыбора, ТекстЗаполнения, ЭтоГруппа. Поля Ключ нет в помине.

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

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

А делается это при помощи уже знакомого нам метода ОткрытьФорму.

Для тех, кто не знаком с вышеприведенным методом, рекомендую первым делом ознакомиться с моими статьями, где я подробно о нем рассказываю:

Открытие управляемой формы 1С с передачей параметров

Открытие управляемой формы 1С в отдельном окне

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

Управляемая форма обработки

Здесь и далее приведена конфигурация из книги «Основы разработки в 1С: Такси».

Замечу, что в моей конфигурации нет формы выбора

Отсутствие формы выбора справочника


т.е. мы будем открывать автоматически сгенерированную форму выбора.
Поэтому в методе ОткрытьФорму, когда мы будем выбирать нужную управляемую форму 1С, то просто выбираем ФормаВыбора.

 Выбор формы выбора

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

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

&НаКлиенте
Процедура ВыбратьНоменклатуру ( Команда )

Процедура ОбработатьВыборНоменклатуры ( РезультатЗакрытия , ДопПараметры ) Экспорт

Если Не ЗначениеЗаполнено ( РезультатЗакрытия ) Тогда
Возврат;
КонецЕсли;

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

&НаКлиенте
Процедура ВыбратьНоменклатуру ( Команда )

И всё! Сейчас при выполнении команды, откроется форма выбора, и если какая-то номенклатура будет выбрана, то она запишется в реквизит формы в процедуре ОбработатьВыборНоменклатуры.

Открытие формы выбора

Изучайте управляемые формы 1С с моими статьями:

Открытие управляемой формы существующего объекта

Открытие управляемой формы 1С на основании другого объекта

Открытие обычной формы в управляемом приложении 1С

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


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


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

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

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