1С. Программное добавление кнопки с обработчиком
При доработке типовых решений для облегчения дальнейших обновлений использую программное добавление кнопки с обработчиком
Задача
Программно добавить на командную панель кнопку с выполнением произвольного кода по ее нажатию.
Реализация
Для наглядности создадим новую обработку с «Пустой» формой. Её внешний вид будет следующим
В обработчике события формы ПриСозданииНаСервере() добавим код генерации команды и кнопки
И создадим обработчик нашей команды
В итоге на форме появится кнопка выполняющая наш обработчик. Выглядеть все это будет как добавленная кнопка в конфигураторе
Так же кнопки формы имеют свойство КнопкаПоУмолчанию, если присвоить значение Истина
тогда кнопка будет выделена цветом и шрифтом
а как код то добавить чтобы выполнялся?
или код нужно заранее на форму поместить, тогда нет смысла добавлять программно команду, если код всеравно нужно помещать заранее на конкретную форму.
Алексей, доброго времени суток! Хороший вопрос!
Все верно, код обработчика придется добавить в модуль формы.
А теперь давайте посмотрим не только на разработку, но и на сопровождение и дальнейшее обновление доработанной конфигурации.
Если добавить команду «руками», то при обновлении дважды измененной формы команда будет потеряна. Ведь, модули формы мы можем сравнить, а формы нет.
Если команду добавить программно в модуле формы или соответствующем модуле БСП, а обработчик в модуле формы. При этом выделив все свои процедуры префиксом и поместив их в отдельную область, то мы получим ситуацию, когда все наши изменения можно легко увидеть в сравнении модулей. Не придется держать чек-лист со списком команд/реквизитов/элементов для ручного добавления и перепроверки после обновления.
И тут мы приходим к правилу — формы «руками» не правятся вообще. Все «ручные» изменения выявляются на этапе ревью, вносивший такие изменения бурно порицается.
Обдумав данный механизм, просится к добавлению:
1. Автотест с открытием форм и исполнением программного изменения;
2. Корректная обработка ситуаций, когда программное изменение не получилось. С соответствующим выводом на этапе тестирования.
Не долго думая пишем придуманное выше и наслаждаемся результатом.
Программное добавление кнопки, открывающая форму внешней обработки
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Предприятие 8.2: Как открыть форму внешней обработки?
пожалуста подскажите Как открыть форму внешней обработки? Как выгрузить данные из справочника.
Открыть и заполнить форму документа из внешней обработки
Доброго времени суток. Имеется: 1с 8.2 (8.2.19.90), БП Базовая 2.0 (2.0.63.5), Режим файловый.
Добавление строк в табличное поле внешней обработки.
Добрый день, возникла необходимость написать внешнюю обработку, для удобства использую элемент.
Добавление данных в регистр сведений из внешней обработки
Добрый день! Как в непериодический регистр сведений добавить данные по определенному сотруднику с.
Программа обработки события нажатия внешней кнопки
Всем привет! Мне понадобилась приставка к ПК в виде кнопки. Подключается по USB и при нажатии на.
Как из внешней обработки открыть печатную форму документа
Добрый день! Работаю в бухгалтерии предприятия 3.0. Во внешней обработке программно создаю и.
Не могу открыть управляемую форму внешней обработки в толстом клиенте
Не могу открыть управляемую форму внешней обработки в толстом клиенте, основной режим запуска.
1с 7.7 Вызов процедуры внешней обработки из другой внешней обработки
Здравствуйте всем! Вопрос такой: Есть внешняя обработка Обработка1. Обработка1 запускается через.
Произвольное размещение и добавление кнопок на управляемых формах пользователем
Иногда нам нужно чтобы пользователи могли сами рисовать себе формы в режиме 1С Предприятия, добавлять на них необходимые кнопки, назначать на эти кнопки объекты, размещать эти кнопки на форме произвольно. На управляемых формах даже в конфигураторе нет возможности произвольно размещать кнопки на форме. Чтобы исправить эту оплошность предлагаю вам свое решение данной проблемы.
Нам нужно занести хотя бы один склад и в справочник столов добавить несколько столов для этого склада. Эти столы пользователь сможет назначать на кнопки. Координаты и привязки каждой кнопки будут храниться в регистре сведений и считываться оттуда при отображении.
Несколько процедур из формы для примера:
Скачать файлы
Специальные предложения
Обновление 07.11.14 14:45
Код открыт Не указано
См. также
Универсальный редактор данных (УРД) Промо
27.08.2021 5477 118 Adeptus 51
Интерактивная справка по объектам 1С (подключаемое расширение)
База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.
29.09.2020 15553 82 sapervodichka 45
Предлагаю широкой общественности расширение А1Э, используемое в нескольких продуктивных базах для выполнения широкого круга задач.
14.08.2020 13656 0 Enigma 47
CF & SQL : конструктор прямых запросов к БД 1С
Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.
02.10.2019 30334 296 dmitrydemenew 63
Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.
24.05.2012 84626 965 moolex 157
Альтернативный способ добавления элементов и реквизитов на формы
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
09.09.2019 17666 34 bmk74 7
Конвейер проверки качества кода
Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.
04.09.2019 37613 27 Stepa86 46
[Механизм интерфейса] Свой флажок (чекбокс)
Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.
09.08.2019 22147 21 rpgshnik 43
Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо
Простая обработка для просмотра и установки значений предопределенных элементов. Позволяет заменить значение предопределенного элемента с одного элемента справочника на другой, удалить предопределенный элемент (снять пометку предопределенности), установить пометку переопределенного элемента. Проверяет предопределенные данные на наличие задвоений и отсутствующих. Работает со справочниками, планами счетов, планами видов характеристик, планами видов расчетов.
06.10.2014 169446 2757 ekaruk 170
Модель объекта
Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.
30.06.2019 16501 1 vadim1980 5
Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD
Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.
03.06.2019 37010 9 ripreal1 92
Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером
Практический кейс построения HTTP-сервиса, который работает по принципу HTTP-сервера, с разбором всех методов построения и разработки класса задач построения личных кабинетов и сопряжения их с центральной базой.
13.05.2019 38270 152 Diversus 44
[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо
Расширение позволяет без изменений конфигурации проверять остатки по регистру бухгалтерии при проведении каждого документа и запрещает проведение при появлении отрицательных остатков после проведения.
17.08.2015 54691 170 ekaruk 32
Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.
09.01.2019 62162 269 informa1555 236
Бесплатные программы русские. Программирование 1С
Скачать программы, софт бесплатно. Программирование 1С
№1 Шпаргалка 1С. Добавление кнопок на форму.
№1 Шпаргалка 1С. Добавление кнопок на форму.
Элементы управления представляют собой отдельную группу объектов, предназначенных для ввода и представления информации в диалогах. Они могут располагаться на форме, использоваться для редактирования ячеек табличного поля, табличного документа.
1. Создание тестовой обработки
Прочтите текст, и одновременно посмотрите короткую видео-шпаргалку, в которой речь пойдет о вставке интерфейсных элементов в форму какого-либо прикладного объекта 1С, ( в том числе и обработки 1С, на примере которой мы рассмотрим этот процесс)
Видео, на котором показан весь процесс, расположено ниже.
Вы можете просматривать это видео в высоком качестве и в полноэкранном режиме, используя кнопки управления проигрыванием видеоролика
Это пригодится нам вообще, как базовый навык конструирования форм, так и для выполнения других практических упражнений.
Мы поговорим о вставке одного из видов интерфейсных элементов, использующихся в любом прикладном решении 1С:Предприятии, о вставке кнопок в форму.
Давайте с вами запустим наше учебное прикладное решение в режиме конфигурирования (разработки) Эта инструкция, об учебном прикладном решении, касается тех, кто обучается на наших курсах программирования 1С.
Те, кто не обучается на курсах, могут запустить в режиме конфигурирование любое имеющееся прикладное решений, в том числе и полностью пустое. Этого будет достаточно изучения для рассматриваемого примера.
Выбираем в выпавшем меню пункт с именем “добавить”. Откроется окно визуального конструктора обработки.
Тестовая обработка создана, мы видим ее имя в дереве конфигурации, в узле “Обработки”. Давайте, щелкнем мышью на имени нашей обработки, развернем этот пункт и увидим под-элементы, которые могут входить в состав нашей обработки: “Реквизиты”, “Формы”, “Макеты” и так далее.
2. Создание основной формы обработки
Давайте нажмем правой кнопкой мыши на узле “Формы”, далее, выбираем в появившемся контекстном меню пункт с именем “Добавить”
Перед нами появляется окно конструктора формы обработки. С его помощью, на начальном этапе, мы можем указать некоторые особенности вновь создаваемой формы (ее программное имя, тип, является ли она основной, и так далее)
Но нам сейчас никаких особых настроек делать не нужно, поэтому мы просто нажимаем кнопку “Готово”, в нижней части окна конструктора формы обработки.
После этого перед нами открывается вновь созданная форма обработки 1С.
3. Теперь рассмотрим процесс создания кнопок в форме обработки
Итак, как же происходит вставка кнопок?
Обратим внимание, что по умолчанию, во вновь созданной форме, некоторые кнопки уже вставлены во время конструирования обработки. Эти кнопки вставлены автоматически.
Это стандартные кнопки “действий” двух, так называемых, командных панелей, что имеются в верхней части окна формы, и в нижней части окна.
Нас же сейчас интересуют те кнопки, которые мы вставим сами, “вручную”.
Для того, чтобы вставить какой то интерфейсный элемент, в том числе и кнопки, в конструируемую форму, мы должны нажать специальную кнопку с “иконкой” (на иконке виден желтый значок “плюс” ), открывающую окно выбора интерфейсного элемента для вставки.
Эта специальная кнопка с “иконкой” находится, как правило, на панели инструментов, под главным меню основного окна конфигуратора.
При наведении мыши над нужной кнопкой возникает подсказка “Вставить элемент управления”.
Если кнопка на панели инструментов отсутствует (это зависит от настроек панелей инструментов), у нас имеет альтернативный путь: Когда перед нами на экране имеется окно конструктора формы, мы можем выбрать из главного меню конфигуратора пункт: “Форма”/ “Вставить элемент управления”.
В окне мы видим много различных элементов управления. (Вы можете потренироваться на досуге и попробовать вставить в форму эти элементы, посмотреть, как они выглядят).
Выбор вида элемента управления для вставки осуществляется в левой части окна, а в правой части окна дана возможность установить некоторые свойства элемента перед тем, как он будет вставлен в форму.
То есть, перед вставкой какого-то элемента управления в форму, его можно предварительно “подготовить”, установив основные его свойства: имя, заголовок, текст подсказки при наведении мыши, и некоторые другие свойства.
Например, любому элементу, в том числе и “кнопке”, мы можем присвоить какое то имя перед вставкой. Это имя будет являться именем объекта на встроенном языке 1С:Предприятие, именем программного объекта.
Аналогично, мы можем присвоить какой то заголовок кнопке, надпись на ней. В нашем примере присвоим кнопке заголовок “Наша кнопка”.
Если мы желаем, чтобы по нажатию этой кнопки выполнялось какое-то действие на встроенном языке программирования, тогда мы не должны снимать галочку-флажок “создать процедуру”. По-умолчанию этот флажок включен.
Если этот флажок будет включен, то одновременно со вставкой кнопки, в программном модуле формы будет создана пустая процедура-обработчик, в которой мы сможем написать любой нужный алгоритм, выполняемый при нажатии этой кнопки в режиме пользователя.
Все, подготовка перед вставкой завершена, теперь нажимаем кнопку “Ок”.
Выбираем место под кнопку в любой части нашей формы и нажимаем левую кнопку мыши. Наша новая кнопка вставилась в форму, и одновременно конструктор формы моментально переключает нас в окно редактора программного модуля формы.
Давайте, все-таки, вернемся на закладку “Диалог” (закладки конструктора формы находятся снизу окна) и убедимся, что кнопка в форме появилась. Да, наша кнопка здесь!
Мы можем поменять ее размер, “потянув мышью” за угол кнопки, или куда-то сдвинуть нашу кнопку в пределах окна формы.
Впишем некоторый код, пусть он, для простоты, состоит всего из одной строчки “Сообщить(“Нажата наша кнопка!”);”
Это код приведет к тому, что по нажатию кнопки, на экране пользователя, в служебном окне сообщений появится следующий текст: “Нажата наша кнопка”.
Давайте проверим, запустим наша прикладное решение в режиме пользователя.
Далее, выберем в главном меню пункт “Операции”/”Обработки”. Вспоминаем, что мы создали обработку и назвали ее “Тестовая обработка”, поэтому обработку с таким именем мы и выбираем из открывшегося списка.
Тмк, мы видим перед собой форму нашей обработки. В форме мы видим нашу кнопку с заголовком “Наша кнопка”. Обратите внимание, подсказка “Это наша кнопка” появляется при наведение курсора мыши над кнопкой.
Теперь давайте нажмем кнопку. Убеждаемся, что в окно служебных сообщений выдано сообщение, которое мы с вами запрограммировали: “Нажата наша кнопка”.
Подобным образом мы можем вставлять любые другие элементы управления, о которых мы поговорим с вами на наших курсах и видео-шпаргалках.
С вами был Дегтярев Роман.
Тренинг-центр “Старт в 1С”
Как научиться программировать в 1С с нуля?
Как работать программистом 1С и получать до 150 000 рублей в месяц?
ЗАПИШИСЬ НА БЕСПЛАТНЫЙ
«ПРОГРАММИРОВАНИЕ в 1С ДЛЯ НОВИЧКОВ»
Курс придет на электронную почту. Стань программистом, выполняя пошаговые задания.
Для участия нужен только компьютер и интернет
1с внешняя обработка добавить кнопку на форму документа
Войдите как ученик, чтобы получить доступ к материалам школы
Создание конфигураций 1С: добавляем обработку
Автор уроков и преподаватель школы: Владимир Милькин
Продолжаем изучение азов создания конфигураций на 1С.
На этом уроке мы вместе создадим новую обработку, а затем напишем для неё команды, которые демонстрируют работу со справочником «Сотрудники».
Возвращаемся в конфигуратор и открываем дерево конфигурации.
Добавляем новую обработку
Правой кнопкой нажимаем на разделе «Обработки» и выбираем пункт «Добавить»:
Открылось окно создания новой обработки. Перейдём на закладку «Основные» и укажем в качестве имени обработки «ОбработкаСправочников»:
Создаём форму для обработки
Перейдём на закладку «Формы» нажмём на зелёный плюсик, чтобы добавить новую форму (визуальное представление нашей обработки):
Появился конструктор создания формы. Оставим всё по умолчанию и нажмём «Готово»:
Открылась новая форма:
Создаём новую команду для формы
Перейдём на закладку «Команды»->»Команды формы»:
Добавим новую команду (зелёный плюсик):
И в свойствах новой команды укажем имя «ВыводВсехСотрудников»:
Нажмём в её же свойствах на лупу рядом с полем «Действие», чтобы задать обработчик команды. Выберем вариант создания обработчика «НаКлиенте» и нажмём «ОК»:
Нас перенесло в модуль формы в процедуру-обработчик команды «ВыводВсехСотрудников»:
Пишем код обработчика команды
Теперь наша задача написать код на внутреннем языке 1С, который будет перебирать все элементы справочника «Сотрудники».
Сразу хочу сказать, что этот код нельзя писать прямо в процедуре «ВыводВсехСотрудников», так как она выполняется на клиенте (обратите внимание на специальную строчку перед процедурой «&НаКлиенте»). Попытка прочитать данные из базы в клиентской процедуре всегда будет приводить к ошибке (пока просто запомните это).
Поэтому давайте допишем в конце модуля процедуру такого вида:
Обратите внимание, что перед ней я указал признак «&НаСервере». Это означает, что она будет выполняться на сервере, а значит мы можем из неё читать данные справочника.
Теперь организуем вызов этой процедуры из клиентской «ВыводВсехСотрудников»:
Это на самом деле несложно. Обход всех справочников в 1С однотипен. А значит научившись это делать сейчас со справочником «Сотрудники», вы сможете делать также и с любыми другими справочниками.
Для доступа к данным справочника используется менеджер, доступ к которому осуществляется так:
Что представляет из себя выборка? Выборка (опять же это только имя переменной, в которую мы сохраняем результат работы метода «Выбрать» и оно могло бы быть любым другим) представляет из себя коллекцию, но не такую, как например массив или список значений.
Такой подход позволяет достаточно быстро обходить с помощью выборки большие списки справочников, не загружая их в память компьютера все сразу.
Чтобы получить очередную порцию данных из выборки, необходимо вызвать у выборки встроенный в неё метод «Следующий». Получение порций данных (одна порция соответствует одному элементу справочника) обычно происходит в цикле:
Когда данные (элементы справочника) в выборке закончатся, метод «Следующий» вернёт Ложь и цикл прекратится.
После каждого вызова метода «Следующий» (при условии, что он вернул «Истина») выборка будет содержать в себе все поля с данными только считанного элемента справочника, обращаться к которым можно по именам через точку:
Значит код процедуры «ВыводВсехСотрудниковНаСервере» напишем таким образом:
Превращаем команду в кнопку
Давайте проверять! Для этого перетащим нашу команду на форму, чтобы она превратилась в кнопку:
Готово!
Теперь запустим 1С:Предприятие (меню «Отладка»->»Начать отладку»), откроем нашу обработку (меню «Сервис»->»Обработка справочников») и нажмём кнопку «Вывод всех сотрудников»:
Войдите как ученик, чтобы получить доступ к материалам школы