К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как научиться писать обработки в 1С

Как научиться писать обработки в 1С с нуля: базовые навыки, работа в конфигураторе, создание внешней обработки, отладка кода и типичные ошибки новичков.

Обработка в 1С — это самостоятельный прикладной объект, который выполняет определённое действие над данными: заполняет документы, выгружает сведения в файл, массово меняет реквизиты, формирует произвольные отчёты. Внешние обработки хранятся отдельным файлом с расширением .epf и подключаются к базе без изменения конфигурации, поэтому именно с них удобно начинать обучение программированию в 1С.

Навык написания обработок открывает две возможности. Во-первых, вы перестаёте зависеть от штатного функционала и решаете нестандартные задачи учёта самостоятельно. Во-вторых, это прямой путь к профессии разработчика 1С: обработки — самый простой объект для практики, где виден результат уже в первый день.

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

Что нужно знать до старта

Минимальный фундамент — понимание устройства 1С: что такое конфигурация, справочники, документы, регистры и как между ними связаны данные. Без этого вы не сможете осмысленно обращаться к объектам из кода. Если опыта работы с 1С нет совсем, потратьте несколько дней на роль пользователя: создайте контрагентов, номенклатуру, проведите документы в демобазе.

Второй обязательный элемент — встроенный язык 1С. Он проще большинства языков программирования: русскоязычный синтаксис, нет строгой типизации, среда сама подсказывает методы. Начните с базовых конструкций: переменные, условия Если...Тогда...КонецЕсли, циклы Для...Цикл и Для Каждого...Из...Цикл, процедуры и функции.

Третье — умение пользоваться синтакс-помощником. Это встроенный справочник по всем объектам и методам платформы, вызывается из конфигуратора. Опытные разработчики обращаются к нему постоянно, поэтому умение быстро находить описание нужного метода — сам по себе важный навык.

Как подготовить рабочее место

Для обучения нужна платформа 1С:Предприятие и отдельная учебная база. Никогда не экспериментируйте на рабочей базе компании: обработка с ошибкой в цикле способна изменить или удалить тысячи записей за секунды. Создайте копию рабочей базы или возьмите демонстрационную конфигурацию.

Основной инструмент разработчика — конфигуратор. Открывается из окна запуска 1С кнопкой «Конфигуратор». Войдите в учебную базу в этом режиме и осмотритесь: дерево конфигурации слева, меню, панели инструментов. Найдите в меню пункты «Файл — Новый» и «Отладка» — они понадобятся сразу.

Полезно сразу включить отображение номеров строк в редакторе кода и настроить автозамену — это ускорит набор типовых конструкций. Также проверьте, что у вашего пользователя в учебной базе есть полные права, иначе обработка не сможет записывать данные.

Создаём первую внешнюю обработку

Первая учебная обработка — классическое «Привет, мир»: форма с кнопкой, по нажатию которой выводится сообщение. Это займёт 10–15 минут и покажет полный цикл разработки: создание объекта, работа с формой, написание обработчика, запуск.

Порядок действий
  1. 1
    Откройте конфигуратор учебной базы и выберите «Файл — Новый — Внешняя обработка»
  2. 2
    Задайте имя обработки, например «МояПерваяОбработка»
  3. 3
    Добавьте форму: в дереве обработки правой кнопкой — «Добавить форму»
  4. 4
    Перетащите на форму элемент «Команда» или кнопку, задайте заголовок «Выполнить»
  5. 5
    Создайте обработчик команды и напишите код: Сообщить("Привет, мир!");
  6. 6
    Сохраните обработку в файл .epf и откройте её в режиме «1С:Предприятие» через «Файл — Открыть»
  7. 7
    Нажмите кнопку и убедитесь, что сообщение появилось в панели сообщений

Пример кода обработчика кнопки для управляемой формы:

&НаКлиенте

Процедура ВыполнитьДействие(Команда)

Сообщить("Привет, мир! Моя первая обработка работает.");

КонецПроцедуры

Обратите внимание на директиву &НаКлиенте — она указывает, где выполняется код. Это одна из первых концепций, которую нужно понять: в управляемых формах код делится на клиентский и серверный, и обращение к данным базы возможно только на сервере.

Как работать с данными из кода

Следующий шаг после «Привет, мир» — обращение к реальным объектам базы. Начните со справочников: получите ссылку на элемент, прочитайте его реквизиты, измените значение и запишите. Например, найдите контрагента по наименованию и выведите его ИНН.

&НаСервере

Процедура НайтиКонтрагентаНаСервере()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ ПЕРВЫЕ 10

| Контрагенты.Ссылка КАК Ссылка,

| Контрагенты.Наименование КАК Наименование

|ИЗ

| Справочник.Контрагенты КАК Контрагенты";

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл

Сообщить(Результат.Наименование);

КонецЦикла;

КонецПроцедуры

Язык запросов — второй обязательный навык после встроенного языка. Большинство реальных обработок построены именно на запросах: выбрать документы за период, сгруппировать остатки, найти дубли. Осваивайте запросы постепенно: сначала простая выборка, затем условия ГДЕ, соединения таблиц, группировки и итоги.

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

Отладка: как находить ошибки в коде

Отладчик — главный инструмент обучения. Он позволяет выполнять код по шагам и видеть значения всех переменных в каждый момент. Через отладку вы не только ищете ошибки, но и изучаете, как платформа обрабатывает данные, — это ускоряет понимание в разы.

Чтобы отладить внешнюю обработку, включите в конфигураторе режим отладки («Отладка — Начать отладку»), откройте файл обработки в конфигураторе через «Файл — Открыть», поставьте точку останова клавишей F9 на нужной строке и выполните действие в режиме предприятия. Исполнение остановится на точке, и вы сможете шагать по коду клавишами F10/F11 и смотреть значения через «Вычислить выражение» (Shift+F9).

Типичная ошибка новичков — сообщение «Поле объекта не обнаружено». Оно означает, что вы обращаетесь к реквизиту, которого нет у объекта: опечатка в имени, другой тип объекта или обращение к реквизиту табличной части у шапки документа. В отладчике такие места находятся за минуту — просто посмотрите, что реально лежит в переменной.

Чему учиться дальше: маршрут усложнения

После первых простых обработок двигайтесь по нарастающей сложности. Каждая следующая задача должна добавлять один новый приём, а не пять сразу — так знания закрепляются.

Задачи для практики по уровням

Начальный уровень

Форма с кнопкой, вывод сообщений, перебор справочника, простой запрос с выводом в таблицу значений

Средний уровень

Заполнение документов по данным запроса, массовое изменение реквизитов, выгрузка в CSV или табличный документ

Продвинутый уровень

Загрузка из Excel и файлов обмена, работа с СКД, регистрация обработки в механизме дополнительных отчётов, фоновое выполнение

Хорошая учебная задача на среднем уровне — обработка «Групповое изменение реквизита»: пользователь выбирает вид документов, период и новое значение реквизита, а обработка перезаписывает документы. Она охватывает форму с параметрами, запрос с отбором, цикл записи и обработку ошибок — почти весь базовый арсенал.

Параллельно изучайте чужой код. Открывайте типовые обработки из конфигурации, смотрите, как устроены процедуры, и пробуйте воспроизвести похожее своими руками. Разбор готовых решений даёт приёмы, которые редко описаны в учебниках.

Типичные ошибки новичков
01
Тестирование на рабочей базе — одна ошибка в цикле портит реальные данные, восстановление возможно только из копии
02
Обращение к базе из клиентского кода — приводит к ошибкам компиляции или неработающей обработке в тонком клиенте
03
Запись объектов в цикле без проверок — при ошибке часть данных изменена, часть нет, итоговое состояние непредсказуемо
04
Копирование чужого кода без понимания — обработка работает в одной конфигурации и падает в другой из-за отличающихся реквизитов
05
Игнорирование отладчика — поиск ошибки «на глаз» занимает часы вместо минут

Где брать знания и как закреплять навык

Основные источники — синтакс-помощник в конфигураторе, официальная документация платформы, учебные курсы и тематические форумы разработчиков. На форумах полезно не только задавать вопросы, но и читать чужие темы: реальные задачи с решениями — лучший учебный материал.

Закрепляйте каждую тему практикой в течение одного-двух дней, пока приём свеж в памяти. Ведите собственную библиотеку заготовок: рабочие фрагменты кода для запросов, записи объектов, выгрузки в файлы. Через несколько месяцев она станет вашим главным ускорителем.

Ориентировочный срок выхода на уверенный уровень — от двух до шести месяцев регулярной практики по несколько часов в неделю. Скорость зависит не от таланта, а от количества самостоятельно написанных и отлаженных обработок.

Итог

Что важно запомнить

Начните с основ встроенного языка и устройства конфигурации, создайте первую внешнюю обработку с кнопкой, освойте запросы и отладчик, усложняйте задачи постепенно. Работайте только на учебной базе и копиях — это главное правило безопасности данных.

Частые вопросы

Какую версию платформы 1С выбрать для обучения?

Подойдёт любая актуальная версия платформы 8.3 — базовые механизмы везде одинаковы. Есть учебная версия платформы, которую можно использовать для обучения без коммерческой лицензии; её ограничения не мешают писать и отлаживать обработки.

Можно ли научиться писать обработки без опыта программирования?

Да. Встроенный язык 1С специально спроектирован простым: русскоязычный синтаксис, понятные конструкции, подсказки среды. Многие разработчики 1С пришли из бухгалтерии и внедрения, начав именно с автоматизации собственных рутинных задач.

Чем внешняя обработка отличается от изменения конфигурации?

Внешняя обработка — отдельный файл .epf, который не меняет конфигурацию и не мешает её обновлению. Изменение конфигурации требует правок в конфигураторе и усложняет обновления. Для разовых и вспомогательных задач всегда предпочтительнее внешняя обработка.

Как подключить обработку, чтобы ей пользовались сотрудники?

Через механизм «Дополнительные отчеты и обработки» в разделе администрирования: обработка регистрируется в базе, настраивается доступ по ролям, и она появляется у пользователей в интерфейсе. Для этого в модуле обработки нужно реализовать процедуру СведенияОВнешнейОбработке по стандартному шаблону.

Что делать, если обработка зависла при выполнении?

Чаще всего причина — тяжёлый запрос без отборов или бесконечный цикл. Прервите сеанс через консоль кластера или диспетчер задач на учебной базе, затем откройте код в отладчике и проверьте условия выхода из цикла и отборы в запросе. На больших таблицах всегда ограничивайте выборку периодом и условиями.