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

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

Что нужно знать программисту 1С: от языка платформы до работы с типовыми конфигурациями

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

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

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

Встроенный язык 1С и объектная модель платформы

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

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

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

Язык запросов и система компоновки данных

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

Критически важно понимать механизм временных таблиц и пакетные запросы: сложную выборку почти всегда эффективнее разбить на несколько запросов с помещением промежуточных результатов во временные таблицы. Также нужно знать о типичных ловушках: соединение без условий, выборка через ВЫБРАТЬ * по духу (то есть выбор всех полей объекта), использование функции ПОДСТРОКА в условиях соединения — всё это резко деградирует производительность на больших базах.

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

Типичные ошибки в запросах
01
Запрос в цикле вместо одного запроса с группировкой — кратный рост времени выполнения
02
Соединение с виртуальной таблицей без отбора периодом — чтение всей истории регистра
03
Использование ПОДСТРОКА или строковых операций в условиях соединения — отказ от использования индексов
04
Выбор всех полей объекта вместо только нужных — лишний трафик между СУБД и сервером 1С

Типовые конфигурации: как дорабатывать и не ломать обновления

Большая часть коммерческой работы программиста 1С — доработка типовых решений: «Управление торговлей», «ERP», «Комплексная автоматизация», «Зарплата и управление персоналом», «Бухгалтерия предприятия». Эти конфигурации содержат сотни тысяч строк кода, и разбираться в них нужно методически: через общие модули библиотеки стандартных подсистем (БСП), механизмы переопределяемых модулей и подписки на события.

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

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

Безопасный порядок доработки типовой конфигурации
  1. 1
    Снять копию рабочей базы и выполнять разработку только на копии
  2. 2
    Проверить, решается ли задача расширением или внешней обработкой без изменения типового кода
  3. 3
    Если нужна правка типового модуля — зафиксировать изменение комментарием с маркером и описанием
  4. 4
    Протестировать доработку на копии с реальным объёмом данных
  5. 5
    Выполнить тестовое обновление конфигурации и убедиться, что доработки не конфликтуют с новым релизом
  6. 6
    Перенести изменения в рабочую базу в нерабочее время, предварительно сделав резервную копию

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

Практически ни одна база 1С не живёт изолированно. Программист должен знать механизмы обмена: планы обмена, правила конвертации данных (КД 2.0 и КД 3.0 / формат EnterpriseData), универсальный обмен через XML, а также типовые синхронизации между конфигурациями — например, между «Управлением торговлей» и «Бухгалтерией».

Для интеграций с внешними системами нужны HTTP-запросы и HTTP-сервисы, работа с JSON и XML, веб-сервисы (SOAP), а в файловых сценариях — чтение и запись CSV, Excel через табличный документ или COM-объекты. Полезно понимать основы REST API: большинство сайтов, маркетплейсов и CRM отдают и принимают данные именно так.

Критический навык — диагностика проблем обмена: уметь читать протоколы обмена, находить зависшие регистрации изменений в планах обмена, разбирать коллизии и понимать, почему объект не выгрузился (отбор по узлу, ошибка в правилах конвертации, блокировка). В крупных внедрениях половина инцидентов связана именно с обменами.

Отладка, производительность и администрирование

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

Вопросы производительности неизбежны на базах с большим объёмом данных. Минимальный набор: понимание блокировок (управляемые и автоматические), чтение технологического журнала, замеры производительности в конфигураторе, основы индексирования и понимание того, как запрос 1С транслируется в SQL. Для клиент-серверных баз полезны базовые знания MS SQL Server или PostgreSQL: планы запросов, обновление статистики, настройка регламентных заданий СУБД.

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

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

Как проверить качество доработки

Поведение на копии с реальными данными
Норма

Обработка отрабатывает за приемлемое время, данные корректны

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

На тестовых пяти документах работает, на рабочем объёме зависает

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

Доработки в расширении или задокументированы, обновление проходит без ручного слияния

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

Каждое обновление требует часов сравнения модулей

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

Доработка работает под ролью обычного пользователя, а не только под полными правами

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

У менеджеров ошибки доступа, у разработчика всё работает

Учётные знания и смежные навыки

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

Из смежных технических навыков наиболее востребованы: SQL на уровне чтения планов запросов, основы работы с COM и внешними компонентами, умение пользоваться консолью запросов и инструментами разработчика, а также базовое знание EDT (1C:Enterprise Development Tools) — среды разработки, которая постепенно дополняет классический конфигуратор, особенно в командных проектах с Git.

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

Маршрут решения

С чего начать обучение

Опыта программирования нет вообщеНачните с встроенного языка и простых задач: внешние обработки, печатные формы, простые отчёты на СКД
Есть опыт в другом языке программированияСфокусируйтесь на объектной модели, запросах и механизме проведения — синтаксис освоите за недели
Планируете работать во франчайзи 1СПриоритет — типовые конфигурации, расширения, механизмы обновления и обмены между базами
Цель — крупные внедрения ERPДобавьте производительность, блокировки, технологический журнал, КД 3.0 и командную разработку через хранилище или EDT

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

Нужно ли программисту 1С высшее образование и сертификаты?

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

Что выбрать для старта: конфигуратор или 1C:EDT?

Начинать разумно с конфигуратора — он проще в освоении и остаётся основным инструментом в большинстве компаний. EDT стоит осваивать вторым шагом, когда появляются задачи командной разработки с Git и работа над крупными проектами.

Обязательно ли знать бухгалтерский учёт?

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

Насколько важно знание SQL?

Для файловых баз можно обойтись без него, но в клиент-серверных проектах SQL нужен: чтение плана запроса, понимание индексов и блокировок напрямую влияет на способность решать проблемы производительности. Глубокое администрирование СУБД не требуется.

Как долго осваивать профессию с нуля?

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

Что спрашивают на собеседовании программиста 1С?

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

Итог

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

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