Разработка и Конфигурация · 12 мин
Как пишется программа 1С: от конфигуратора до первого кода
Как пишется программа 1С: встроенный язык, конфигуратор, объекты метаданных, модули и отладка. Практическое руководство для начинающих разработчиков 1С.
Программа 1С не пишется на классических языках вроде Python или C# — вся разработка ведётся внутри специальной среды, которая называется «Конфигуратор». Код создаётся на встроенном языке платформы 1С:Предприятие, синтаксис которого похож на Pascal и Basic, а ключевые слова можно писать на русском языке. При этом большая часть логики системы описывается не кодом, а декларативно — через объекты метаданных: справочники, документы, регистры, отчёты.
Понимание того, как устроена разработка в 1С, важно не только программистам. Бухгалтеры и руководители, которые заказывают доработки, смогут точнее ставить задачи и оценивать сроки, если представляют, из чего состоит конфигурация и где именно «живёт» код. А начинающий разработчик получит карту: с чего начать, что изучать и как проверить первый результат.
Ниже разобран весь путь: устройство платформы, роль конфигуратора, структура встроенного языка, создание первого объекта, отладка, типичные ошибки и ограничения самостоятельной доработки типовых конфигураций.
Из чего состоит программа 1С: платформа, конфигурация, данные
Продукт 1С — это не монолитная программа, а три отдельных слоя. Платформа — исполняемая среда, которая устанавливается на компьютер или сервер и умеет запускать прикладные решения. Конфигурация — описание прикладной логики: какие есть документы, справочники, отчёты и как они связаны. Информационная база — сами данные пользователей, которые хранятся в файле или на SQL-сервере.
Когда говорят «написать программу на 1С», обычно имеют в виду создание или изменение конфигурации. Платформу пишет только фирма «1С», а разработчик прикладного решения работает с метаданными и встроенным языком. Это принципиально меняет подход: вместо проектирования базы данных и интерфейса с нуля разработчик описывает предметную область, а платформа сама строит таблицы, формы и запросы.
Конфигуратор — среда, в которой пишется 1С
Вся разработка ведётся в режиме «Конфигуратор», который запускается из того же ярлыка, что и пользовательский режим «Предприятие», — через выбор соответствующего варианта в стартовом окне. Внутри конфигуратора главным инструментом является дерево конфигурации: иерархический список всех объектов, из которых состоит решение.
Типовой порядок работы выглядит так: разработчик открывает конфигуратор, находит или создаёт нужный объект, редактирует его свойства и модули, затем обновляет конфигурацию базы данных (клавиша F7) и запускает режим предприятия для проверки. Пока обновление не выполнено, изменения видны только в конфигураторе, но не работают в пользовательском режиме.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и найдите нужный объект в дереве конфигурации
- 3Внесите изменения в свойства объекта или в его модуль
- 4Выполните обновление конфигурации базы данных (F7)
- 5Запустите режим предприятия и проверьте результат на тестовых данных
Важный нюанс: если база файловая и с ней работают пользователи, обновление конфигурации базы данных потребует монопольного доступа — всех придётся попросить выйти. В клиент-серверном варианте действует механизм динамического обновления, но он подходит не для всех изменений и требует осторожности.
Объекты метаданных: что создаёт разработчик
Конфигурация строится из типовых строительных блоков, каждый из которых решает свою задачу. Справочники хранят нормативно-справочную информацию: номенклатуру, контрагентов, сотрудников. Документы фиксируют хозяйственные операции и имеют уникальное свойство — проведение, то есть формирование движений по регистрам. Регистры накопления и сведений хранят итоговые и аналитические данные, а отчёты извлекают их в удобном виде.
Для каждого объекта платформа автоматически создаёт таблицы в базе данных, стандартные формы списка и элемента, а также набор предопределённых событий. Разработчику остаётся описать состав реквизитов и при необходимости дописать код. Именно поэтому простую учётную систему на 1С можно собрать за часы, а не недели.
| Объект | Назначение | Пример |
|---|---|---|
| Справочник | Хранение списков и классификаторов | Номенклатура, контрагенты |
| Документ | Регистрация операций, проведение | Реализация товаров, приходный ордер |
| Регистр накопления | Остатки и обороты | Товары на складах |
| Регистр сведений | Значения в разрезе измерений и периодов | Цены номенклатуры |
| Отчёт | Выборка и представление данных | Остатки склада, продажи за период |
Встроенный язык 1С: синтаксис и модули
Встроенный язык платформы напоминает Pascal по структуре: есть процедуры, функции, условия «Если … Тогда … Иначе … КонецЕсли», циклы «Для … Цикл» и «Пока … Цикл». Операторы завершаются точкой с запятой, регистр букв не имеет значения. Ключевые слова можно писать по-русски и по-английски — платформа понимает оба варианта, хотя в российской практике принят русский синтаксис.
Код размещается не в отдельных файлах, а в модулях, привязанных к объектам: модуль объекта, модуль формы, модуль менеджера, общие модули. Модуль объекта документа содержит обработчики событий вроде «ОбработкаПроведения», модуль формы — логику интерфейса, разделённую на клиентскую и серверную части директивами «&НаКлиенте» и «&НаСервере».
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Для Каждого СтрокаТовара Из Товары Цикл
Движение = Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовара.Номенклатура;
Движение.Количество = СтрокаТовара.Количество;
КонецЦикла;
КонецПроцедурыДля выборки данных используется собственный язык запросов, декларативно похожий на SQL, но работающий с именами объектов конфигурации, а не физических таблиц. Запрос возвращает результат, который обходится в цикле или выгружается в таблицу значений. Сочетание запросов и встроенного языка покрывает подавляющее большинство прикладных задач.
Как создать первую доработку: практический сценарий
Разберём типичную учебную задачу — добавить внешнюю обработку, которая выводит список номенклатуры с остатками. Внешние обработки удобны для первых шагов, потому что не изменяют конфигурацию и безопасны: их можно удалить без последствий.
В конфигураторе через меню «Файл — Новый» создаётся внешняя обработка. У неё добавляется форма, на форму помещается табличное поле и кнопка. В модуле формы пишется обработчик нажатия кнопки: формируется запрос к регистру остатков, результат выводится в табличное поле. После сохранения файл обработки открывается в режиме предприятия через «Файл — Открыть» — и результат виден сразу.
Следующий шаг — доработка самой конфигурации, например добавление нового реквизита в документ. Здесь важно понимать разницу между типовой и изменённой конфигурацией: любые правки затрудняют последующие обновления, поэтому изменения принято минимизировать и документировать.
Отладка и проверка результата
Платформа включает полноценный отладчик: точки останова ставятся кликом по полю слева от строки кода, отладка запускается через меню «Отладка — Начать отладку». При остановке доступны просмотр значений переменных, табло выражений и пошаговое выполнение. Для клиент-серверного режима отладку нужно предварительно включить на сервере.
Проверка результата доработки строится на контрольных точках: объект открывается без ошибок, документ проводится, движения по регистрам соответствуют ожиданиям, отчёт показывает корректные цифры на тестовом примере с заранее известным ответом. Полезно проверить и граничные случаи: пустые табличные части, нулевые количества, закрытые периоды.
Как проверить результат
Завершается без сообщений об ошибках
Ошибки реструктуризации или требование монопольного доступа
Документ проводится, движения появляются в регистрах
Сообщение об ошибке, движения отсутствуют или дублируются
Формы открываются, права действуют как раньше
Ошибки доступа, «поле не обнаружено» при открытии
Типичные ошибки начинающих разработчиков
Самая распространённая ошибка — правка типовой конфигурации «в лоб» без резервной копии и без понимания механизма поддержки. После такого обновление на новый релиз превращается в ручное сливание изменений, а при ошибке реструктуризации можно потерять данные. Второй класс ошибок — обращение к данным в цикле вместо одного запроса: на больших объёмах это приводит к катастрофическому падению производительности.
Отдельно стоит упомянуть игнорирование механизма расширений конфигурации. Расширения позволяют добавлять реквизиты, формы и обработчики, не снимая типовую конфигурацию с поддержки, и во многих случаях это правильная альтернатива прямой доработке.
Способы доработки
Подходит для разовых операций и дополнительных отчётов; не меняет конфигурацию, но не может расширять типовые формы
Подходит для добавления реквизитов, печатных форм и обработчиков; сохраняет поддержку типовой конфигурации, но имеет ограничения по изменению структуры
Даёт полную свободу, но снимает объекты с поддержки и усложняет обновления
Границы самостоятельной работы и риски
Самостоятельно безопасно осваивать конфигуратор на копии базы, создавать внешние обработки, несложные расширения и учебные конфигурации. К работе в боевой базе — изменению модулей проведения, регламентных заданий, обмена данными — стоит переходить только с опытом и обязательным резервным копированием перед каждым изменением.
Ещё один риск — лицензионный: конфигурации защищены, а вмешательство в механизмы защиты недопустимо. Изучение встроенного языка лучше строить на официальной документации, демонстрационных конфигурациях и учебных версиях платформы, которые распространяются легально.
Что важно запомнить
Программа 1С пишется в конфигураторе на встроенном языке: основу составляют объекты метаданных, код размещается в их модулях и обрабатывает события. Начинайте с внешних обработок на копии базы, используйте расширения вместо прямой доработки и всегда делайте резервную копию перед обновлением конфигурации базы данных.
Частые вопросы
Нужно ли знать другой язык программирования, чтобы писать на 1С?
Нет, встроенный язык 1С самодостаточен и может быть первым языком. Знание основ SQL помогает быстрее освоить язык запросов, а общее понимание алгоритмов ускоряет обучение, но не является обязательным условием.
Можно ли писать код 1С на английском языке?
Да, платформа поддерживает английский синтаксис встроенного языка, и оба варианта можно смешивать. Однако в российских типовых конфигурациях и большинстве команд принят русский синтаксис, поэтому для чтения чужого кода его знать необходимо.
Чем расширение конфигурации отличается от доработки?
Расширение хранится отдельно от основной конфигурации и накладывается на неё при запуске. Типовая конфигурация при этом остаётся на поддержке и обновляется штатно, а расширение либо продолжает работать, либо требует небольшой адаптации. Прямая доработка встраивается в конфигурацию и усложняет каждое обновление.
Где взять среду для обучения разработке на 1С?
Существуют учебные версии платформы, которые легально используются для изучения встроенного языка и конфигурирования. Они имеют ограничения по сравнению с коммерческими версиями, но для освоения конфигуратора, языка и механизмов платформы их возможностей достаточно.
Почему изменения в конфигураторе не видны в режиме предприятия?
Конфигуратор редактирует основную конфигурацию, а пользователи работают с конфигурацией базы данных. Чтобы изменения вступили в силу, нужно выполнить обновление конфигурации базы данных (клавиша F7 или пункт меню «Конфигурация — Обновить конфигурацию базы данных»).
Опасно ли запускать внешние обработки из интернета?
Да. Внешняя обработка — это исполняемый код, который может читать и изменять данные базы. Запускайте только обработки из доверенных источников, предварительно проверяйте их на копии базы и, при наличии навыков, просматривайте код модуля в конфигураторе.