Вопросы на собеседовании: 1С
Реальные вопросы с собеседований на позицию 1С-разработчика — от архитектуры платформы до блокировок, с разбором «как отвечать».
Курс «Вопросы на собеседовании: 1С» состоит из 5 разделов и 15 уроков: Платформа и архитектура, Данные и регистры, Запросы на собеседовании, Блокировки и транзакции и Код и практика. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Платформа и архитектура
- Клиент или сервер: что где выполняется
Как отвечать на собеседовании про клиент-серверную архитектуру 1С: директивы НаКлиенте и НаСервере, почему нельзя обращаться к базе с клиента, цена вызова сервера.
- Ссылка или Объект
Главный вопрос собеседования по 1С: чем СправочникСсылка отличается от СправочникОбъект, когда что использовать, почему сравнивают ссылки, а меняют объект, и цена ПолучитьОбъект.
- Повторное использование возвращаемых значений
Собеседование по 1С: как работает повторное использование возвращаемых значений в общих модулях (кеш на вызов и на сеанс), зачем оно нужно и когда кеш устаревает.
- Клиент или сервер: что где выполняется
2 Данные и регистры
- Регистр сведений или накопления
Как отвечать на собеседовании по 1С: чем регистр сведений отличается от регистра накопления, когда какой выбирать и какие ошибки допускают новички.
- Проведение и движения документа
Собеседование по 1С: что происходит при проведении документа, роль ОбработкиПроведения и НабораЗаписей, отличие оперативного проведения от неоперативного.
- Периодичность и срез последних
Вопросы 1С на собеседовании: периодический регистр сведений, СрезПоследних и СрезПервых, получение значения на дату и роль ведущего измерения.
- Регистр сведений или накопления
3 Запросы на собеседовании
- Параметры виртуальных таблиц против ГДЕ
Почему условие в параметрах виртуальной таблицы 1С быстрее того же условия в ГДЕ: разбор для собеседования с примерами Остатки() и объяснением, что происходит под капотом.
- Запрос в цикле: как найти и починить
Антипаттерн «запрос в цикле» в 1С: почему он убивает производительность, как переписать на один запрос с соединением или временной таблицей и как искать такие места в коде.
- NULL в 1С и его ловушки
NULL в языке запросов 1С: откуда он берётся при левом соединении и пустом регистре, почему NULL не равен нулю и пустой строке, как использовать ЕСТЬNULL и отличать NULL от Неопределено.
- Параметры виртуальных таблиц против ГДЕ
4 Блокировки и транзакции
- Управляемые блокировки
Управляемые блокировки в 1С: зачем блокировать данные перед проверкой остатков, объект БлокировкаДанных, отличие управляемого режима от автоматического и как отвечать на собеседовании.
- Взаимоблокировки (deadlock)
Взаимоблокировки (deadlock) в 1С: как два процесса намертво блокируют друг друга, почему спасает единый порядок обращения к ресурсам и типовые сценарии deadlock при проведении документов.
- Транзакции и их подводные камни
Транзакции в 1С на собеседовании: почему вложенные транзакции на самом деле одна, чем опасно «проглатывание» исключения внутри транзакции и как правильно откатывать её ради целостности данных.
- Управляемые блокировки
5 Код и практика
- ПередЗаписью, ПриЗаписи, ПриПроведении
Порядок и назначение событий записи объекта 1С: где проверять данные, где формировать движения, почему проверку заполнения делают в ПередЗаписью.
- «Что не так с этим кодом»
Формат живого собеседования по 1С: во фрагменте кода находим дефекты — запрос в цикле, обращение к базе с клиента, отсутствие блокировки.
- Рефакторинг плохого кода 1С
Пошаговый рефакторинг плохого кода 1С: выносим запрос из цикла, разделяем клиент и сервер, добавляем обработку ошибок. Разбор «до и после».
- ПередЗаписью, ПриЗаписи, ПриПроведении