Разработка и Конфигурация · 10 мин
Как научиться писать обработки в 1С
Как научиться писать обработки в 1С с нуля: базовые навыки, работа в конфигураторе, создание внешней обработки, отладка кода и типичные ошибки новичков.
Обработка в 1С — это самостоятельный прикладной объект, который выполняет определённое действие над данными: заполняет документы, выгружает сведения в файл, массово меняет реквизиты, формирует произвольные отчёты. Внешние обработки хранятся отдельным файлом с расширением .epf и подключаются к базе без изменения конфигурации, поэтому именно с них удобно начинать обучение программированию в 1С.
Навык написания обработок открывает две возможности. Во-первых, вы перестаёте зависеть от штатного функционала и решаете нестандартные задачи учёта самостоятельно. Во-вторых, это прямой путь к профессии разработчика 1С: обработки — самый простой объект для практики, где виден результат уже в первый день.
Чтобы научиться, не нужно профильное образование. Достаточно установленной платформы 1С, учебной базы и последовательной практики — от простейшей обработки с одной кнопкой до инструментов с запросами, табличными частями и выгрузкой данных. Ниже разобран конкретный маршрут обучения.
Что нужно знать до старта
Минимальный фундамент — понимание устройства 1С: что такое конфигурация, справочники, документы, регистры и как между ними связаны данные. Без этого вы не сможете осмысленно обращаться к объектам из кода. Если опыта работы с 1С нет совсем, потратьте несколько дней на роль пользователя: создайте контрагентов, номенклатуру, проведите документы в демобазе.
Второй обязательный элемент — встроенный язык 1С. Он проще большинства языков программирования: русскоязычный синтаксис, нет строгой типизации, среда сама подсказывает методы. Начните с базовых конструкций: переменные, условия Если...Тогда...КонецЕсли, циклы Для...Цикл и Для Каждого...Из...Цикл, процедуры и функции.
Третье — умение пользоваться синтакс-помощником. Это встроенный справочник по всем объектам и методам платформы, вызывается из конфигуратора. Опытные разработчики обращаются к нему постоянно, поэтому умение быстро находить описание нужного метода — сам по себе важный навык.
Как подготовить рабочее место
Для обучения нужна платформа 1С:Предприятие и отдельная учебная база. Никогда не экспериментируйте на рабочей базе компании: обработка с ошибкой в цикле способна изменить или удалить тысячи записей за секунды. Создайте копию рабочей базы или возьмите демонстрационную конфигурацию.
Основной инструмент разработчика — конфигуратор. Открывается из окна запуска 1С кнопкой «Конфигуратор». Войдите в учебную базу в этом режиме и осмотритесь: дерево конфигурации слева, меню, панели инструментов. Найдите в меню пункты «Файл — Новый» и «Отладка» — они понадобятся сразу.
Полезно сразу включить отображение номеров строк в редакторе кода и настроить автозамену — это ускорит набор типовых конструкций. Также проверьте, что у вашего пользователя в учебной базе есть полные права, иначе обработка не сможет записывать данные.
Создаём первую внешнюю обработку
Первая учебная обработка — классическое «Привет, мир»: форма с кнопкой, по нажатию которой выводится сообщение. Это займёт 10–15 минут и покажет полный цикл разработки: создание объекта, работа с формой, написание обработчика, запуск.
- 1Откройте конфигуратор учебной базы и выберите «Файл — Новый — Внешняя обработка»
- 2Задайте имя обработки, например «МояПерваяОбработка»
- 3Добавьте форму: в дереве обработки правой кнопкой — «Добавить форму»
- 4Перетащите на форму элемент «Команда» или кнопку, задайте заголовок «Выполнить»
- 5Создайте обработчик команды и напишите код: Сообщить("Привет, мир!");
- 6Сохраните обработку в файл .epf и откройте её в режиме «1С:Предприятие» через «Файл — Открыть»
- 7Нажмите кнопку и убедитесь, что сообщение появилось в панели сообщений
Пример кода обработчика кнопки для управляемой формы:
&НаКлиенте
Процедура ВыполнитьДействие(Команда)
Сообщить("Привет, мир! Моя первая обработка работает.");
КонецПроцедуры
Обратите внимание на директиву &НаКлиенте — она указывает, где выполняется код. Это одна из первых концепций, которую нужно понять: в управляемых формах код делится на клиентский и серверный, и обращение к данным базы возможно только на сервере.
Как работать с данными из кода
Следующий шаг после «Привет, мир» — обращение к реальным объектам базы. Начните со справочников: получите ссылку на элемент, прочитайте его реквизиты, измените значение и запишите. Например, найдите контрагента по наименованию и выведите его ИНН.
&НаСервере
Процедура НайтиКонтрагентаНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.Наименование КАК Наименование
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить(Результат.Наименование);
КонецЦикла;
КонецПроцедуры
Язык запросов — второй обязательный навык после встроенного языка. Большинство реальных обработок построены именно на запросах: выбрать документы за период, сгруппировать остатки, найти дубли. Осваивайте запросы постепенно: сначала простая выборка, затем условия ГДЕ, соединения таблиц, группировки и итоги.
Записывая объекты, помните о транзакциях. Если обработка меняет много объектов в цикле и на середине возникнет ошибка, часть данных окажется изменённой, а часть — нет. Для учебных задач достаточно запуска на копии базы, но в боевых инструментах используйте НачатьТранзакцию() и ЗафиксироватьТранзакцию().
Отладка: как находить ошибки в коде
Отладчик — главный инструмент обучения. Он позволяет выполнять код по шагам и видеть значения всех переменных в каждый момент. Через отладку вы не только ищете ошибки, но и изучаете, как платформа обрабатывает данные, — это ускоряет понимание в разы.
Чтобы отладить внешнюю обработку, включите в конфигураторе режим отладки («Отладка — Начать отладку»), откройте файл обработки в конфигураторе через «Файл — Открыть», поставьте точку останова клавишей F9 на нужной строке и выполните действие в режиме предприятия. Исполнение остановится на точке, и вы сможете шагать по коду клавишами F10/F11 и смотреть значения через «Вычислить выражение» (Shift+F9).
Типичная ошибка новичков — сообщение «Поле объекта не обнаружено». Оно означает, что вы обращаетесь к реквизиту, которого нет у объекта: опечатка в имени, другой тип объекта или обращение к реквизиту табличной части у шапки документа. В отладчике такие места находятся за минуту — просто посмотрите, что реально лежит в переменной.
Чему учиться дальше: маршрут усложнения
После первых простых обработок двигайтесь по нарастающей сложности. Каждая следующая задача должна добавлять один новый приём, а не пять сразу — так знания закрепляются.
Задачи для практики по уровням
Форма с кнопкой, вывод сообщений, перебор справочника, простой запрос с выводом в таблицу значений
Заполнение документов по данным запроса, массовое изменение реквизитов, выгрузка в CSV или табличный документ
Загрузка из Excel и файлов обмена, работа с СКД, регистрация обработки в механизме дополнительных отчётов, фоновое выполнение
Хорошая учебная задача на среднем уровне — обработка «Групповое изменение реквизита»: пользователь выбирает вид документов, период и новое значение реквизита, а обработка перезаписывает документы. Она охватывает форму с параметрами, запрос с отбором, цикл записи и обработку ошибок — почти весь базовый арсенал.
Параллельно изучайте чужой код. Открывайте типовые обработки из конфигурации, смотрите, как устроены процедуры, и пробуйте воспроизвести похожее своими руками. Разбор готовых решений даёт приёмы, которые редко описаны в учебниках.
Где брать знания и как закреплять навык
Основные источники — синтакс-помощник в конфигураторе, официальная документация платформы, учебные курсы и тематические форумы разработчиков. На форумах полезно не только задавать вопросы, но и читать чужие темы: реальные задачи с решениями — лучший учебный материал.
Закрепляйте каждую тему практикой в течение одного-двух дней, пока приём свеж в памяти. Ведите собственную библиотеку заготовок: рабочие фрагменты кода для запросов, записи объектов, выгрузки в файлы. Через несколько месяцев она станет вашим главным ускорителем.
Ориентировочный срок выхода на уверенный уровень — от двух до шести месяцев регулярной практики по несколько часов в неделю. Скорость зависит не от таланта, а от количества самостоятельно написанных и отлаженных обработок.
Что важно запомнить
Начните с основ встроенного языка и устройства конфигурации, создайте первую внешнюю обработку с кнопкой, освойте запросы и отладчик, усложняйте задачи постепенно. Работайте только на учебной базе и копиях — это главное правило безопасности данных.
Частые вопросы
Какую версию платформы 1С выбрать для обучения?
Подойдёт любая актуальная версия платформы 8.3 — базовые механизмы везде одинаковы. Есть учебная версия платформы, которую можно использовать для обучения без коммерческой лицензии; её ограничения не мешают писать и отлаживать обработки.
Можно ли научиться писать обработки без опыта программирования?
Да. Встроенный язык 1С специально спроектирован простым: русскоязычный синтаксис, понятные конструкции, подсказки среды. Многие разработчики 1С пришли из бухгалтерии и внедрения, начав именно с автоматизации собственных рутинных задач.
Чем внешняя обработка отличается от изменения конфигурации?
Внешняя обработка — отдельный файл .epf, который не меняет конфигурацию и не мешает её обновлению. Изменение конфигурации требует правок в конфигураторе и усложняет обновления. Для разовых и вспомогательных задач всегда предпочтительнее внешняя обработка.
Как подключить обработку, чтобы ей пользовались сотрудники?
Через механизм «Дополнительные отчеты и обработки» в разделе администрирования: обработка регистрируется в базе, настраивается доступ по ролям, и она появляется у пользователей в интерфейсе. Для этого в модуле обработки нужно реализовать процедуру СведенияОВнешнейОбработке по стандартному шаблону.
Что делать, если обработка зависла при выполнении?
Чаще всего причина — тяжёлый запрос без отборов или бесконечный цикл. Прервите сеанс через консоль кластера или диспетчер задач на учебной базе, затем откройте код в отладчике и проверьте условия выхода из цикла и отборы в запросе. На больших таблицах всегда ограничивайте выборку периодом и условиями.