Найти в Дзене
2 подписчика

«А вы точно Senior?» 6 вопросов на засыпку для 1С-разработчика. Проверь себя! 🧠


Думаете, что знаете 1С вдоль и поперек? Давайте проверим.
Эти вопросы я задаю на собеседованиях, чтобы отсечь тех, кто просто «копирует код из интернета», от тех, кто понимает, как платформа работает внутри.

👇 Попробуйте ответить сами, прежде чем читать разбор!

1️⃣ Вопрос про транзакции и блокировки:
«У нас есть длинная транзакция (более 5 минут), в которой мы обходим большой цикл и делаем запись в регистр. В это время другой пользователь пытается провести документ, который затрагивает те же записи. Что произойдет? И почему `НачатьТранзакцию()` не спасет от взаимоблокировок в этом случае?»

✅ Что хотим услышать: Понимание того, что транзакция удерживает блокировки до своего завершения. Знание разницы между управляемыми и автоматическими блокировками. Упоминание `ПолучитьБлокировкуДанных` или оптимизации алгоритма, чтобы не держать блокировку долго.

2️⃣ Вопрос про СКД (Систему Компоновки Данных):
«В схеме СКД есть два набора данных: один сложный запрос с соединениями, второй — простой справочник. Как сделать так, чтобы параметр из первого набора фильтровал данные во втором, но при этом не превратить всё в декартово произведение и не убить производительность?»

✅ Что хотим услышать: Использование связей наборов данных (Join vs Where). Понимание, что связь должна быть по индексированным полям. Возможно, упоминание временных таблиц в самом запросе, если СКД не справляется.

3️⃣ Вопрос про HTTP-сервисы и асинхронность:
«К нам стучится внешний сервис через HTTPPost. Обработка занимает 30 секунд. Клиент обрывает соединение через 10 секунд. Как гарантировать, что обработка в 1С завершится корректно, даже если клиент уже "ушел", и как вернуть ему ответ позже?»

✅ Что хотим услышать: Понимание, что HTTP-запрос и выполнение кода 1С могут жить разной жизнью. Решение через фоновые задания (`ФоновоеЗадание`) или регламентные задания. Паттерн «поллинг» (клиент спрашивает статус) или вебхуки (1С сама пушает результат, когда готово).

4️⃣ Вопрос про память и сервер приложений:
«Обработка выгружает 1 миллион строк в Excel на сервере. Память рабочего процесса растет и не освобождается даже после завершения обработки. В чем причина и как диагностировать?»

✅ Что хотим услышать: Проблема утечек памяти (Memory Leak). Возможные причины: незакрытые COM-объекты, глобальные переменные, кэширование больших объектов. Диагностика через технологический журнал (TJ) и анализ dump-файлов.

5️⃣ Вопрос про расширяемость (Расширения конфигурации):
«В основной конфигурации есть метод объекта `ПриЗаписи()`. Нам нужно в расширении изменить логику этого метода, но не переопределять его полностью, а добавить проверку *перед* стандартной записью. Как это сделать правильно, учитывая порядок выполнения модулей?»

✅ Что хотим услышать: Знание приоритетов выполнения кода в расширениях. Использование подписок на события вместо прямого переопределения, если возможно. Или аккуратное использование `ПередЗаписью` в расширении с вызовом `Отказ = Истина`, если проверка не прошла, понимая риски конфликтов с другими расширениями.

6️⃣ Вопрос про SQL и планы запросов:
«Запрос выполняется быстро на тестовой базе (1000 документов) и ужасно медленно на рабочей (10 млн документов). Индексы есть, статистика обновлена. План запроса показывает "Nested Loops". Что будете делать?»

✅ Что хотим услышать: Не просто «добавлю индекс», а анализ селективности индексов. Возможно, сервер решает, что Nested Loops эффективнее Hash Join для малого подмножества данных, но ошибается. Подсказки оптимизатору (hints), изменение структуры запроса, использование временных таблиц для материализации промежуточных результатов.

#1Спрограммист #собеседованиеIT #Senior1C #архитектура1С #работа1С #hardquestions
«А вы точно Senior?» 6 вопросов на засыпку для 1С-разработчика. Проверь себя! 🧠  Думаете, что знаете 1С вдоль и поперек? Давайте проверим.
3 минуты