для добавления команды в виде кнопки на управляемой форме можно
Как нажать кнопку в управляемой форме программно
Собственно вопрос, в теме.
Знает ли кто-нибудь способ?
Т.е. все зависит от задачи. В большей части случаев программное нажатие на кнопку по-умолчанию совершенно не нужно.
(6) Поручик, отличный вопрос! С такой позиции я почему-то не думал.
Под нажатием на кнопку я подразумеваю вызвать процедуру-обработчик, связанный с этой кнопкой. НО не внося изменения в форму через конфигуратор.
После этого вопроса мне пришла идея такого варианта: Можно создать на форме программно поле ввода, привязать к нему в качестве обработчика процедуру, связанную с нужной командой, и дальше вызвать событие ПриИзменении, как в статье, упомянутой в моем первом посте. Таким образом форму можно не дорабатывать без необходимости.
(7) yurii_host,
Интересно, как автор хочет «Программно создать на форме поле ввода» не изменяя форму в конфигураторе?
Для типовых конфигураций не изменяя конфигурацию, можно подключить внешнюю обработку заполнения, в которой уже делать с формой и объектом, её вызвавшим некие манипуляции.
Есть мнение (Макконнелл, «Совершенный Код»), что тестирование занимает слишком много времени, при этом обнаруживая всего лишь 30% ошибок (достаточно продолжительная статистика по разработкам в крупных софтверных компаниях соединенных штатов). В парном же программировании и в методологии инспекций кода выявляется порядка 70% исходных ошибок. Может стоит по лесенке CMM пройти немножко вперед, чтобы не наступать на грабли, на которые уже наступали? Или у нас это в принципе невозможно и хочется понаступать?
Для добавления команды в виде кнопки на управляемой форме можно
Войдите как ученик, чтобы получить доступ к материалам школы
Создание конфигураций 1С: добавляем команду
Автор уроков и преподаватель школы: Владимир Милькин
Продолжаем изучение азов создания конфигураций на 1С.
Где находится форма у обработки
Откроем окно настроек обработки «УдалениеУволенныхСотрудников»:
Открылось окно с закладками во многом повторяющими закладки из справочника «Сотрудники». Это совершенно нормально, ведь настройки объектов в конфигураторе во многом похожи друг на друга.
Давайте откроем его двойным щелчком:
Открылось окно со множеством панелей. И нам сейчас очень важно для будущих уроков разобраться что здесь за что отвечает.
Меняем код на встроенном языке 1С для формы
Ну прежде всего обратим внимание в самый низ открывшегося окна. Там мы найдём две закладки «Форма» и «Модуль».
Попробуем переключиться на закладку «Модуль»:
Здесь присутствует всего одна процедура с именем «УдалитьСотрудников». Очевидно именно она и вызывается при нажатии на кнопку.
Изменим этот код следующим образом:
Снова запустим режим 1С:Предприятие (меню «Отладка»->»Начать отладку»), откроем обработку и нажмём кнопку «Удалить сотрудников»:
И получим то самое сообщение, которое написали только что:
Закладка «Элементы» у формы
Вернёмся в конфигуратор в нашу форму на закладку «Форма»:
Обратите внимание на закладку «Элементы» в верхней части формы. Содержимое этой закладки дублирует визуальное представление формы. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Можно сказать ещё, что всё, что вы видите в визуальной части формы можно найти на закладке «Элементы».
Откроется окно со свойствами кнопки:
Давайте установим для кнопки заголовок «БАХ»:
Форма теперь будет выглядеть так:
Закладка «Реквизиты» у формы
Теперь перейдём к закладке «Реквизиты»:
Эта закладка содержит имена по которым мы можем «достучаться» до данных объекта, которые представляет форма. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Пока на этой закладке всего лишь один реквизит «Объект» и то пустой.
Но если бы мы перешли на аналогичную закладку в форме справочника «Сотрудники», то обнаружили бы тут реквизиты «ДатаРождения», «НомерПаспорта» и «СерияПаспорта». Это означало бы, что мы можем их использовать в коде модуля формы.
Закладка «Команды» у формы
Заключительная закладка, которую мы рассмотрим сегодня это закладка «Команды»:
Вообще все команды, которые вы видите на одной из закладок («Команды формы», «Стандартные команды» и «Глобальные команды»), можно смело перетаскивать на закладку «Элементы» и они «волшебным образом» превратятся в кнопки на форме.
Как вы понимаете, нажатие на эти кнопки, будет приводить к выполнению этих команд.
Ну, например, перейдём на закладку «Стандартные команды» и перетащим на закладку «Элементы» команду «Закрыть»:
На форме появилась кнопка закрыть. Запустим 1С:Предприятие (меню «Отладка»->»Начать отладку»), откроем обработку и убедимся, что кнопка работает:
Вернёмся в конфигуратор в форму обработки и перейдём на закладку «Команды формы»:
На этой закладке мы видим команды формы, которые мы определили сами. В том числе мы можем видеть здесь команду, которую я определил ещё в самом начале с именем «УдалитьСотрудников».
Откроем свойства этой команды (двойным щелчком).
Нас интересует прежде всего поле «Действие», нажмите на кнопку с лупой рядом с ним:
Нас перенесло в процедуру «УдалитьСотрудников» в модуле формы. Это означает, эта команда и эта процедура связаны между собой. И выполнение команды (например, при нажатии на кнопку, в которую она превратилась) приведёт к выполнению кода процедуры.
Добавляем новую команду для формы
Давайте создадим ещё одну команду формы. Для этого вернёмся на закладку «Команды формы» и нажмём зелёную кнопку с плюсом:
На закладку добавилась новая команда «Команда1»:
Откроем её свойства и установим имя «Привет», а затем нажмём на лупу рядом с полем «Действие»:
Нас спрашивают какой именно вид обработчика мы хотим создать.
Выбираем вариант «НаКлиенте» и нажимаем «ОК»:
Нас перенесло в модуль формы в автоматически созданную процедуру «Привет». Теперь эта процедура связана с командой формы «Привет»:
Давайте напишем в ней вывод строки привет пользователю:
Но как нам теперь заставить выполнять команду (а значит и процедуру) «Привет»? Для этого вернёмся на закладку «Команды формы» и перетащим наш «Привет» на форму, так как мы это сделали ранее с командой «Закрыть»:
На форме появилась ещё одна кнопка. Запустим 1С:Предприятие, откроем обработку и нажмём на кнопку «Привет». Должно получиться вот так:
Вводим от пользователя имя и говорим ему привет
А теперь давайте поставим себе такую задачу. Нужно, чтобы пользователь ввёл своё имя, мы нажали на кнопку и вывелось, например, «Привет, Алексей».
Переходим на закладку «Реквизиты» и нажимаем зелёную кнопку плюс:
Добавился реквизит с именем «Реквизит1»:
В окне свойств этого реквизита установим имя «Имя» и тип «Строка»:
После этого перетащим уже привычным образом реквизит «Имя» на закладку «Элементы»:
Запустим 1С:Предприятие, откроем обработку и попробуем туда ввести своё имя:
Всё получилось, но вот нажатие на кнопку «Привет» пока работает по-прежнему.
Сейчас всё исправим. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Для этого вернёмся в конфигуратор, перейдём в модуль формы обработки и найдём там процедуру «Привет»:
Перепишем её таким образом, чтобы к строке «Привет, » добавлялось значение реквизита «Имя», который связан с элементом ввода на форме:
Теперь снова запустим 1С:Предприятие, обработку, введём своё имя и нажмём кнопку «Привет»:
Команды, элементы, реквизиты, объект. вы ещё не запутались?
Элементы позволяют нам некоторым образом взаимодействовать с формой: читать, нажимать, проматывать и т.п.
Кнопка
Команды бывают встроенные (закладки «Стандартные команды» и «Глобальные команды») и те, что программист придумывает сам (закладка «Команды формы»).
Надпись
Это просто текст на форме. У такого элемента есть свойство «Заголовок», значение которого мы задаём в редакторе и оно отображается в виде текста.
Поле
А вот это уже интересно. Потому что это такой особый элемент, который не сам по себе (как надпись), а обязательно должен быть связан с какими-то данными или по-другому РЕКВИЗИТАМИ (закладка «Реквизиты»).
Так вот в 1С так нельзя. Тут (начиная с «управляемых» форм) представление данных отделено от самих данных.
И получается, что при написании кода на языке 1С для отображения и изменения данных мы прежде всего должны использовать реквизиты. Мы меняем из кода реквизиты, а связанные с ними поля на форме изменяются при этом автоматически.
И наоборот. Пользователь вводит на форме значения в элементы ввода (числа, текст, даты) и значения реквизитов также меняются автоматически.
Какие преимущества даёт такое отделение элементов формы от данных (реквизитов)? Большие! Программист создает нужные ему реквизиты (для хранения, отображения и ввода некоторых полей на форме) и пишет программный код работая только с этими реквизитами (данными). Он совершенно не задумывается пока как всё это будет выглядеть на форме. Оно ему и не надо! Он пока пишет только программный код.
А уже затем он перетаскивает эти реквизиты на форму, реквизиты превращаются в визуальные элементы формы, он их как-то настраивает, распихивает по закладкам и прочее. В общем на этом этапе (визуального проектирования формы) он работает уже только с элементами. При этом во много раз снижается вероятность сломать уже написанный код.
Чтобы обратиться к реквизиту «Возраст» из модуля формы достаточно сразу использовать его имя:
А чтобы обратиться к элементу формы, который связан с этим реквизитом нужно использовать префикс «Элементы.», например:
Что такое Объект?
Рядом с ним бы появился плюсик и мы могли бы его раскрывать и перетаскивать отдельные его части на форму и они бы также превращались в элементы.
Редактор формы
Редактор формы используется для создания и редактирования форм объектов прикладного решения. Формы объектов используются системой для визуального отображения данных в процессе работы пользователя.
Редактор формы содержит несколько закладок, обеспечивающих редактирование всех составляющих формы.
В отдельном окне, в нижней части редактора, отображается внешний вид формы в режиме 1С:Предприятие.
Редактирование элементов
Редактор форм позволяет разработчику использовать широкий набор возможностей для изменения внешнего вида формы — того вида, который форма будет иметь в режиме 1С:Предприятие. Перечислим основные из этих возможностей:
Страницы, закладки
Редактор форм позволяет добавлять в форму специальные элементы, которые помогают придать форме собственный узнаваемый стиль, сделать доступ к данным простым и понятным, а также разместить большой объем информации на ограниченной площади.
Редактор позволяет добавить в форму несколько элементов Группа — Страницы, каждая из которых может содержать несколько элементов Группа — Страница.
Например, форма документа может содержать один элемент Группа — Страницы, которому подчинены несколько элементов Группа — Страница с заголовками Изображение, Характеристики и Описание:
Тогда в режиме 1С:Предприятие она будет выглядеть следующим образом:
Заголовок каждой группы — страницы отображается на отдельной закладке. Разработчик имеет возможность задать режим отображения закладок: снизу или сверху:
Например, закладки можно расположить снизу:
Элементы
Редактор позволяет добавлять в форму различные элементы. Добавлять элементы можно с помощью команды добавления или путем перетаскивания реквизитов формы в дерево элементов:
Все элементы формы представляются в виде иерархической структуры, корнем которой является сама форма. Это позволяет быстро перемещаться к нужному элементу формы:
Располагая элементы выше/ниже в дереве, подчиняя их другим элементам и задавая свойства элементов-групп можно задавать порядок, в котором пользователь будет обходить элементы управления формы при вводе и редактировании данных. В режиме 1С:Предприятие элементы формы будут обходиться в порядке их иерархии и в соответствии с тем, какой тип группировки выбран для групп: вертикальная или горизонтальная.
Разделители
Разделители являются специальными элементами, с помощью которых возможно перераспределение пространства формы без изменения ее размеров. Платформа в режиме 1С:Предприятие самостоятельно добавляет эти элементы в форму. Разделитель обладает способностью «захватываться» мышью и перемещаться внутри формы в ее пределах с учетом возможности расположения других элементов и ориентации разделителя:
При перемещении разделителя, все элементы, связанные с разделителем, будут изменять свои размеры или перемещаться.
Модуль формы
Для редактирования модуля формы конфигуратор вызывает редактор текстов и модулей. Этот редактор предоставляет разработчику большое разнообразие возможностей для создания и изменения текста модуля. Подробнее…
Реквизиты формы
Редактирование реквизитов формы выполняется в списке, который позволяет создавать новые реквизиты, изменять имеющиеся и удалять ненужные реквизиты. Свойства реквизитов задаются с помощью палитры свойств.
Если у формы существует основной реквизит, определяющий поведение формы, отличное от типового, — он выделяется жирным шрифтом.
Командный интерфейс формы
Командный интерфейс формы редактируется в дереве. Основные ветви дерева содержат команды, добавленные в панель навигации окна, в котором будет показана форма, и в командную панель формы. Внутри каждой из этих ветвей команды разделены по стандартным группам.
Часть команд в командный интерфейс платформа добавляет автоматически. Наряду с этим разработчик самостоятельно может добавить в командный интерфейс команды, перетащив их из списка команд формы или из списка доступных глобальных команд. Для всех команд, добавленных в командный интерфейс, разработчик может задать их видимость для различных ролей, определенных в конфигурации.
Команды формы
Команды формы редактируются в списке. Разработчик имеет возможность добавить, удалить команды формы и задать их свойства с помощью палитры свойств. В том числе назначить для команды процедуру, которая будет выполняться при вызове этой команды пользователем.
На закладках Стандартные команды и Глобальные команды разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы. Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме.
Параметры формы
Параметры формы редактируются в списке. Разработчик имеет возможность добавить, удалить параметры формы и задать их свойства с помощью палитры свойств.
1C Управляемые формы. Размещение элементов на форме 6. Кнопка для заполнения (Команда)
Рассмотрим задачу, когда на форму нужно добавить кнопку, при нажатии на которую должно что-то произойти. Рассмотрим на примере заполнения табличной части документа.
На форму на вкладку Команды – Команды формы добавляем элемент, задаем имя Заполнить, отмечаем галочкой свойство Изменяет сохраняемые данные (для того, чтобы при нажатии на кнопку у формы появлялся значок * в пользовательском режиме – признак того, что данные формы изменились, рис. 5) и у свойства Действие нажимаем на значок лупы (рис. 1):
Рис. 1. Добавление команды
В открывшемся окне выбираем Создать на клиенте и процедуру на сервере и нажимаем ОК. В открывшемся модуле формы документы в процедуре ЗаполнитьНаСервере() пишем код (рис. 2), будем заполнять табличную часть всеми товарами, у которых в наименовании встречается строка «авто»:
Запрос = Новый Запрос;
| пр_Номенклатура.Ссылка КАК Номенклатура
| Справочник.пр_Номенклатура КАК пр_Номенклатура
| пр_Номенклатура.Наименование ПОДОБНО «»%авто%»»«;
Объект.Товары.Загрузить(Запрос.Выполнить().Выгрузить());
Рис. 2. Модуль формы документа
Далее возвращаемся к форме документа и перетаскиваем команду Заполнить в Командную панель таблицы Товары, на форме появляется элемент ТоварыЗаполнить и кнопка Заполнить (рис. 3):
Рис. 3. Добавление кнопки Заполнить
Проверяем работу формы в пользовательском режиме, можно в режиме отладки: меню Отладка – Продолжить отладку (рис. 4):
Рис. 4. Запуск отладки
Открываем форму документа Приходная, переходим на вкладку Товары, нажимаем Заполнить, в результате у формы появляется признак модифицированности (изменения данных) и табличная часть заполняется товарам, у которых в Наименовании встречается «авто» (рис. 5):
Бесплатные программы русские. Программирование 1С
Скачать программы, софт бесплатно. Программирование 1С
№1 Шпаргалка 1С. Добавление кнопок на форму.
№1 Шпаргалка 1С. Добавление кнопок на форму.
Элементы управления представляют собой отдельную группу объектов, предназначенных для ввода и представления информации в диалогах. Они могут располагаться на форме, использоваться для редактирования ячеек табличного поля, табличного документа.
1. Создание тестовой обработки
Прочтите текст, и одновременно посмотрите короткую видео-шпаргалку, в которой речь пойдет о вставке интерфейсных элементов в форму какого-либо прикладного объекта 1С, ( в том числе и обработки 1С, на примере которой мы рассмотрим этот процесс)
Видео, на котором показан весь процесс, расположено ниже.
Вы можете просматривать это видео в высоком качестве и в полноэкранном режиме, используя кнопки управления проигрыванием видеоролика
Это пригодится нам вообще, как базовый навык конструирования форм, так и для выполнения других практических упражнений.
Мы поговорим о вставке одного из видов интерфейсных элементов, использующихся в любом прикладном решении 1С:Предприятии, о вставке кнопок в форму.
Давайте с вами запустим наше учебное прикладное решение в режиме конфигурирования (разработки) Эта инструкция, об учебном прикладном решении, касается тех, кто обучается на наших курсах программирования 1С.
Те, кто не обучается на курсах, могут запустить в режиме конфигурирование любое имеющееся прикладное решений, в том числе и полностью пустое. Этого будет достаточно изучения для рассматриваемого примера.
Выбираем в выпавшем меню пункт с именем “добавить”. Откроется окно визуального конструктора обработки.
Тестовая обработка создана, мы видим ее имя в дереве конфигурации, в узле “Обработки”. Давайте, щелкнем мышью на имени нашей обработки, развернем этот пункт и увидим под-элементы, которые могут входить в состав нашей обработки: “Реквизиты”, “Формы”, “Макеты” и так далее.
2. Создание основной формы обработки
Давайте нажмем правой кнопкой мыши на узле “Формы”, далее, выбираем в появившемся контекстном меню пункт с именем “Добавить”
Перед нами появляется окно конструктора формы обработки. С его помощью, на начальном этапе, мы можем указать некоторые особенности вновь создаваемой формы (ее программное имя, тип, является ли она основной, и так далее)
Но нам сейчас никаких особых настроек делать не нужно, поэтому мы просто нажимаем кнопку “Готово”, в нижней части окна конструктора формы обработки.
После этого перед нами открывается вновь созданная форма обработки 1С.
3. Теперь рассмотрим процесс создания кнопок в форме обработки
Итак, как же происходит вставка кнопок?
Обратим внимание, что по умолчанию, во вновь созданной форме, некоторые кнопки уже вставлены во время конструирования обработки. Эти кнопки вставлены автоматически.
Это стандартные кнопки “действий” двух, так называемых, командных панелей, что имеются в верхней части окна формы, и в нижней части окна.
Нас же сейчас интересуют те кнопки, которые мы вставим сами, “вручную”.
Для того, чтобы вставить какой то интерфейсный элемент, в том числе и кнопки, в конструируемую форму, мы должны нажать специальную кнопку с “иконкой” (на иконке виден желтый значок “плюс” ), открывающую окно выбора интерфейсного элемента для вставки.
Эта специальная кнопка с “иконкой” находится, как правило, на панели инструментов, под главным меню основного окна конфигуратора.
При наведении мыши над нужной кнопкой возникает подсказка “Вставить элемент управления”.
Если кнопка на панели инструментов отсутствует (это зависит от настроек панелей инструментов), у нас имеет альтернативный путь: Когда перед нами на экране имеется окно конструктора формы, мы можем выбрать из главного меню конфигуратора пункт: “Форма”/ “Вставить элемент управления”.
В окне мы видим много различных элементов управления. (Вы можете потренироваться на досуге и попробовать вставить в форму эти элементы, посмотреть, как они выглядят).
Выбор вида элемента управления для вставки осуществляется в левой части окна, а в правой части окна дана возможность установить некоторые свойства элемента перед тем, как он будет вставлен в форму.
То есть, перед вставкой какого-то элемента управления в форму, его можно предварительно “подготовить”, установив основные его свойства: имя, заголовок, текст подсказки при наведении мыши, и некоторые другие свойства.
Например, любому элементу, в том числе и “кнопке”, мы можем присвоить какое то имя перед вставкой. Это имя будет являться именем объекта на встроенном языке 1С:Предприятие, именем программного объекта.
Аналогично, мы можем присвоить какой то заголовок кнопке, надпись на ней. В нашем примере присвоим кнопке заголовок “Наша кнопка”.
Если мы желаем, чтобы по нажатию этой кнопки выполнялось какое-то действие на встроенном языке программирования, тогда мы не должны снимать галочку-флажок “создать процедуру”. По-умолчанию этот флажок включен.
Если этот флажок будет включен, то одновременно со вставкой кнопки, в программном модуле формы будет создана пустая процедура-обработчик, в которой мы сможем написать любой нужный алгоритм, выполняемый при нажатии этой кнопки в режиме пользователя.
Все, подготовка перед вставкой завершена, теперь нажимаем кнопку “Ок”.
Выбираем место под кнопку в любой части нашей формы и нажимаем левую кнопку мыши. Наша новая кнопка вставилась в форму, и одновременно конструктор формы моментально переключает нас в окно редактора программного модуля формы.
Давайте, все-таки, вернемся на закладку “Диалог” (закладки конструктора формы находятся снизу окна) и убедимся, что кнопка в форме появилась. Да, наша кнопка здесь!
Мы можем поменять ее размер, “потянув мышью” за угол кнопки, или куда-то сдвинуть нашу кнопку в пределах окна формы.
Впишем некоторый код, пусть он, для простоты, состоит всего из одной строчки “Сообщить(“Нажата наша кнопка!”);”
Это код приведет к тому, что по нажатию кнопки, на экране пользователя, в служебном окне сообщений появится следующий текст: “Нажата наша кнопка”.
Давайте проверим, запустим наша прикладное решение в режиме пользователя.
Далее, выберем в главном меню пункт “Операции”/”Обработки”. Вспоминаем, что мы создали обработку и назвали ее “Тестовая обработка”, поэтому обработку с таким именем мы и выбираем из открывшегося списка.
Тмк, мы видим перед собой форму нашей обработки. В форме мы видим нашу кнопку с заголовком “Наша кнопка”. Обратите внимание, подсказка “Это наша кнопка” появляется при наведение курсора мыши над кнопкой.
Теперь давайте нажмем кнопку. Убеждаемся, что в окно служебных сообщений выдано сообщение, которое мы с вами запрограммировали: “Нажата наша кнопка”.
Подобным образом мы можем вставлять любые другие элементы управления, о которых мы поговорим с вами на наших курсах и видео-шпаргалках.
С вами был Дегтярев Роман.
Тренинг-центр “Старт в 1С”
Как научиться программировать в 1С с нуля?
Как работать программистом 1С и получать до 150 000 рублей в месяц?
ЗАПИШИСЬ НА БЕСПЛАТНЫЙ
«ПРОГРАММИРОВАНИЕ в 1С ДЛЯ НОВИЧКОВ»
Курс придет на электронную почту. Стань программистом, выполняя пошаговые задания.
Для участия нужен только компьютер и интернет