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

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

Как пишется программа 1С: от конфигуратора до первого кода

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

Программа 1С не пишется на классических языках вроде Python или C# — вся разработка ведётся внутри специальной среды, которая называется «Конфигуратор». Код создаётся на встроенном языке платформы 1С:Предприятие, синтаксис которого похож на Pascal и Basic, а ключевые слова можно писать на русском языке. При этом большая часть логики системы описывается не кодом, а декларативно — через объекты метаданных: справочники, документы, регистры, отчёты.

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

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

Из чего состоит программа 1С: платформа, конфигурация, данные

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

Когда говорят «написать программу на 1С», обычно имеют в виду создание или изменение конфигурации. Платформу пишет только фирма «1С», а разработчик прикладного решения работает с метаданными и встроенным языком. Это принципиально меняет подход: вместо проектирования базы данных и интерфейса с нуля разработчик описывает предметную область, а платформа сама строит таблицы, формы и запросы.

Конфигуратор — среда, в которой пишется 1С

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

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

Порядок действий при доработке
  1. 1
    Сделайте резервную копию информационной базы
  2. 2
    Откройте конфигуратор и найдите нужный объект в дереве конфигурации
  3. 3
    Внесите изменения в свойства объекта или в его модуль
  4. 4
    Выполните обновление конфигурации базы данных (F7)
  5. 5
    Запустите режим предприятия и проверьте результат на тестовых данных

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

Объекты метаданных: что создаёт разработчик

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

Для каждого объекта платформа автоматически создаёт таблицы в базе данных, стандартные формы списка и элемента, а также набор предопределённых событий. Разработчику остаётся описать состав реквизитов и при необходимости дописать код. Именно поэтому простую учётную систему на 1С можно собрать за часы, а не недели.

ОбъектНазначениеПример
СправочникХранение списков и классификаторовНоменклатура, контрагенты
ДокументРегистрация операций, проведениеРеализация товаров, приходный ордер
Регистр накопленияОстатки и оборотыТовары на складах
Регистр сведенийЗначения в разрезе измерений и периодовЦены номенклатуры
ОтчётВыборка и представление данныхОстатки склада, продажи за период

Встроенный язык 1С: синтаксис и модули

Встроенный язык платформы напоминает Pascal по структуре: есть процедуры, функции, условия «Если … Тогда … Иначе … КонецЕсли», циклы «Для … Цикл» и «Пока … Цикл». Операторы завершаются точкой с запятой, регистр букв не имеет значения. Ключевые слова можно писать по-русски и по-английски — платформа понимает оба варианта, хотя в российской практике принят русский синтаксис.

Код размещается не в отдельных файлах, а в модулях, привязанных к объектам: модуль объекта, модуль формы, модуль менеджера, общие модули. Модуль объекта документа содержит обработчики событий вроде «ОбработкаПроведения», модуль формы — логику интерфейса, разделённую на клиентскую и серверную части директивами «&НаКлиенте» и «&НаСервере».

bsl
Процедура ОбработкаПроведения(Отказ, РежимПроведения)

	Для Каждого СтрокаТовара Из Товары Цикл
		Движение = Движения.ТоварыНаСкладах.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;
		Движение.Номенклатура = СтрокаТовара.Номенклатура;
		Движение.Количество = СтрокаТовара.Количество;
	КонецЦикла;

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

Для выборки данных используется собственный язык запросов, декларативно похожий на SQL, но работающий с именами объектов конфигурации, а не физических таблиц. Запрос возвращает результат, который обходится в цикле или выгружается в таблицу значений. Сочетание запросов и встроенного языка покрывает подавляющее большинство прикладных задач.

Как создать первую доработку: практический сценарий

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

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

Следующий шаг — доработка самой конфигурации, например добавление нового реквизита в документ. Здесь важно понимать разницу между типовой и изменённой конфигурацией: любые правки затрудняют последующие обновления, поэтому изменения принято минимизировать и документировать.

Отладка и проверка результата

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

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

Контрольные точки

Как проверить результат

Обновление конфигурации базы данных
Норма

Завершается без сообщений об ошибках

Тревожный признак

Ошибки реструктуризации или требование монопольного доступа

Проведение документа
Норма

Документ проводится, движения появляются в регистрах

Тревожный признак

Сообщение об ошибке, движения отсутствуют или дублируются

Работа пользователей
Норма

Формы открываются, права действуют как раньше

Тревожный признак

Ошибки доступа, «поле не обнаружено» при открытии

Типичные ошибки начинающих разработчиков

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

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

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

Способы доработки

Внешняя обработка или отчёт

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

Расширение конфигурации

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

Прямая доработка конфигурации

Даёт полную свободу, но снимает объекты с поддержки и усложняет обновления

Границы самостоятельной работы и риски

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

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

Итог

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

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

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

Нужно ли знать другой язык программирования, чтобы писать на 1С?

Нет, встроенный язык 1С самодостаточен и может быть первым языком. Знание основ SQL помогает быстрее освоить язык запросов, а общее понимание алгоритмов ускоряет обучение, но не является обязательным условием.

Можно ли писать код 1С на английском языке?

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

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

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

Где взять среду для обучения разработке на 1С?

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

Почему изменения в конфигураторе не видны в режиме предприятия?

Конфигуратор редактирует основную конфигурацию, а пользователи работают с конфигурацией базы данных. Чтобы изменения вступили в силу, нужно выполнить обновление конфигурации базы данных (клавиша F7 или пункт меню «Конфигурация — Обновить конфигурацию базы данных»).

Опасно ли запускать внешние обработки из интернета?

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