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

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

Что можно сделать на языке 1С

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

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

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

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

Доработка документов и бизнес-логики учёта

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

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

Типовые сценарии доработки документов:

  • автоматическое заполнение реквизитов по данным связанных документов (договора, заказа);
  • дополнительные проверки при проведении: остатки на складе, корректность цен, запрет отгрузки в выходные;
  • формирование движений по собственным регистрам параллельно с типовыми;
  • создание связанных документов «на основании» с нестандартными правилами заполнения.

Создание отчётов и аналитики

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

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

Пример: программное формирование отчёта

// Получение остатков по складу запросом

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

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

"ВЫБРАТЬ

| Остатки.Номенклатура КАК Номенклатура,

| Остатки.КоличествоОстаток КАК Остаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки";

Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса());

Запрос.УстановитьПараметр("Склад", Склад);

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

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

Внешние обработки и сервисные инструменты

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

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

Порядок создания простой обработки
  1. 1
    Создайте в конфигураторе внешнюю обработку (Файл → Новый → Внешняя обработка)
  2. 2
    Добавьте форму и разместите на ней реквизиты отбора и кнопку «Выполнить»
  3. 3
    В обработчике кнопки напишите запрос к данным с параметрами отбора
  4. 4
    Обойдите результат запроса циклом, измените объекты и запишите их с обработкой исключений
  5. 5
    Проверьте обработку на копии базы на небольшой выборке, затем на полном объёме

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

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

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

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

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

На языке 1С реализуют обмены с сайтами, маркетплейсами, банками, CRM и другими учётными системами. Платформа предоставляет объекты для работы с HTTP-запросами, файлами XML и JSON, текстовыми файлами и COM-соединениями. Этого достаточно для большинства интеграционных задач без привлечения внешних компонентов.

Характерные сценарии интеграции:

  • выгрузка каталога товаров и остатков на сайт по HTTP API;
  • загрузка заказов из интернет-магазина с созданием документов «Заказ клиента»;
  • обмен с банком: выгрузка платёжных поручений и загрузка выписок;
  • синхронизация справочников между двумя базами 1С через файлы или веб-сервисы;
  • публикация собственных HTTP-сервисов, чтобы внешние системы могли запрашивать данные из 1С.

Для чтения JSON используется объект «ЧтениеJSON», для HTTP-запросов — «HTTPСоединение» и «HTTPЗапрос». Асинхронность и фоновое выполнение длительных обменов реализуют через фоновые задания, чтобы не блокировать сеанс пользователя.

bsl
Соединение = Новый HTTPСоединение("api.example.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/orders");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    Чтение = Новый ЧтениеJSON;
    Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    Данные = ПрочитатьJSON(Чтение);
КонецЕсли;

Автоматизация рутинных операций и регламентные задания

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

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

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

Ограничения языка и когда нужен другой инструмент

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

Производительность тоже имеет границы: интерпретируемый код медленнее запросов к СУБД. Правило простое — всё, что можно выбрать и сгруппировать запросом, нужно делать запросом, а не циклом по выборке. Циклы оставляют для логики, которую невозможно выразить декларативно.

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

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

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

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

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

Проведение документа после доработки
Норма

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

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

Ошибки проведения, дубли движений, пропавшие проводки

Массовая обработка данных
Норма

Изменены только объекты из отбора, количество совпадает с контрольным, журнал регистрации без ошибок

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

Затронуты лишние объекты или часть объектов пропущена без сообщений

Интеграция с внешней системой
Норма

Коды ответов 2xx, данные в 1С совпадают с источником, ошибки логируются

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

Молчаливые сбои, расхождение количества загруженных и отправленных записей

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

На каком языке пишут в 1С — русском или английском?

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

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

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

Подходит ли язык 1С для изучения как первый язык программирования?

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

Что нельзя сделать на языке 1С без внешних компонентов?

Нельзя напрямую работать с драйверами устройств, выполнять сложную обработку изображений, использовать низкоуровневые сетевые протоколы и системные вызовы ОС. Такие задачи решают через внешние компоненты (Native API, COM) или отдельные сервисы, с которыми 1С обменивается по HTTP или через файлы.

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

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

Итог

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

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