Как повесить событие на кнопку 1с

Обновлено: 07.07.2024

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

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

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

В элементах управления данные не хранятся!

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

Платформа в режиме 1С:Предприятие для управляемых форм самостоятельно добавляет эти элементы в форму.

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

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

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

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

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

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

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

Команды формы редактируются в списке. Разработчик имеет возможность:

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

Для добавления команды в виде кнопки:

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

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

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

Для кнопки можно определить процедуру-обработчик для события "Нажатие"; тем самым кнопка программируется для выполнения некого стандартного действия:

В качестве обработчика события "Нажатие" элемента управления "Кнопка" может быть выбрано:

  1. стандартное действие;
  2. процедура модуля формы, в которой расположена кнопка.

Глобальную процедуру инициировать напрямую по кнопке нельзя.

Поясняющая информация на элементе управления "Кнопка" может быть представлена в виде:

Вопрос про кнопку!
Ребят как сделать так что бы вместо серой кнопки, я мог поставить какую-нибудь картинку?(и еслиь.

интересный вопрос про кнопку submit
добрый день. Возник такой вопрос. предположим у нас есть форма <form> <input type="submit".

Вопрос про транзакции и хранимые процедуры
Здравствуйте! У меня вот такой вопрос. Есть в SQL Server 2000 две таблицы. В №1 содержатся.

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

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

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

На такой вопрос ответить трудно. Приведите текст ошибки (а лучше скриншот) и опишите ситуацию, в которой она возникает.

Если-бы сразу указали платформу (8.2) и режим разработки конфигурации (управляемое приложение) было-бы легче ответить

В правой верхней части окна ФормаЭлемента перейдите на закладку "Команды". Добавьте новую команду, зайдите в ее свойства и добавьте обработчик в поле "Действие". Затем назначьте эту команду кнопке (в свойствах кнопки поле "ИмяКоманды").

Karaton, не вижу такую закладку . =(

Добавлено через 3 минуты
А если слева в разделе конфигурация щелкнуть по добавить команду не одно и то же будет?
А как эту кнопку переместить на форму? А то я ее создал,а на форме она не отображается.

Добавлено через 3 минуты
Еще я когда делал форму и один реквизит у меня был с типа ХранениеЗначения,то при создании формы он не был в списке выбора граф для формы => не отображается на форме.Так и должно быть?

Karaton, не вижу такую закладку . =(

Добавлено через 3 минуты
А если слева в разделе конфигурация щелкнуть по добавить команду не одно и то же будет?
А как эту кнопку переместить на форму? А то я ее создал,а на форме она не отображается.

Добавлено через 3 минуты
Еще я когда делал форму и один реквизит у меня был с типа ХранениеЗначения,то при создании формы он не был в списке выбора граф для формы => не отображается на форме.Так и должно быть?

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

Karaton,
Я перебил код,теперь как сохранить и назначить на кнопку?

Добавлено через 3 минуты
Все разобрался.Теперь надо пофиксить ошибки.

Добавлено через 1 минуту

Выдает такие ошибки:

: Тип не определен (ДиалогВвыбораФайла)
ДиалогОткрытияФала=Новый <<?>>ДиалогВвыбораФайла(Режим); (Проверка: Тонкий клиент)
: Тип не определен (ХранилищеЗначения)
ЭлементХранилища=Новый <<?>>ХранилищеЗначения(ВыбраннаяКартинка); (Проверка: Тонкий клиент)

Karaton,
Я перебил код,теперь как сохранить и назначить на кнопку? Karaton,
А как можно вам перекинуть конфигурацию,что бы вы посмотрели ,где я допустил ошибки? Karaton,
А как можно вам перекинуть конфигурацию,что бы вы посмотрели ,где я допустил ошибки?

Этого делать не нужно.

: Тип не определен (ДиалогВвыбораФайла)
ДиалогОткрытияФала=Новый <<?>>ДиалогВвыбораФайла(Режим); (Проверка: Тонкий клиент)

Здесь у вас опечатка в название типа - ДиалогВвыбораФайла - лишняя буква "в".

: Тип не определен (ХранилищеЗначения)
ЭлементХранилища=Новый <<?>>ХранилищеЗначения(ВыбраннаяКартинка); (Проверка: Тонкий клиент) А здесь предупреждение о том, что данная конструкция не будет работать в режиме тонкого клиента, т.к. конструктор ХранилищеЗначения доступен только в режиме запуска "Толстый клиент", на сервере и внешнем соединении.
Разбейте ваш код на две части, вынеся работу по созданию хранилища в отдельную функцию, которая будет исполняться на сервере. Например, так:
У меня данный набор кода, написанный в модуле формы тестовой конфигурации нормально отработал.
Значит, что-то еще не так. Какие ошибки?

А все разобрался.Все норм

Добавлено через 3 минуты
Код работает нормально .
Теперь появилась другая ошибка:Поле Наименование не опознано .
Его нет на форме и в реквизитах я его не объявлял .

Код работает нормально .
Теперь появилась другая ошибка:Поле Наименование не опознано .
Его нет на форме и в реквизитах я его не объявлял . Текст ошибки лучше полностью копировать сюда из окна, где она выдается в 1С. Ибо, так - непонятно.
И ситуацию, в результате которой она появилась, тоже лучше описать. Karaton,
Я случайно при создании формы указал,что бы было добавлено Наименование,но мне оно не нужно.
Я удалил его с формы,но при пробном запуске,меня просят его ввести .Как избавиться от наименование?
Хотел удалить и по новой создать форму,но пишут ,что удаление формы не возможно т.к имеются ссылки в других объектах . Karaton,
Я случайно при создании формы указал,что бы было добавлено Наименование,но мне оно не нужно.
Я удалил его с формы,но при пробном запуске,меня просят его ввести .Как избавиться от наименование?
Хотел удалить и по новой создать форму,но пишут ,что удаление формы не возможно т.к имеются ссылки в других объектах .

Про Наименование все-равно непонятно. У справочника есть реквизит Наименование, который создается по-умолчанию. При создании формы, вы вынесли его на форму. А затем удалили с формы. Ничего криминального в этом нет. Поэтому непонятно, на что оно у вас там ругается. Может скриншот сделаете, ругани этой?

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

Давайте приступим к созданию данного функционала.

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

Перейдем на вкладку подсистем и добавим его в подсистему "Управление". Перейдем на вкладку "Формы" и создадим форму элемента для этого справочника (Рисунок 2).

Откроем форму и начнем создавать функционал. На этот раз мы создадим процедуру для формы, а у каждой формы есть свой модуль, который называется "Модуль формы". Находится он на второй вкладке снизу (Рисунок 3).

В этот модуль можно перейти двумя способами:

1. Просто нажать на вкладку и вы окажитесь в модуле (Рисунок 3).

2. Выбрать специальное событие и оно переведет вас в этот модуль.

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

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

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

После этого перетащим команду на форму. Посмотрите на рисунок 4, в левой колонке нет нашей команды (кнопки), ее нужно туда перетащить.

Левая колонка - это отображение формы в виде списка.
Команда становится кнопкой при перетаскивании на форму.

Перетаскиваем команду на форму (Рисунок 5).

Запустите пользовательский режим и откроем форму элемента данного справочника (Рисунок 6).

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

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

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

Запустим и проверим кнопку в пользовательском режиме (Рисунок 9).

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

Ссылка для вступления телеграм-канал - t.me.Apiscourses

Подписаться в группу ВКонтакте

Прошлые уроки:

На этом все. Жду Вас на следующем занятии.

P.S. Подписывайтесь на мой канал :-)

программирование программирование 1с 1с предприятие обучение онлайн обучение 1с

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