Hello, world!


В качестве первого опыта программирования в 1С:Предприятии возьмем классическое — сообщение «Hello, world!».

Как уже было упомянуто, программировать мы будем не изменяя типовое решение, сугубо внешними средствами. Основным рабочим инструментом будут внешние обработки (внешние отчеты).

Для создания внешней обработки (внешнего отчета) необходимо в меню «Файл» выбрать команду «Новый»
pro1c_2_001
либо нажать кнопку «Новый документ» на панели инструментов
pro1c_2_002
либо нажать соответствующую комбинацию клавиш.

Затем выбрать вид документа «Внешняя обработка»
pro1c_2_003

Откроется окно редактирования внешней обработки
pro1c_2_004

У внешней обработки как и у любого объекта метаданных есть свойства Имя, Синоним, Комментарий, а также стандартные для объектов метаданных группы свойств (Реквизиты, Табличные части, Формы, Макеты).

Для нашей задачи (печать сообщения) нам не нужны ни дополнительные реквизиты, ни табличные части, ни макеты. Если бы речь шла не о управляемом приложении — можно было бы обойтись и без форм, написав код в модуле объекта. Но в рамках управляемого приложения код модуля объекта выполняется на сервере, а вывод сообщений, который нам нужен, — на клиенте.

Поэтому займемся добавлением формы. Для начала зададим обработке Имя. Имя — это идентификатор, со стандартными для идентификаторов ограничениями. Если задавать «длинный, мнемоничный» идентификатор с выделением слов прописными буквами, то умная система автоматически сформирует синоним, разбив идентификатор на слова:
pro1c_2_005
Для добавления форм нужно в ветке «Формы» добавить новый элемент (либо кнопкой «зеленый круглик», либо клавишей Insert, либо вызовом команды из контекстного меню), а затем установить эту форму в качестве формы обработки (это необходимо для того, чтобы при открытии обработки в пользовательском режиме система «знала» какую форму использовать). Но для формы обработки есть и более быстрый способ — надо нажать на кнопку с изображением лупы на поле «форма обработки». Вообще говоря, данная кнопка с лупой предназначена для открытия формы, но при отсутствии наличия формы умная система запускает конструктор формы обработки:
pro1c_2_006

На первом шаге конструктора формы задаются Имя, Синоним, Комментарий (при необходимости), а также тип формы. Поскольку нам данные по умолчанию вполне подойдут, то переходим ко второму (и последнему) шагу конструктора:
pro1c_2_007
На этом шаге можно сразу разместить реквизиты на форме. Поскольку реквизитов у нас нет, то и размещать нечего. Даже если и бы были — пользоваться данной возможностью не сильно рекомендую, размещает не ахти, лучше «руками». Поэтому жмем «Готово» и попадаем в редактор формы
pro1c_2_008

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

Поскольку способов сообщить классическую фразу немало — определимся с вариантами для реализации:

  1. Сообщение в окне сообщений формы при открытии формы
  2. Сообщение по нажатию на кнопку
  3. Сообщение в модальном окне (предупреждение) по нажатию на кнопку

Перед началом процесса проверим настройки автозамены, при включенной автозамене система подставляет синтаксические конструкции языка. Проверять настройки в меню «Сервис», команда «Параметры», закладка «Модули»:
pro1c_2_009
В принципе, любители экзотики могут настроить интерфейс модулей достаточно гибко.

Теперь приступим. Для первого варианта на форме нам ничего не нужно, нужно в модуле форме в событии при открытии написать соответствующую команду. Перечень доступных событий для элемента формы (и самой формы) виден в палитре свойств. Палитра свойств располагается в правой части окна конфигуратора и показывает свойства выделенного элемента. Если палитра свойств пока не открыта, то открыть ее можно вызвав из контекстного меню элемента команду «Свойства»
pro1c_2_010
Нам нужно событие ПриОткрытии — именно оно происходит при открытии формы в пользовательском режиме. На данный момент к этому событию не привязана процедура обработки. Для привязки нужно выбрать процедуру из списка доступных процедур. Или воспользоваться уже опробованным читом — нажать на кнопку с лупой. В результате система предложит выбрать вариант создания обработчика:
pro1c_2_011
Поскольку у нас сугубо клиентские задачи — оставляем первый вариант. И попадаем в модуль формы
pro1c_2_012

Осталось собственно написать нужную команду. За сообщения в окно сообщений ожидаемо отвечает команда «Сообщить». Синтаксис команды можно посмотреть в синтакс-помощнике. Или на скрине
pro1c_2_013

Ну и, конечно, сохранить обработку в файл.

Для использования обработки в пользовательском режиме нужно открыть обработку с помощью команды «Открыть» из меню «Файл». Результат выполнения обработки:
pro1c_2_014

Перейдем ко второму способу — сообщение в окне сообщений по нажатию на кнопку.

Перед тем как создать кнопку нужно создать команду. Собственно кнопки на форме — визуальное выражение команд. Для создания команды перейдем на закладку «Команды» в правом окне редактора форм:
pro1c_2_015
Добавляем команду (кнопкой pro1c_2_016 или клавишей Insert) и редактируем свойства команды:
pro1c_2_017
Необходимо задать имя команды и указать действие. Действие — это процедура из модуля формы. А быстро создавать процедуры мы уже умеем — кнопка с лупой дает прекрасный результат. Имя у процедуры будет соответствовать имени команды. И, конечно же, эти имена — идентификаторы. Запрос варианта создания обработчика мы уже тоже наблюдали:
pro1c_2_011
И снова выбираем вариант на клиенте поскольку у нас сугубо клиентские операции. И мы снова в модуле:
pro1c_2_018
Тело процедуры от первого варианта отличаться не будет, поскольку действия аналогичные:
pro1c_2_019
Осталось разместить кнопку на форме. Для этого «перетаскиваем» команду в список элементов формы. Можно перетащить на форму:
pro1c_2_020
А можно на командную панель формы:
pro1c_2_021
Работать кнопка будет одинаково, а вот внешний вид формы немного изменится.

Сохраняем. Проверяем.

Переходим к третьему варианту.

Пропускаем описание процесса добавления команды — от второго варианта отличий нет. А вот в теле процедуры отличия будут — за модальные окна с сообщениями отвечает функция «Предупреждение». Синтаксис — в синтакс-помощнике. А код будет выглядеть следующим образом:
pro1c_2_022

Размещаем кнопку на форме
pro1c_2_023

Сохраняем обработку. Запускаем. Результат выполнения команды должен выглядеть так:
pro1c_2_024