Первая обработка: «Привет, мир»
Пора написать первый работающий код. В мире 1С «Привет, мир» удобнее всего сделать в виде внешней обработки.
Внешняя обработка — это отдельный файл с расширением .epf, который не встроен в конфигурацию, а лежит рядом и открывается по требованию. Это идеальный полигон для экспериментов: не надо трогать основную конфигурацию, файл легко передать коллеге, а код внутри — самый настоящий язык 1С.
Обработка — объект 1С, предназначенный для действий над данными (в отличие от отчёта, который данные только показывает). Внешняя обработка хранится отдельным файлом и подключается к любой базе.
Создаём обработку
В Конфигураторе: меню «Файл» → «Новый» → «Внешняя обработка». Платформа создаст пустую обработку и предложит дать ей имя, например ПриветМир. Теперь добавим ей форму: в дереве обработки правой кнопкой на «Формы» → «Добавить» → «Форма обработки». Откроется конструктор управляемой формы.
Добавляем кнопку и код
На форму добавим команду с кнопкой. В редакторе формы на вкладке «Команды» создаём команду Поздороваться, перетаскиваем её на форму (появляется кнопка), и по двойному щелчку на команде платформа создаёт заготовку обработчика в модуле формы. Пишем внутри:
&НаКлиенте
Процедура Поздороваться(Команда)
Сообщить("Привет, мир!");
КонецПроцедурыРезультат (после запуска и нажатия кнопки внизу окна появится служебное сообщение):
Привет, мир!Разбираем построчно
&НаКлиенте— директива компиляции. Она говорит платформе: этот код выполняется на стороне клиента (на компьютере пользователя). Обработчики кнопок почти всегда клиентские, потому что кнопку нажимает пользователь.Процедура Поздороваться(Команда)— объявление процедуры.Команда— параметр, который платформа передаёт автоматически (сама команда, вызвавшая обработчик).Сообщить("Привет, мир!");— вызов глобального методаСообщить, который выводит текст в окно служебных сообщений. Обратите внимание на точку с запятой в конце оператора — в 1С она обязательна.КонецПроцедуры— закрывающая конструкция. В 1С у каждой открывающей конструкции есть парная закрывающая:Процедура…КонецПроцедуры,Если…КонецЕсли.
Как это работает
Запускаем режим «Предприятие» (F5), открываем нашу обработку (Файл → Открыть → выбрать .epf). Пользователь видит форму с кнопкой. Нажатие кнопки вызывает клиентскую процедуру Поздороваться, и метод Сообщить выводит строку в панель сообщений внизу окна. Никакого обращения к базе данных здесь нет — всё происходит на клиенте, поэтому директивы &НаСервере не потребовалось.
Частые ошибки
Забытая точка с запятой в конце оператора — классика, платформа сразу подчеркнёт ошибку. Пропущенная директива &НаКлиенте перед процедурой-обработчиком приведёт к тому, что платформа не поймёт, где выполнять код. И ещё: Сообщить() — устаревающий способ, в современных решениях для показа сообщений пользователю применяют объект СообщениеПользователю, но для первого знакомства Сообщить нагляднее всего.
Итоги
- Внешняя обработка (.epf) — отдельный файл, удобный полигон для экспериментов
- Обработчик кнопки — клиентская процедура с директивой
&НаКлиенте Сообщить("текст");выводит сообщение пользователю; точка с запятой обязательна- Каждой открывающей конструкции (Процедура) соответствует закрывающая (КонецПроцедуры)