Разработка и Конфигурация · 11 мин
Что пишут на 1С: язык, задачи и примеры из практики
Разбираем, что пишут на 1С: встроенный язык, типовые задачи разработки, расширения, внешние обработки, интеграции и примеры кода для практики.
Фраза «пишут на 1С» обычно означает разработку на встроенном языке платформы «1С:Предприятие». Это полноценный язык программирования с русским и английским синтаксисом, который работает внутри платформы и опирается на её объекты: справочники, документы, регистры, отчёты. На нём не пишут операционные системы или игры — язык заточен под учётные и бизнес-задачи: проведение документов, расчёт остатков, формирование отчётов, обмен данными.
Практический смысл вопроса прост: понять, какие именно программные продукты создают разработчики 1С и что реально можно сделать своими силами. Круг таких работ шире, чем кажется: от небольшой внешней печатной формы до полноценного расширения конфигурации и интеграции с сайтом или складским оборудованием.
На каком языке пишут в 1С
Встроенный язык 1С ближе всего по духу к языкам высокого уровня с динамической типизацией: переменные не требуют объявления типа заранее, есть процедуры и функции, циклы, условия, работа со строками, датами, массивами, структурами и таблицами значений. Ключевая особенность — тесная связь с метаданными конфигурации. Разработчик не создаёт таблицы базы данных вручную: он описывает объекты (например, документ «РеализацияТоваров»), а платформа сама строит структуру хранения.
Код размещается в модулях: модуль объекта, модуль формы, общий модуль, модуль менеджера. От места размещения зависит, где код исполняется — на клиенте или на сервере — и какие объекты ему доступны. Для выборки данных используется собственный язык запросов, похожий на SQL, но работающий с объектами конфигурации и виртуальными таблицами регистров.
Пример простого кода — расчёт итоговой суммы документа:
Процедура ПересчитатьСуммуДокумента() Экспорт
ИтоговаяСумма = 0;
Для Каждого СтрокаТовара Из Товары Цикл
СтрокаТовара.Сумма = СтрокаТовара.Количество * СтрокаТовара.Цена;
ИтоговаяСумма = ИтоговаяСумма + СтрокаТовара.Сумма;
КонецЦикла;
СуммаДокумента = ИтоговаяСумма;
КонецПроцедуры
Что реально разрабатывают: карта типовых задач
Большинство заказов на разработку в 1С укладывается в несколько повторяющихся категорий. Понимание этой карты помогает правильно сформулировать задачу разработчику или оценить объём работы самостоятельно.
- Печатные формы и этикетки — счета, акты, ТОРГ-12, ценники, произвольные макеты с логотипом и подписями.
- Отчёты — аналитика продаж, остатки в разрезе складов, ведомости по взаиморасчётам, построенные на СКД (системе компоновки данных).
- Внешние обработки — загрузка прайсов из Excel и CSV, массовое изменение реквизитов, выгрузка данных для маркетплейсов.
- Обмены и интеграции — связь с сайтом, CRM, банком, маркетплейсами, терминалами сбора данных.
- Расширения конфигурации — добавление реквизитов, кнопок, проверок при проведении без изменения типового кода.
- Доработка конфигурации — изменение самой конфигурации, когда возможностей расширения не хватает.
Обычно реализуется внешней печатной формой, типовую конфигурацию менять не нужно
Делается через СКД; сложность зависит от числа источников и группировок
Требует анализа формата обмена, обработки ошибок и журналирования
Затрагивает регистры и может повлиять на отчётность; требует тестирования на копии
Расширения и внешние обработки: безопасный путь доработки
Расширение конфигурации — механизм, который позволяет добавить собственные объекты и код поверх типовой конфигурации, не снимая её с поддержки. Это главный способ доработки типовых решений: при обновлении конфигурации расширение сохраняется, а конфликты минимальны. В расширении можно добавить реквизиты к документам, подписаться на события записи и проведения, создать свои отчёты, роли и формы.
Внешние обработки и отчёты — файлы с расширением .epf и .erf, которые открываются прямо в режиме «Предприятие» или подключаются через механизм дополнительных отчётов и обработок. Они не меняют конфигурацию вообще, поэтому это самый безопасный формат для задач вроде загрузки прайсов или разовой корректировки данных.
Что выбрать для доработки
Подходит для разовых операций: загрузка данных, групповая обработка, тестовый отчёт. Не меняет конфигурацию. Ограничение — нельзя добавить реквизиты или изменить формы документов.
Подходит для постоянных доработок: новые реквизиты, проверки, кнопки, роли. Сохраняет поддержку типовой конфигурации. Ограничение — не позволяет менять всё, часть объектов недоступна.
Крайняя мера, когда расширения недостаточно. Даёт полный доступ, но усложняет обновления: каждое обновление потребует сравнения и объединения изменений.
Обмены и интеграции: что пишут для связи с внешним миром
Значительная часть разработки на 1С — это обмен данными. Типовые сценарии: выгрузка каталога и остатков на сайт, загрузка заказов с маркетплейсов, обмен с банком (клиент-банк), синхронизация с CRM, интеграция с весами и кассовым оборудованием.
Технически обмены строятся на нескольких подходах: файловый обмен (CSV, Excel, XML, JSON), веб-сервисы и HTTP-запросы к API внешних систем, планы обмена для синхронизации между базами 1С, а также механизмы EnterpriseData и универсального формата обмена. Для HTTP-интеграций в языке есть объекты HTTPСоединение и HTTPЗапрос, для JSON — чтение и запись через ЧтениеJSON и ЗаписьJSON.
Пример простого запроса к внешнему API:
Соединение = Новый HTTPСоединение("api.example.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/orders?date=" + Формат(ДатаВыгрузки, "ДФ=yyyy-MM-dd"));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(Чтение);
КонецЕсли;
Как устроен процесс разработки и проверки результата
Работа над доработкой обычно идёт по предсказуемому маршруту: формулировка задачи, разработка в конфигураторе, проверка на копии базы, перенос в рабочую среду. Для командной разработки используются хранилище конфигурации или EDT с системой контроля версий, для одиночной доработки достаточно копии базы и аккуратного учёта изменений.
- 1Сформулируйте задачу: что должно измениться, на каких данных это проверить
- 2Сделайте копию рабочей базы или разверните тестовую из свежей резервной копии
- 3Реализуйте доработку — предпочтительно расширением или внешней обработкой
- 4Проверьте на тестовой базе: введите реальные документы, сравните результат с ожидаемым
- 5Проверьте смежные участки: отчёты, проведение связанных документов, права пользователей
- 6Перенесите доработку в рабочую базу в нерабочее время, зафиксируйте, что именно изменено
Как проверить результат
Все поля заполнены, суммы сходятся с документом, макет не «разъезжается» при печати
Пустые поля, неверные итоги, обрезанный текст
Количество загруженных строк совпадает с файлом, дубли не созданы, цены и остатки корректны
Пропущенные строки, задвоенные элементы справочника
Итоги сходятся с типовыми отчётами за тот же период
Расхождения в суммах, пропавшие документы
Данные появились на той стороне, ошибки записываются в журнал
Тихие сбои без записи в журнале, частичная выгрузка
Типичные ошибки начинающих разработчиков
Большинство проблем в доработках 1С связано не с языком, а с непониманием устройства платформы. Запрос в цикле, изменение типовой конфигурации вместо расширения, отсутствие проверки на пустые значения — эти ошибки повторяются из проекта в проект.
Что нужно, чтобы начать писать на 1С
Для старта нужны три вещи: установленная платформа «1С:Предприятие», учебная или тестовая информационная база и конфигуратор — встроенная среда разработки. Существует учебная версия платформы, которой достаточно для изучения языка, запросов и СКД. Альтернатива — среда 1C:Enterprise Development Tools (EDT), основанная на Eclipse: она удобнее для больших проектов и командной работы.
Порядок освоения имеет значение: сначала язык и объекты конфигурации, затем язык запросов и СКД, потом обмены и расширения. Попытка начать с интеграций без понимания регистров и проведения обычно заканчивается переделкой результата.
Что важно запомнить
На 1С пишут на встроенном языке платформы: расширения, внешние обработки, отчёты, печатные формы и обмены данными. Для доработок предпочтительны расширения и внешние обработки — они сохраняют поддержку типовой конфигурации. Любые изменения, затрагивающие данные, сначала проверяют на копии базы.
Частые вопросы
Можно ли писать на 1С на английском языке?
Да, встроенный язык поддерживает оба варианта синтаксиса, и их можно смешивать: Если и If эквивалентны. На практике в российских проектах преобладает русский синтаксис, а английский чаще встречается в международных командах и при экспорте кода.
Чем отличается внешняя обработка от расширения?
Внешняя обработка — отдельный файл, который запускается вручную или подключается как дополнительная, и не меняет конфигурацию. Расширение встраивается в конфигурацию: добавляет реквизиты, формы, обработчики событий и работает постоянно. Для разовой загрузки данных достаточно обработки, для постоянной доработки нужно расширение.
Подходит ли 1С для интеграции с сайтом и маркетплейсами?
Да, это одна из самых частых задач. Интеграции строятся через HTTP-запросы к API внешних систем, файловый обмен или готовые модули обмена. Главное — предусмотреть обработку ошибок, журналирование и защиту от повторной загрузки одних и тех же данных.
Можно ли доработать типовую конфигурацию без снятия с поддержки?
Да, через механизм расширений. Расширение накладывается поверх типовой конфигурации и не изменяет её код, поэтому поддержка и обновления сохраняются. Снятие с поддержки требуется только когда возможностей расширения объективно не хватает.
Сколько времени нужно, чтобы научиться писать на 1С?
Базовые доработки — печатные формы, простые отчёты и обработки — доступны после освоения языка, запросов и СКД, что при регулярной практике занимает несколько месяцев. Уверенная работа с регистрами, проведением и интеграциями требует опыта на реальных задачах, обычно от года и дольше.
Что выбрать для старта: конфигуратор или EDT?
Для обучения и небольших доработок проще конфигуратор: он входит в поставку платформы и не требует настройки. EDT оправдан на крупных проектах и в команде — там есть полноценная работа с системой контроля версий и более удобный анализ кода.