Общие команды и группы команд в 1С 8.3
Общие команды — механизм платформы, предназначенный для описания часто используемых команд в конфигурации 1С 8.3.
Общие или глобальные команды удобно использовать, если одна команда нужна многих объектам конфигурации. Например, кнопка для вывода структуры подчиненности документов, команда отображения проводок документа, отчет о изменении объекта.
В команду можно передать параметры, например, из формы какого объекта он вызывается.
Настройка и свойства общей команды в 1С
Добавить новую команду и настроить общую форму достаточно просто, рассмотрим этот процесс подробнее:
Пример модуля команды:
Здесь ПараметрКоманды — объект, вызывающий команду. А в ПараметрыВыполненияКоманды структура, в которой описан Источник (вызываемая Форма), Окно (ОкноКлиентскогоПриложения), Уникальность, указывает, искать ли уже открытую форму или нет.
Группы команд 1С
Объект, позволяющий вывести команды на командный интерфейс конфигурации в отдельную группу:
Видео по общим командам от Павла Чистова:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
1с как добавить команду общую команду на форму
Войдите как ученик, чтобы получить доступ к материалам школы
Создание конфигураций 1С: добавляем команду
Автор уроков и преподаватель школы: Владимир Милькин
Продолжаем изучение азов создания конфигураций на 1С.
Где находится форма у обработки
Откроем окно настроек обработки «УдалениеУволенныхСотрудников»:
Открылось окно с закладками во многом повторяющими закладки из справочника «Сотрудники». Это совершенно нормально, ведь настройки объектов в конфигураторе во многом похожи друг на друга.
Давайте откроем его двойным щелчком:
Открылось окно со множеством панелей. И нам сейчас очень важно для будущих уроков разобраться что здесь за что отвечает.
Меняем код на встроенном языке 1С для формы
Ну прежде всего обратим внимание в самый низ открывшегося окна. Там мы найдём две закладки «Форма» и «Модуль».
Попробуем переключиться на закладку «Модуль»:
Здесь присутствует всего одна процедура с именем «УдалитьСотрудников». Очевидно именно она и вызывается при нажатии на кнопку.
Изменим этот код следующим образом:
Снова запустим режим 1С:Предприятие (меню «Отладка»->»Начать отладку»), откроем обработку и нажмём кнопку «Удалить сотрудников»:
И получим то самое сообщение, которое написали только что:
Закладка «Элементы» у формы
Вернёмся в конфигуратор в нашу форму на закладку «Форма»:
Обратите внимание на закладку «Элементы» в верхней части формы. Содержимое этой закладки дублирует визуальное представление формы. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Можно сказать ещё, что всё, что вы видите в визуальной части формы можно найти на закладке «Элементы».
Откроется окно со свойствами кнопки:
Давайте установим для кнопки заголовок «БАХ»:
Форма теперь будет выглядеть так:
Закладка «Реквизиты» у формы
Теперь перейдём к закладке «Реквизиты»:
Эта закладка содержит имена по которым мы можем «достучаться» до данных объекта, которые представляет форма. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Пока на этой закладке всего лишь один реквизит «Объект» и то пустой.
Но если бы мы перешли на аналогичную закладку в форме справочника «Сотрудники», то обнаружили бы тут реквизиты «ДатаРождения», «НомерПаспорта» и «СерияПаспорта». Это означало бы, что мы можем их использовать в коде модуля формы.
Закладка «Команды» у формы
Заключительная закладка, которую мы рассмотрим сегодня это закладка «Команды»:
Вообще все команды, которые вы видите на одной из закладок («Команды формы», «Стандартные команды» и «Глобальные команды»), можно смело перетаскивать на закладку «Элементы» и они «волшебным образом» превратятся в кнопки на форме.
Как вы понимаете, нажатие на эти кнопки, будет приводить к выполнению этих команд.
Ну, например, перейдём на закладку «Стандартные команды» и перетащим на закладку «Элементы» команду «Закрыть»:
На форме появилась кнопка закрыть. Запустим 1С:Предприятие (меню «Отладка»->»Начать отладку»), откроем обработку и убедимся, что кнопка работает:
Вернёмся в конфигуратор в форму обработки и перейдём на закладку «Команды формы»:
На этой закладке мы видим команды формы, которые мы определили сами. В том числе мы можем видеть здесь команду, которую я определил ещё в самом начале с именем «УдалитьСотрудников».
Откроем свойства этой команды (двойным щелчком).
Нас интересует прежде всего поле «Действие», нажмите на кнопку с лупой рядом с ним:
Нас перенесло в процедуру «УдалитьСотрудников» в модуле формы. Это означает, эта команда и эта процедура связаны между собой. И выполнение команды (например, при нажатии на кнопку, в которую она превратилась) приведёт к выполнению кода процедуры.
Добавляем новую команду для формы
Давайте создадим ещё одну команду формы. Для этого вернёмся на закладку «Команды формы» и нажмём зелёную кнопку с плюсом:
На закладку добавилась новая команда «Команда1»:
Откроем её свойства и установим имя «Привет», а затем нажмём на лупу рядом с полем «Действие»:
Нас спрашивают какой именно вид обработчика мы хотим создать.
Выбираем вариант «НаКлиенте» и нажимаем «ОК»:
Нас перенесло в модуль формы в автоматически созданную процедуру «Привет». Теперь эта процедура связана с командой формы «Привет»:
Давайте напишем в ней вывод строки привет пользователю:
Но как нам теперь заставить выполнять команду (а значит и процедуру) «Привет»? Для этого вернёмся на закладку «Команды формы» и перетащим наш «Привет» на форму, так как мы это сделали ранее с командой «Закрыть»:
На форме появилась ещё одна кнопка. Запустим 1С:Предприятие, откроем обработку и нажмём на кнопку «Привет». Должно получиться вот так:
Вводим от пользователя имя и говорим ему привет
А теперь давайте поставим себе такую задачу. Нужно, чтобы пользователь ввёл своё имя, мы нажали на кнопку и вывелось, например, «Привет, Алексей».
Переходим на закладку «Реквизиты» и нажимаем зелёную кнопку плюс:
Добавился реквизит с именем «Реквизит1»:
В окне свойств этого реквизита установим имя «Имя» и тип «Строка»:
После этого перетащим уже привычным образом реквизит «Имя» на закладку «Элементы»:
Запустим 1С:Предприятие, откроем обработку и попробуем туда ввести своё имя:
Всё получилось, но вот нажатие на кнопку «Привет» пока работает по-прежнему.
Сейчас всё исправим. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Для этого вернёмся в конфигуратор, перейдём в модуль формы обработки и найдём там процедуру «Привет»:
Перепишем её таким образом, чтобы к строке «Привет, » добавлялось значение реквизита «Имя», который связан с элементом ввода на форме:
Теперь снова запустим 1С:Предприятие, обработку, введём своё имя и нажмём кнопку «Привет»:
Команды, элементы, реквизиты, объект. вы ещё не запутались?
Элементы позволяют нам некоторым образом взаимодействовать с формой: читать, нажимать, проматывать и т.п.
Кнопка
Команды бывают встроенные (закладки «Стандартные команды» и «Глобальные команды») и те, что программист придумывает сам (закладка «Команды формы»).
Надпись
Это просто текст на форме. У такого элемента есть свойство «Заголовок», значение которого мы задаём в редакторе и оно отображается в виде текста.
Поле
А вот это уже интересно. Потому что это такой особый элемент, который не сам по себе (как надпись), а обязательно должен быть связан с какими-то данными или по-другому РЕКВИЗИТАМИ (закладка «Реквизиты»).
Так вот в 1С так нельзя. Тут (начиная с «управляемых» форм) представление данных отделено от самих данных.
И получается, что при написании кода на языке 1С для отображения и изменения данных мы прежде всего должны использовать реквизиты. Мы меняем из кода реквизиты, а связанные с ними поля на форме изменяются при этом автоматически.
И наоборот. Пользователь вводит на форме значения в элементы ввода (числа, текст, даты) и значения реквизитов также меняются автоматически.
Какие преимущества даёт такое отделение элементов формы от данных (реквизитов)? Большие! Программист создает нужные ему реквизиты (для хранения, отображения и ввода некоторых полей на форме) и пишет программный код работая только с этими реквизитами (данными). Он совершенно не задумывается пока как всё это будет выглядеть на форме. Оно ему и не надо! Он пока пишет только программный код.
А уже затем он перетаскивает эти реквизиты на форму, реквизиты превращаются в визуальные элементы формы, он их как-то настраивает, распихивает по закладкам и прочее. В общем на этом этапе (визуального проектирования формы) он работает уже только с элементами. При этом во много раз снижается вероятность сломать уже написанный код.
Чтобы обратиться к реквизиту «Возраст» из модуля формы достаточно сразу использовать его имя:
А чтобы обратиться к элементу формы, который связан с этим реквизитом нужно использовать префикс «Элементы.», например:
Что такое Объект?
Рядом с ним бы появился плюсик и мы могли бы его раскрывать и перетаскивать отдельные его части на форму и они бы также превращались в элементы.
В данной статье описаны примеры программного создания объектов управляемой формы 1С : элементов, команд, реквизитов, а также описание стандартных возможностей для работы с ними.
Введение в управляемая форма 1С реквизиты элементы команды
Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.
Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.
Программное переопределение обработчиков событий формы и элементов формы
Переопределить обработчики событий формы можно в обработчике «ПриСозданииНаСервере» (кроме самого обрабочика «ПриСозданииНаСервере») или в теле модуля формы в контексте сервера (например, Переопределение событий ПриЧтениинаСервере и ПриСозданииНаСервере).
В теле модуля формы:
А в новой процедуре нужно добавить вызов основной, если такая процедура есть.
Аналогично можно поступить и с обработчиками элементов формы:
Программное создание групп формы.
Доступные виды групп формы:
Программное добавление команды на форму.
Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить( ). Удалять можно только те команды, которые были созданы программно.
Программное создание декораций форм.
Программное добавление реквизита на форму.
Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.
Вывод реквизитов на форму.
Вызов процедур при создании на сервере 1С
После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.
Некоторые советы при программном редактировании формы
Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:
«Общие команды» на обычных формах через «Критерии отбора» и механизм загрузки, выгрузки, просмотра файлов, хранящихся на FTP
Как на обычных формах показать кнопку во всех формах? Решение проблемы отображения команд для всех форм конфигурации для обычных форм и работа с сервером FTP
Последовательность выполнения действий:
1) Перенести все объекты метаданных в вашу конфигурацию
2) Указать данные FTP (регистр сведений «Данные FTP»)
3) Указать каталог хранения файлов на FTP (константа «Путь для инструкций»)
4) В Плане видов характеристик создать новый элемент, указать «Объекты для отображения», после нажать кнопку загрузить инструкцию и выбрать файл
5) Зайти на форму элемента или списка, объекта указанного в «Объекты для отображения» выбрать список «Перейти», после нажать «Список инструкций»
6) Открыть инструкцию двойным кликом или нажав кнопку «Открыть инструкцию»
Механизм используется на УПП 1.2 (1.2.14.1).
Скачать файлы
Специальные предложения
Обновление 04.06.19 23:00
См. также
Шпаргалка разработчика для работы с формами Промо
Сборник помогает быстро освоить встроенный язык и средства конфигурирования при разработке обычных и управляемых форм.
31.10.2018 18478 87 ELAM 3
K-SOFT: Улучшенная форма отчета
Если вы любитель добавлять много отборов на форму отчета, и вас раздражает, что отборы занимают большую часть отчета, и их никак не убрать, то вам сюда. Простая доработка, что позволит скрыть отборы на время анализа отчета.
19.05.2021 6185 6 karpik666 18
Отображение времени в документах и списках
Расширение предназначено для отображения времени документов в списках и журналах, а также для ручного редактирования времени в открытых формах.
10.03.2020 3681 1 Nuuq 4
СКД: красивые надписи в заголовках колонок
Необходимо немного исправить вывод надписей в заголовках колонок, сделать более читаемый вариант. Как это сделать?
27.02.2020 13171 8 wowik 36
Каталог игр с приставок из моего детства Промо
Каталог игр Dendy, Sega, Nintendo из нашего детства.
06.02.2018 17444 70 user621724_Dimav1979 37
Прорыв и провал 3D графики в 1С
Здравствуйте, уважаемые. Эта статья опоздала, хотя я спешил как мог. В любом случае, речь тут пойдет про WebGL и технологии работы с 3D в 1C. Сразу оговорюсь, что всё это работало до последнего времени и на тонком, толстом, вэб клиентах, платформах 8.3 и на 8.2. Единственное, что изменило ситуацию, это WebKit, внедренный в 1С начиная с релиза 8.3.14.1565.
11.02.2020 9733 14 dinopopyys 29
Общая форма отчета (для отчета с СКД)
Единообразная форма отчёта для отчётов с СКД. Режим совместимости платформы должен быть не ниже версии 8.3.7.
04.02.2020 4246 3 olegpkc 4
Сохранение и изменение настроек форм у всех пользователей 1С: Документооборот
Расширение позволяет быстро и удобно сохранять и тиражировать настройки форм от Администратора всем пользователям программы.
01.02.2020 10965 36 st_Etlau 7
Сетевая игра «СловоБой» на управляемых формах Промо
10.11.2016 21120 8 woldemarr 0
Изменение масштаба интерфейса «Такси» 1С (управляемые формы)
13.01.2020 4696 4 Denr83 0
Ханойские башни
Решение головоломки «Ханойская башня» с визуализацией в среде 1С.
23.12.2019 6048 3 13vap 0
Альтернатива меню «Все функции»
Просмотр доступных объектов, когда не знаешь, где их найти, и недоступно меню «Все функции» Доступно с версии платформы 8.3.6.1977 (используется СтрРазделить()) Тестировалось на 8.3.11.
07.12.2019 6310 6 user1217016 1
Игра «Самоцветы» (Bejeweled теперь и в 1С) + звук Промо
20.10.2010 32315 276 Tatitutu 68
Коллекция иконок Material Design для 1С
Стандартная коллекция иконок от Google, импортированная в отдельную конфигурацию для удобного использования в различных проектах.
06.11.2019 9683 46 L0z4 6
«Все функции» с плюшками
Замена штатному меню для тех, кто хочет открывать «Все функции» быстро и кто скучает по быстрому позиционированию по первым символам, как было раньше.
06.11.2019 8889 26 codejs 6
Отображение дополнительных сведений на форме документа как реквизитов
Расширение позволяет редактировать дополнительные сведения не в отдельно открываемом окне, а непосредственно на форме документа.
05.11.2019 13696 31 9269477065 20
Игра: Лабиринт для 1С (теперь и для 8.0-8.2) Промо
24.09.2010 30504 453 Tatitutu 24
Индикатор выполнения (прогресс-бар) с таймером остаточного времени выполнения (обычное приложение + УФ)
08.10.2019 9981 17 slayer-ekb 5
Блэк Джек
Блэк джек, написанный на платформе 1С 8.2 (обычные формы).
07.10.2019 6304 1 Azamatex 2
Заголовок окна операционной системы при работе под управлением ОС Windows в терминальном режиме или в режиме удаленного рабочего стола (Такси)
После перехода на версию 8.3.15 переключение вариантов отображения главного окна приложения выполняется автоматически, в зависимости от того, в какой ОС и каком окружении запускается клиентское приложение. Кроме того, при работе клиентского приложения в ОС Windows имеется возможность управления отображением заголовка ОС с помощью методов ПолучитьОтображениеЗаголовкаОС()/УстановитьОтображениеЗаголовкаОС() объекта КлиентскоеПриложение. Установить отображение заголовка окна ОС можно только в обработчике события ПередНачаломРаботыСистемы.
17.09.2019 6456 5 tsatsur 8
Игра «2048» Промо
Убьем рабочее время, господа! Суть игры набрать 2048 в одном квадратике, складывая квадратики с одинаковыми цифрами
13.03.2014 54221 45 mrmasson 11
Картинки конфигурации
Иногда перед разработчиками 1С встает вопрос: есть ли подходящая общая картинка в конфигурации или нужно рисовать свою для кнопки? А какие вообще картинки есть в конфигурации и какие у них размеры? Поиск подходящей картинки через конфигуратор мне показался не совсем удобным, поэтому и появился отчет по общим картинкам конфигурации. Отчет универсальный, должен работать в любой конфигурации и на обычных, и на управляемых формах. Важно: версия платформы 1С должна быть 8.3.14 или выше.
10.09.2019 7733 18 rusmil 6
Вывод напоминаний со звуком
Вывод напоминания пользователю со звуком для привлечения внимания.
29.08.2019 5028 8 Kutuzov 11
Перемещение дополнительных реквизитов на форме
Перемещение дополнительных реквизитов, без изменения конфигурации (расширение) (конфигурация остается типовой).
27.06.2019 5197 6 sulig 3
Tactical 1C 2.1: Тактическая сетевая игра на двух (и более) человек для 1С 8.1 Промо
03.09.2009 27280 145 Greymem 18