Разработка и Конфигурация · 9 мин
Что должен знать программист 1С
Что должен знать программист 1С: язык запросов, СКД, управляемые формы, обмены, отладка и типовые механизмы. Практический перечень навыков и ошибок новичков.
Программист 1С — это не просто разработчик, пишущий код на встроенном языке. Его работа стоит на стыке технологий и учётной логики: нужно понимать, как устроены документы, регистры и отчёты, и одновременно владеть инструментами платформы — от конструктора запросов до механизмов обмена данными. Именно сочетание этих компетенций отличает специалиста, который решает задачи бизнеса, от человека, умеющего лишь «поправить печатную форму».
Минимальный набор включает знание встроенного языка 1С, языка запросов, системы компоновки данных, управляемых форм и основ администрирования. Поверх этого строятся навыки работы с типовыми конфигурациями, обменами, веб-сервисами и отладкой. Ниже — структурированный перечень того, что реально требуется в работе, с пояснениями, зачем нужен каждый блок и как проверить владение им.
Встроенный язык и объектная модель платформы
Основа профессии — встроенный язык 1С. Нужно уверенно работать с типами данных, коллекциями (массивы, структуры, соответствия, таблицы значений), циклами и процедурами с параметрами. Отдельный блок — разница между клиентским и серверным контекстом исполнения: директивы &НаКлиенте, &НаСервере, &НаСервереБезКонтекста и правила передачи данных между ними. Ошибки в понимании контекста — самая частая причина неработающего кода у новичков.
Не менее важна объектная модель: чем отличается ссылка от объекта, как работают менеджеры объектов, что такое выборка и набор записей. Программист должен понимать, когда обращение через объект оправдано (запись, проведение), а когда достаточно запроса — чтение данных через объектную модель в цикле почти всегда означает проблемы с производительностью.
Язык запросов и работа с данными
Запросы — главный инструмент получения данных в 1С. Необходимо знать соединения таблиц (левое, внутреннее), группировки и агрегатные функции, виртуальные таблицы регистров (остатки, обороты, срез первых и последних), параметры виртуальных таблиц и вложенные запросы. Отдельная тема — пакетные запросы и временные таблицы, без которых сложно писать производительный код для больших объёмов данных.
Практический критерий владения: программист должен уметь получить остатки по списку номенклатуры на дату одним запросом, не прибегая к циклам. Также нужно понимать типичную ошибку — соединение с виртуальной таблицей без параметров, из-за чего платформа сначала строит таблицу по всем данным, а потом фильтрует. Это критично на больших базах.
ВЫБРАТЬ
Остатки.Номенклатура КАК Номенклатура,
Остатки.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ОстаткиСКД и построение отчётов
Система компоновки данных — стандартный механизм отчётов в современных конфигурациях. Программист должен уметь создавать отчёт на СКД без единой строки кода: набор данных, связи, ресурсы, параметры, настройки группировок и отборов. Следующий уровень — программная работа с компоновкой: установка параметров и отборов из кода, вывод результата в табличный документ, переопределение настроек в событии ПриКомпоновкеРезультата.
Также полезно знать выражения СКД, вычисляемые поля, характеристики и иерархические группировки. Типовые конфигурации активно используют СКД в динамических списках, поэтому понимание механизма нужно не только для отчётов, но и для доработки форм списков и подборов.
Управляемые формы и интерфейс
Работа с управляемыми формами включает понимание жизненного цикла формы: события ПриСозданииНаСервере, ПриОткрытии, ПередЗаписью и их порядок вызова. Нужно уметь программно создавать элементы и реквизиты формы, работать с динамическими списками (произвольный запрос, параметры, отборы), передавать параметры между формами и использовать механизм оповещений.
Отдельный навык — понимание, почему нельзя выполнять долгие операции на клиенте и как выносить тяжёлую логику на сервер. Формы, которые «тормозят» при открытии из-за запросов в ПриОткрытии или обращений к серверу в цикле, — типичная претензия пользователей к доработкам.
Знание типовых конфигураций и расширений
Большинство задач реальной работы касается типовых решений: «Управление торговлей», «ERP», «Зарплата и управление персоналом», «Бухгалтерия предприятия». Программист должен ориентироваться в их ключевых механизмах — подсистемах БСП (Библиотека стандартных подсистем), механизмах проведения документов, печати, дополнительных отчётов и обработок. Знание БСП экономит недели: многие задачи уже решены типовыми процедурами.
Принципиально важное правило современной разработки — доработки выполнять через расширения конфигурации, а не изменением типового кода. Расширение сохраняет возможность автоматического обновления и снижает риск потери доработок. Прямое изменение типовых модулей оправдано только когда расширение технически не справляется, и такое решение должно быть осознанным и задокументированным.
Обмены данными, интеграции и отладка
Интеграционные задачи занимают заметную часть работы. Минимум — понимание планов обмена, регистрации изменений и правил конвертации данных. Далее — работа с файлами (XML, JSON, CSV), HTTP-запросы к внешним API, публикация и использование веб-сервисов и HTTP-сервисов. При интеграциях важно продумывать обработку ошибок, повторные попытки и журналирование, иначе сбой обмена обнаружится только по расхождению данных.
Отладка — навык, который отличает практика от теоретика. Нужно уметь подключать отладку к серверу и фоновым заданиям, пользоваться точками останова с условиями, табло и замером производительности. Для поиска «почему отчёт считает неправильно» часто достаточно связки: отладчик плюс консоль запросов с теми же параметрами.
- 1Воспроизведите ошибку на тестовой копии базы с теми же данными
- 2Включите технологический журнал или отладку нужного сеанса
- 3Локализуйте место: форма, серверная процедура, запрос или обмен
- 4Проверьте запрос отдельно в консоли запросов с реальными параметрами
- 5Исправьте, проверьте результат и выполните регрессионную проверку смежных функций
Администрирование и смежные навыки
Даже если в команде есть отдельный администратор, программисту нужны базовые навыки: публикация базы на веб-сервере, настройка прав доступа и профилей групп доступа, работа с хранилищем конфигурации при командной разработке, основы клиент-серверного режима и SQL. Понимание того, как запрос 1С транслируется в SQL, помогает находить причины блокировок и медленных запросов.
Полезно также владеть внешними инструментами: консолью запросов, консолью кода, инструментами разработчика для управляемых форм, конфигуратором в режиме сравнения и объединения конфигураций. Эти инструменты ускоряют рутинные операции и снижают риск ошибок при переносе доработок между базами.
Как проверить уровень программиста
Использует параметры виртуальных таблиц и временные таблицы
Соединения без параметров, запросы в цикле
Изменения вынесены в расширение, типовой код не тронут
Прямые правки типовых модулей без документирования
Попытка/Исключение с записью в журнал регистрации
Исключения глушатся пустым блоком или выводятся пользователю как есть
Частые вопросы
Нужно ли программисту 1С знать бухгалтерский учёт?
Глубокое знание не обязательно, но понимать базовую логику учёта — проводки, остатки, обороты, взаиморасчёты — необходимо. Без этого невозможно корректно дорабатывать документы и отчёты: программист не поймёт, какие данные должны получиться и как проверить результат.
С чего начать изучение 1С новичку?
Оптимальный путь: сначала встроенный язык и работа с объектами в конфигураторе, затем запросы, далее СКД и управляемые формы. Практиковаться лучше на учебной конфигурации, решая сквозные задачи — справочник, документ с проведением, отчёт по его данным.
Обязательно ли знать SQL?
Для файловых баз — нет, для клиент-серверных — крайне желательно. Понимание планов запросов, индексов и блокировок на уровне СУБД помогает диагностировать проблемы производительности, которые из конфигуратора не видны.
Когда использовать расширение, а когда внешнюю обработку?
Расширение подходит для доработки типовых объектов: форм, модулей, ролей. Внешняя обработка или отчёт — для автономных инструментов, не меняющих типовое поведение. Механизм дополнительных отчётов и обработок БСП позволяет подключать их без правки конфигурации вообще.
Какие навыки отличают сильного разработчика от junior?
Способность оценить задачу до написания кода: выбрать между запросом и объектным доступом, предусмотреть объёмы данных и права пользователей, спроектировать доработку так, чтобы она пережила обновление типовой конфигурации. Техника языка при этом обычно уже не является проблемой.
Что важно запомнить
Ключевые компетенции программиста 1С: встроенный язык и контексты исполнения, запросы с виртуальными таблицами, СКД, управляемые формы, знание типовых механизмов и БСП, доработка через расширения, обмены и отладка. Дополняют профиль основы администрирования и понимание учётной логики.