Подбор старшего программиста (Senior) в экосистеме 1С — задача, требующая выхода за рамки стандартных опросников. На этом уровне простого знания синтаксиса недостаточно; необходимо оценить архитектурное мышление, навыки оптимизации и понимание того, как платформа взаимодействует с СУБД. В данной статье мы разберем, как сформировать эффективный проверочный тест, какие вопросы задать на собеседовании и на что обратить внимание при анализе опыта кандидата.
Прежде чем переходить к глубокому техническому интервью, проанализируем формальные достижения кандидата. Рассмотрим, какие сертификаты действительно имеют вес для позиции Senior:
Проверим подлинность сертификатов на официальном сайте 1С. Помним, что для старшего программиста критически важно наличие именно «Специалиста», так как это подтверждает навык практического кодинга, а не простого выбора вариантов в тесте.
Разберем конкретные вопросы, которые помогут выявить реальный уровень владения платформой 1С:Предприятие 8.3. Вместо простых определений попросим кандидата объяснить механизмы реализации.
Вопрос 1: Управление блокировками данных. Выясним, понимает ли разработчик разницу между объектными и транзакционными блокировками. Попросим описать ситуацию, когда возникает Deadlock (взаимоблокировка), и способы ее решения. Проанализируем, знает ли кандидат уровни изоляции транзакций в SQL (например, Read Committed) и как они соотносятся с управляемыми блокировками 1С.
Вопрос 2: Работа с агрегатами. Рассмотрим, у каких объектов метаданных существуют агрегаты и для чего они используются. Правильный ответ должен включать упоминание оборотных регистров накопления и механизмов повышения производительности при получении итогов в крупных базах данных.
Вопрос 3: Параметры сеанса и RLS. Разберем, для чего обычно используются ПараметрыСеанса. Старший программист должен знать, что они критически важны для механизмов ограничения доступа на уровне записей (RLS), так как значения параметров сеанса кэшируются и доступны в запросах RLS без лишних обращений к базе.
Вопрос 4: Подсистемы в разных формах. Выясним, в чем различие использования подсистем в конфигурациях на обычных и управляемых формах. Здесь мы проверяем понимание эволюции платформы и того, как подсистемы влияют на командный интерфейс в современном интерфейсе «Такси».
Вместо того чтобы заставлять эксперта писать код «с нуля» в блокноте, предложим ему решить архитектурный кейс или провести Code Review. Рассмотрим несколько вариантов таких заданий:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект(); // Ошибка: получение объекта в цикле
Объект.Наименование = Объект.Наименование + " (Проверено)";
Объект.Записать();
КонецЦикла;
Для уровня Senior критично понимание работы системы на стыке с СУБД. Разберем следующие темы:
Работа с планами запросов. Спросим, умеет ли кандидат анализировать планы запросов SQL. Выясним, понимает ли он, почему индекс может не использоваться (например, из-за использования функции ПОДСТРОКА в условии ГДЕ или из-за неявного приведения типов).
Использование Библиотеки стандартных подсистем (БСП). Проанализируем опыт работы с БСП. Старший разработчик не просто копирует модули, а понимает архитектуру подсистем, таких как «Длительные операции», «Версионирование объектов» или «Обновление информационной базы». Выясним, как он внедряет БСП в самописные конфигурации.
Современная разработка на 1С не ограничивается конфигуратором. Выясним, знаком ли специалист с инструментами автоматизации:
Git, знаком ли с форматом выгрузки конфигурации в исходные коды.Vanessa Automation для сценарных тестов или xUnitFor1C для модульных тестов.Даже если в вашей компании эти инструменты еще не внедрены, знание о них говорит о широком кругозоре и готовности кандидата развивать процессы разработки.
Проанализировав ответы на технические вопросы и результаты решения кейсов, мы сможем составить объективный портрет специалиста. Помним совет опытных коллег: старшие программисты часто негативно относятся к формальным тестам с вариантами ответов. Гораздо эффективнее построить собеседование в формате технического диалога «равный с равным», где вместо проверки памяти проверяется умение находить оптимальные инженерные решения для бизнеса.
Если кандидат уверенно аргументирует выбор структуры данных, понимает последствия своих решений для производительности системы и знаком со стандартами разработки 1С — перед вами специалист уровня Senior.