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

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

Что программируют на 1С: реальные задачи разработчика

Что программируют на 1С: документы, отчёты, обмены данными, печатные формы и интеграции. Разбор объектов конфигурации, примеры кода и типичные задачи разработчика.

На 1С программируют не абстрактные алгоритмы, а конкретные бизнес-процессы: проведение документов, расчёт зарплаты, формирование отчётов, обмен данными с сайтами и банками. Язык 1С (встроенный язык платформы) заточен под работу с прикладными объектами — справочниками, документами, регистрами, — поэтому код разработчика всегда привязан к учётной логике конкретной компании.

Большая часть работы — это не создание конфигурации «с нуля», а доработка типовых решений: «1С:Бухгалтерия», «1С:Зарплата и управление персоналом», «1С:Управление торговлей», «1С:ERP». Разработчик добавляет новые реквизиты, меняет проведение документов, создаёт отчёты и обработки, настраивает интеграции. Ниже разберём, какие именно задачи решают кодом и какие объекты платформы при этом программируют.

Документы и их проведение — ядро программирования в 1С

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

Типичные доработки в этой области: добавление проверок перед проведением (нельзя продать товар, которого нет на остатках; нельзя провести документ задним числом без прав), автоматическое заполнение полей по условиям, блокировка проведения при превышении лимита по договору. Такие проверки пишут в обработчиках ОбработкаПроверкиЗаполнения и ОбработкаПроведения.

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

Регистры: где хранятся итоги и как их программируют

Регистры накопления, сведений и бухгалтерии — это таблицы, в которые документы пишут свои движения. Программируя на 1С, разработчик определяет структуру регистра (измерения, ресурсы, реквизиты) и код, который формирует записи. Например, регистр сведений «Цены номенклатуры» заполняется документом «Установка цен», а регистр накопления «Продажи» — документами реализации.

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

Отчёты и обработки: то, что видит пользователь

Отчёты программируют двумя способами: на системе компоновки данных (СКД), где запрос и настройки описываются декларативно, и полностью программно, когда результат собирается в табличный документ кодом. На практике чаще всего пишут запрос к данным, настраивают СКД и добавляют код в событиях — например, для расчёта нестандартных показателей или условного оформления строк.

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

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

Печатные формы и документы на выдачу

Печатные формы — счета, накладные, акты, УПД, доверенности — программируют как макеты табличных документов с областями и параметрами, которые заполняются кодом. Разработчик создаёт макет, описывает процедуру печати и подключает её к документу через механизм дополнительных печатных форм или команду печати.

Частые требования: вывод штрихкодов и QR-кодов, печать на бланке строгой формы, склеивание нескольких документов в один PDF, автоматическая отправка печатной формы по электронной почте контрагенту. Всё это решается кодом на встроенном языке с использованием объектов ТабличныйДокумент и почтовых механизмов платформы.

Обмены данными и интеграции

Значительная часть работы программиста 1С — интеграции: обмен с сайтом на 1С-Битрикс или другой CMS, выгрузка каталога на маркетплейсы, загрузка банковских выписок, передача данных в ЭДО, синхронизация между «Управлением торговлей» и «Бухгалтерией». Программируют их через HTTP-запросы к API, веб-сервисы, файловые обмены (XML, JSON, CSV) или планы обмена платформы.

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

Расчётные механизмы: зарплата, налоги, себестоимость

Самая сложная область программирования в 1С — периодические расчёты. В ЗУП это начисления и удержания с учётом отработанного времени, среднего заработка, стажа и кадровых событий. В ERP и бухгалтерии — расчёт себестоимости, распределение затрат, амортизация, налоговые регистры. Такие механизмы строятся на регистрах расчёта с вытесняющими видами расчёта и базовыми периодами.

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

Сравнение вариантов доработки

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

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

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

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

Изменение конфигурации

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

Какие навыки и инструменты нужны для программирования в 1С

Базовый набор разработчика: встроенный язык 1С, язык запросов, система компоновки данных, конфигуратор и отладчик. Для командной работы — хранилище конфигурации или EDT с Git. Полезно понимать клиент-серверную архитектуру: какой код выполняется на клиенте, какой на сервере, и почему в тонком клиенте нельзя напрямую обращаться к базе.

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

Порядок освоения разработки на 1С
  1. 1
    Изучите встроенный язык и объектную модель: справочники, документы, регистры.
  2. 2
    Освойте язык запросов и виртуальные таблицы регистров.
  3. 3
    Напишите первую внешнюю обработку и печатную форму.
  4. 4
    Создайте отчёт на СКД с настройками для пользователя.
  5. 5
    Научитесь дорабатывать типовые объекты через расширения.
  6. 6
    Освойте отладку, замеры производительности и работу с транзакциями.
Итог

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

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

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

Можно ли программировать на 1С без знания других языков?

Да, встроенный язык 1С часто становится первым языком разработчика. Для большинства задач достаточно его самого, языка запросов и СКД. Знание SQL, JavaScript или Python понадобится только для интеграций и смежных систем.

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

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

Что чаще всего заказывают у программиста 1С?

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

Опасно ли дорабатывать проведение типовых документов?

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

С чего начать, чтобы научиться программировать на 1С?

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