Skip to content

Instantly share code, notes, and snippets.

Created August 28, 2017 19:05
Show Gist options
  • Save anonymous/16bbf4b15e9b5b7ded39ec21696743f4 to your computer and use it in GitHub Desktop.
Save anonymous/16bbf4b15e9b5b7ded39ec21696743f4 to your computer and use it in GitHub Desktop.
1с состав команд формы

1с состав команд формы



Войдите как ученик, чтобы получить доступ к материалам школы. Автор уроков и преподаватель школы: Открылось окно с закладками во многом повторяющими закладки из справочника "Сотрудники". Это совершенно нормально, ведь настройки объектов в конфигураторе во многом похожи друг на друга. Найдите на этой закладке объект с именем "Форма" - это и есть наше визуальное представление обработки:. Открылось окно со множеством панелей. И нам сейчас очень важно для будущих уроков разобраться что здесь за что отвечает. Ну прежде всего обратим внимание в самый низ открывшегося окна. Там мы найдём две закладки "Форма" и "Модуль". Закладка "Форма" - это и есть визуальное представление. Сейчас на форме находится всего лишь одна кнопка "Удалить сотрудников". Закладка "Модуль" - это код на встроенном языке 1С, который содержит процедуры и функции, определяющие поведение формы для пользователя. Очевидно именно она и вызывается при нажатии на кнопку. Код процедуры сейчас свёрнут - нажмём на плюсик, чтобы развернуть его не поместился на рисунке справа:. Точно, так и есть. Вот оно место, где выдаётся сообщение о том, что я не стал писать код этой обработки. Снова запустим режим 1С: Обратите внимание на закладку "Элементы" в верхней части формы. Содержимое этой закладки дублирует визуальное представление формы. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Можно сказать ещё, что всё, что вы видите в визуальной части формы можно найти на закладке "Элементы". Например, чтобы открыть свойства кнопки "Удалить сотрудников" на форме - найдём эту кнопку на закладке "Элементы" и сделаем на ней двойной щелчок:. Эта закладка содержит имена по которым мы можем "достучаться" до данных объекта, которые представляет форма. Пока на этой закладке всего лишь один реквизит "Объект" и то пустой. Но если бы мы перешли на аналогичную закладку в форме справочника "Сотрудники", то обнаружили бы тут реквизиты "ДатаРождения", "НомерПаспорта" и "СерияПаспорта". Это означало бы, что мы можем их использовать в коде модуля формы. Вообще все команды, которые вы видите на одной из закладок "Команды формы", "Стандартные команды" и "Глобальные команды" , можно смело перетаскивать на закладку "Элементы" и они "волшебным образом" превратятся в кнопки на форме. Ну, например, перейдём на закладку "Стандартные команды" и перетащим на закладку "Элементы" команду "Закрыть":. На форме появилась кнопка закрыть. Вернёмся в конфигуратор в форму обработки и перейдём на закладку "Команды формы":. На этой закладке мы видим команды формы, которые мы определили сами. В том числе мы можем видеть здесь команду, которую я определил ещё в самом начале с именем "УдалитьСотрудников". Нас перенесло в процедуру "УдалитьСотрудников" в модуле формы. Это означает, эта команда и эта процедура связаны между собой. И выполнение команды например, при нажатии на кнопку, в которую она превратилась приведёт к выполнению кода процедуры. Давайте создадим ещё одну команду формы. Для этого вернёмся на закладку "Команды формы" и нажмём зелёную кнопку с плюсом:. В целом существует два вида обработчиков - те, что выполняются на клиенте и те, что выполняются на сервере. В нашем случае клиент и сервер - это один и тот же компьютер, но не обязательно это всегда так. Мы ещё вернёмся к этому разговору в следующих модулях, а пока нам думать об этом слишком рано. Нас перенесло в модуль формы в автоматически созданную процедуру "Привет". Теперь эта процедура связана с командой формы "Привет":. Но как нам теперь заставить выполнять команду а значит и процедуру "Привет"? Для этого вернёмся на закладку "Команды формы" и перетащим наш "Привет" на форму, так как мы это сделали ранее с командой "Закрыть":. На форме появилась ещё одна кнопка. Предприятие, откроем обработку и нажмём на кнопку "Привет". Должно получиться вот так:. А теперь давайте поставим себе такую задачу. Нужно, чтобы пользователь ввёл своё имя, мы нажали на кнопку и вывелось, например, "Привет, Алексей". Чтобы мы смогли разместить на форме элементы для ввода данных нам потребуется реквизит формы закладка "Реквизиты" с которым этот элемент будет связан. Так как закладка "Реквизиты" у нас практически пустая - создадим новый реквизит. Ага, на форме появился элемент для ввода строки! Что нам и требовалось. Для этого вернёмся в конфигуратор, перейдём в модуль формы обработки и найдём там процедуру "Привет":. Перепишем её таким образом, чтобы к строке "Привет, " добавлялось значение реквизита "Имя", который связан с элементом ввода на форме:. Думаю запутались Спешу вас успокоить, что не стоит переживать по этому поводу. Со временем ситуация прояснится. А пока я попробую более простыми словами описать вам эти составные части любой формы. А вы после этого можете ещё раз перечитать урок - уверен, многое станет более понятным. Итак, форма - это визуальное представление нашей программы: Всё это ЭЛЕМЕНТЫ формы. Поле ввода - тоже элемент. То есть элемент формы - это прежде всего часть её визуального представления. А значит у элемента бывают такие характеристики как цвет, шрифт, положение на форме, размер и многие другие. Элементы позволяют нам некоторым образом взаимодействовать с формой: Очевидно, что кнопка не может быть сама по себе. Когда пользователь нажимает на неё - должно произойти некоторое действо, задуманное программистом. Это действо и называется командой. Команды бывают встроенные закладки "Стандартные команды" и "Глобальные команды" и те, что программист придумывает сам закладка "Команды формы". Ну встроенные команды - они на то и встроенные. Что их действие придумано уже до нас. Мы можем лишь перетащить эти команды на форму и превратить их в кнопки. К таким командам относится, например, команда закрытия формы. Нам не нужно ничего программировать - достаточно перетащить стандартную команду "Закрыть" на форму и всё. А команда формы - это команда придуманная нами самими. Это та команда, которую мы сами добавили на закладку "Команды формы", затем нашли в её свойствах пункт "Действие", ткнули на него и запрограммировали код на встроенном языке в автоматически созданном обработчике в модуле формы например, команда "Привет" из этого урока. Ну в общем вы поняли: А кнопка - это визуальный элемент формы, который при своём нажатии запускает связанную с собой команду. Это просто текст на форме. У такого элемента есть свойство "Заголовок", значение которого мы задаём в редакторе и оно отображается в виде текста. А вот это уже интересно. Ну вот представьте, что у нас на форме есть поле для ввода числа. Если бы не было реквизитов - как бы мы из кода узнали, какое число ввёл пользователь? Мы бы обратились к элементу ввода по имени и прочитали некоторое его свойство, отвечающее значение введённое пользователем. Так вот в 1С так нельзя. Тут начиная с "управляемых" форм представление данных отделено от самих данных. Получается, что элемент ввода - это элемент формы. А число, которое вводит пользователь, хранится не в самом элементе, а в реквизите, который связан с этим элементом. Реквизит - это именно данные строка, число, дата. Не визуальное представление надпись с текстом, поле для ввода числа, поле для ввода даты. Визуальным представлением реквизита является как раз элемент формы "Поле". И получается, что при написании кода на языке 1С для отображения и изменения данных мы прежде всего должны использовать реквизиты. Мы меняем из кода реквизиты, а связанные с ними поля на форме изменяются при этом автоматически. Пользователь вводит на форме значения в элементы ввода числа, текст, даты и значения реквизитов также меняются автоматически. Какие преимущества даёт такое отделение элементов формы от данных реквизитов? Программист создает нужные ему реквизиты для хранения, отображения и ввода некоторых полей на форме и пишет программный код работая только с этими реквизитами данными. Он совершенно не задумывается пока как всё это будет выглядеть на форме. Оно ему и не надо! Он пока пишет только программный код. А уже затем он перетаскивает эти реквизиты на форму, реквизиты превращаются в визуальные элементы формы, он их как-то настраивает, распихивает по закладкам и прочее. В общем на этом этапе визуального проектирования формы он работает уже только с элементами. При этом во много раз снижается вероятность сломать уже написанный код. Пусть у нас есть реквизит "Возраст" с типом "Число". Этот реквизит хранит только само число, больше ничего. Он не отвечает за то, как будет выглядеть это число, и в каком месте или на какой закладке будет располагаться элемент ввода на форме, связанный с этим числом. Реквизит - это только число! За всё это отвечает не реквизит, а элемент! Меняя реквизит, мы меняем только число, которое отображается в элементе ввода на форме. РЕКВИЗИТ - это переменная формы. Поэтому все данные храним в реквизитах переменных , а для их вывода на форму или ввода с формы используем элементы. Именно это отделение логики от представления позволяет 1С с легкостью отображать одни и те же формы на разных клиентах: А чтобы обратиться к элементу формы, который связан с этим реквизитом нужно использовать префикс "Элементы. Ну и, наконец, объект. Судя по-тому, что он находится на закладке "Реквизиты" - это тоже реквизит. Этот реквизит мы не создаём - он сам появляется на закладке "Реквизиты". В случае с обработкой он пустой, но если бы мы программировали форму какого-нибудь справочника, то реквизит объект как раз и представлял бы из себя поля этого справочника из базы. Рядом с ним бы появился плюсик и мы могли бы его раскрывать и перетаскивать отдельные его части на форму и они бы также превращались в элементы. Здесь находится пояснение или ответ в полной версии. Обязательно повторяйте все действия, которые мы выполняем на уроках данного модуля. Теория, не подкреплённая практикой - ничего не значит. С уважением, Владимир Милькин. Пожалуйста, введите ваше имя пользователя или e-mail. Вы получите письмо со ссылкой для создания нового пароля. Обработки Уроки Ответы Школа Обновлятор. Главная Обработки Уроки Ответы Автор Ш кола Я зык 1С О бновлятор Сказать спасибо. Перед вами ознакомительная версия урока, материалы которого могут быть неполными. Войдите на сайт как ученик. Оглавление Где находится форма у обработки Меняем код на встроенном языке 1С для формы Закладка "Элементы" у формы Закладка "Реквизиты" у формы Закладка "Команды" у формы Добавляем новую команду для формы Вводим от пользователя имя и говорим ему привет Команды, элементы, реквизиты, объект Форма обработки может содержать. Код на встроенном языке 1С. Визуальные элементы кнопки, надписи, картинки. Форма у обработки находится на закладке. Код на встроенном языке для формы пишется на закладке. Кнопки, картинки, надписи на форме находятся на закладке. Поля справочников и документов на форме были бы представлены на закладке. Можно ли на форму добавлять свои реквизиты. Свои команды мы можем определять на закладке. Чтобы перейти к процедуре-обработчику команды. Чтобы была возможность выполнить команду и её обработчик нужно. Чтобы разместить на форме поле для ввода данных. Где находится форма у обработки Меняем код на встроенном языке 1С для формы Закладка "Элементы" у формы Закладка "Реквизиты" у формы Закладка "Команды" у формы Добавляем новую команду для формы Вводим от пользователя имя и говорим ему привет Команды, элементы, реквизиты, объект Логин Пароль Запомнить меня Уже зарегистрированы, но не получается войти? Регистрация в школе я в первый раз.


Виды причин несчастных случаевна производстве
История передвижения гугл
Стул из профильной трубы своими руками
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment