Как провести практический тест и оценить уровень старшего программиста 1С?

Руководитель проекта 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Подбор старшего программиста (Senior) в экосистеме 1С — задача, требующая выхода за рамки стандартных опросников. На этом уровне простого знания синтаксиса недостаточно; необходимо оценить архитектурное мышление, навыки оптимизации и понимание того, как платформа взаимодействует с СУБД. В данной статье мы разберем, как сформировать эффективный проверочный тест, какие вопросы задать на собеседовании и на что обратить внимание при анализе опыта кандидата.

Формальная проверка: сертификаты и их значимость

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

Проверим подлинность сертификатов на официальном сайте 1С. Помним, что для старшего программиста критически важно наличие именно «Специалиста», так как это подтверждает навык практического кодинга, а не простого выбора вариантов в тесте.

Глубокие технические вопросы (Hard Skills)

Разберем конкретные вопросы, которые помогут выявить реальный уровень владения платформой 1С:Предприятие 8.3. Вместо простых определений попросим кандидата объяснить механизмы реализации.

Вопрос 1: Управление блокировками данных. Выясним, понимает ли разработчик разницу между объектными и транзакционными блокировками. Попросим описать ситуацию, когда возникает Deadlock (взаимоблокировка), и способы ее решения. Проанализируем, знает ли кандидат уровни изоляции транзакций в SQL (например, Read Committed) и как они соотносятся с управляемыми блокировками 1С.

Вопрос 2: Работа с агрегатами. Рассмотрим, у каких объектов метаданных существуют агрегаты и для чего они используются. Правильный ответ должен включать упоминание оборотных регистров накопления и механизмов повышения производительности при получении итогов в крупных базах данных.

Вопрос 3: Параметры сеанса и RLS. Разберем, для чего обычно используются ПараметрыСеанса. Старший программист должен знать, что они критически важны для механизмов ограничения доступа на уровне записей (RLS), так как значения параметров сеанса кэшируются и доступны в запросах RLS без лишних обращений к базе.

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

Практические задания: Кейс-тестирование

Вместо того чтобы заставлять эксперта писать код «с нуля» в блокноте, предложим ему решить архитектурный кейс или провести Code Review. Рассмотрим несколько вариантов таких заданий:

  1. Анализ неоптимального кода. Предложим фрагмент кода и попросим найти ошибки. Проанализируем типичный пример:
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Объект = Выборка.Ссылка.ПолучитьОбъект(); // Ошибка: получение объекта в цикле
        Объект.Наименование = Объект.Наименование + " (Проверено)";
        Объект.Записать();
    КонецЦикла;
    
    Старший программист должен не только указать на недопустимость получения объектов в цикле, но и предложить решение через временные таблицы или пакетные запросы.
  2. Проектирование схемы метаданных. Поставим задачу: «Спроектировать систему учета бонусных баллов с возможностью частичного гашения и истечения срока годности». Посмотрим, какие регистры выберет кандидат (накопления или сведений), как организует хранение остатков и как реализует алгоритм списания (FIFO).

Оптимизация производительности и SQL

Для уровня Senior критично понимание работы системы на стыке с СУБД. Разберем следующие темы:

Работа с планами запросов. Спросим, умеет ли кандидат анализировать планы запросов SQL. Выясним, понимает ли он, почему индекс может не использоваться (например, из-за использования функции ПОДСТРОКА в условии ГДЕ или из-за неявного приведения типов).

Использование Библиотеки стандартных подсистем (БСП). Проанализируем опыт работы с БСП. Старший разработчик не просто копирует модули, а понимает архитектуру подсистем, таких как «Длительные операции», «Версионирование объектов» или «Обновление информационной базы». Выясним, как он внедряет БСП в самописные конфигурации.

Инженерная культура и DevOps

Современная разработка на 1С не ограничивается конфигуратором. Выясним, знаком ли специалист с инструментами автоматизации:

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

Заключение и выводы

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

Если кандидат уверенно аргументирует выбор структуры данных, понимает последствия своих решений для производительности системы и знаком со стандартами разработки 1С — перед вами специалист уровня Senior.

← На главную