Как сделать кнопку в 1с в форме

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. только надписи;
  2. только картинки;
  3. одновременно, картинки и надписи.

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

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

Программное добавление команд

1C добавление команды

1С 8.3 Как добавить команду на форму программно

Далее пишем следующий код.

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

Как добавить команду на форму программно

1С Как добавить команду программно

Как создать команду программно

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

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

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

Данный лайфхак поможет быстро настроить 1С для вашего удобства.

Как добавить кнопки на рабочую панель в 1С





Шаг 4. Выделяем кнопку, необходимую для расположения на рабочей панели.

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

  • текст;
  • картинка;
  • авто;
  • текст и картинка.

Как добавить кнопки на рабочую панель в 1С

  • в командной строке;
  • в дополнительном подменю;
  • авто;
  • в командной панели и дополнительном подменю.





Как добавить кнопки на рабочую панель в 1С

Аналогичные действия выполняем с другими кнопками.



Есть документ ЗаданиеВодителя. У этого документа есть табличная часть в которой хранятся ссылки на документ ЗаказКлиента. Мне надо в другой форме (ФормаВыборДокумента) сделать программное создание кнопок того же количества, что и строк в табличной части.

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

На данный момент. Я сделал следующее:
1. Создал на форме вертикальную группу (ГруппаДокументов), в ней и будут храниться кнопки.
2. Создал на форме реквизит ТаблицаЗначений. С колонками, как в запросе. И типы им задал как в самом документе ЗаданиеВодителя.
3. Прописал запрос к табличной части ЗаданиеВодителя. Полученные данные загрузил в ТЗ. И через процедуру Для каждого решил перебрать данные и для каждой строки создать кнопку, но это все почему-то не работает. И отладчик не дает никакой инфы. Код :

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТипЗнч(Параметры) = Тип("Структура") Тогда
Если Параметры.Свойство("СсылкаНаДокумент") Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаданиеВодителяДокументы.Документ КАК Документ,
| ЗаданиеВодителяДокументы.Документ.Номер КАК Номер,
| ЗаданиеВодителяДокументы.Документ.Контрагент КАК Контрагент
|ИЗ
| Документ.ЗаданиеВодителя.Документы КАК ЗаданиеВодителяДокументы
|ГДЕ
| ЗаданиеВодителяДокументы.Ссылка = &ЗаданиеВодителя";
Запрос.УстановитьПараметр("ЗаданиеВодителя", Параметры.СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаЗначений = РезультатЗапроса.Выгрузить();

Для каждого Строка Из ТаблицаЗначений Цикл
ЭлементГруппы = Элементы.ГруппаДокументов;
НоваяКнопка = Элементы.Добавить("Кн", Тип("КнопкаФормы"),ЭлементГруппы);
НоваяКнопка.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
НоваяКнопка.Высота = 3;
НоваяКнопка.РастягиватьПоГоризонтали = Истина;
НоваяКнопка.ИмяКоманды = "НажатиеКнопки";
//НоваяКнопка.Заголовок = Строка(Номер);
НоваяКнопка.Шрифт = ШрифтыСтиля.ОченьКрупныйШрифтТекста;
НоваяКнопка.Доступность = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

(1) Не понял( Можете, пожалуйста написать подробнее? Я буду Вам очень благодарен. И еще правильно ли я написал остальное? Запрос уверен, что правильно, а вот сама эта часть:

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