Многие готовятся к собеседованию 1С-программиста как к экзамену на определение справочника. Зубрят формулировку из учебника и ждут, что этого хватит. На живом интервью обычно проверяют другое: запрос, проведение и умение не сломать типовую.
Интервьюер спрашивает, почему отчёт на проде ушёл в таймаут и куда смотреть в виртуальной таблице. Отдельно просят разобрать, какие движения пишет документ и в каком модуле живёт этот код. Ещё один частый ход: добавить реквизит в типовой документ и оставить конфигурацию на поддержке.
Ниже разберём, как проходит собеседование 1С-разработчика по этапам. Дальше банк вопросов и ответов по грейдам, ситуационные кейсы и практические задачи. Формулировки в примерах кода учебные, цифры условные.
Коротко:
- Скрининг рекрутера: конфигурации БП, УТ, ЗУП, ERP, УНФ, формат работы и контур задач.
- Теория: объекты метаданных, запросы, СКД, формы, обмены, права и расширения.
- Практика: запрос, обработчик, кусок проведения или разбор чужого модуля.
- Junior чаще закрывает теорию и короткую задачу; senior добавляет производительность, архитектуру доработок и интеграции.
Как проходит собеседование 1С-программиста
Типичный путь похож у франчайзи, внутренней ИТ-службы и продуктовой 1С-команды. Набор встреч и глубина отличаются, схема не как у FAANG с алгоритмами на доске. Сначала проверяют, в каких конфигурациях вы жили, затем как думаете про проведение и запросы.
Ниже этапы, которые чаще всего встречаются в описаниях найма 1С. Это не тайминг-исследование и не единый стандарт. Компании режут или склеивают шаги.
| Этап | Что обычно проверяют | Где чаще останавливаются |
|---|---|---|
| Скрининг рекрутера | Конфигурации, стаж, формат, ожидания по зарплате | Все грейды |
| Теория и техника | Объекты, запросы, СКД, формы, обмены, права | Junior часто заканчивает здесь плюс короткая задача |
| Практическое задание | Запрос, обработчик, проведение, чтение чужого кода | Чаще middle и senior, у junior короче |
| Разговор с тимлидом или руководителем проекта | Доработки типовой, оценка задач, работа с аналитиком | Middle и senior |
| Оффер и испытательный | Контур задач, обновления, кто сопровождает базу | Кто прошёл предыдущие шаги |
Скрининг рекрутера
Рекрутер редко лезет в виртуальные таблицы. Он фиксирует конфигурации: Бухгалтерия, Управление торговлей, ЗУП, ERP, УНФ. Спрашивает, были ли это типовые базы на поддержке или сильно переписанный контур.
На этом же звонке уточняют формат: франч, внутренняя автоматизация, аутстаф. Если всплывёт вилка, называйте зарплату как диапазон роли, а не «как получится». Ориентир по рынку разработки есть в материале сколько зарабатывают программисты.
Теоретическое и техническое интервью
Дальше обычно садится опытный 1С-разработчик. Что спрашивают: справочники и регистры, язык запросов, СКД, управляемые формы, права, обмены. Это диалог, не билет у доски. Если плывёте, часто дают подсказку и смотрят, умеете ли вы додумать механизм.
У junior хватает уверенного рассказа про объекты, простой запрос и место кода проведения. Middle ждут оптимизации, временных таблиц, расширений и RLS. Senior уводят в план SQL, кластер и обмен УТ с БП, который уже не собирается «из коробки».
Практическое задание
Практика проверяет руки, а не словарный запас. Типичные постановки: написать запрос к регистру, поправить обработчик, разобрать кусок проведения. Иногда дают чужой модуль с лишним запросом в цикле и просят сказать, что сломает прод.
Junior часто получает одну короткую задачу на месте. Senior могут попросить схему обмена или план, как не снять типовую с поддержки. Тестовое на дом тоже бывает, об этом ниже в частых вопросах.
Разговор с тимлидом и оффер
Тимлид или руководитель проекта проверяет, как вы берёте задачу. Важно, приходила ли она ТЗ или фразой «сделайте как в Excel». Смотрят, умеете ли оценить доработку типовой и назвать риски обновления.
Оффер и испытательный закрывают условия и контур: какие базы, кто выкладывает обновления, есть ли аналитик. Как пройти этот круг спокойнее: заранее соберите свои примеры по проведению, отчёту и обмену, а не общие слова про «решал задачи бизнеса».
Какие вопросы задают на собеседовании 1С-программиста
Банк ниже разложен по грейдам. Сначала карта типов, чтобы не прыгать сразу в определения. Типичные вопросы на собеседовании 1С-программиста идут не одним списком: блоки чередуют теорию, кейс и кусок кода.
- Профессиональные: платформа и объекты, запросы и СКД, модули и проведение, права и расширения, интеграции.
- Опыт: тяжёлая доработка типовой, тормозящий отчёт, обновление после снятия с поддержки, постановка задачи.
- Ситуационные: медленное проведение, реквизит в типовом документе, «пропавшие» документы обмена, минусовые остатки.
- Практические: запрос, обработчик, разбор проведения или контур обмена.
Дальше идут вопросы и ответы с тем, что проверяют и как говорить. Демонстрационный код учебный. Не переносите его в рабочую базу как готовый релиз.
Профессиональные вопросы и ответы для 1С-программиста
Разберём профессиональный блок по грейдам. Границы условные: в вакансии middle могут спросить junior-базу, а senior иногда начинают с регистра сведений. Готовьте свой грейд и одну ступень выше.
Junior: объекты, простой запрос, проведение и отладчик
На входе ждут, что вы отличаете платформу от конфигурации и не путаете справочник с регистром. Проверяют простой запрос, место кода проведения и умение открыть отладчик. Формулы «я настраивал кнопки» без объектов обычно не хватает.
Платформа и объекты
Чем платформа отличается от конфигурации? Проверяют, не смешиваете ли вы движок и прикладное решение. Платформа даёт язык, запросы, формы, кластер и доступ к СУБД. Конфигурация это метаданные и код конкретной системы: БП, УТ, ЗУП, ERP или самописный контур. Одна платформа крутит разные конфигурации. Конфигурация без платформы не выполняется.
Чем обычное приложение отличается от управляемого? Смотрят, жили ли вы в тонком и веб-клиенте или только в толстом. Обычные формы рисует разработчик, они завязаны на толстый клиент. Управляемые формы собираются из описания, работают в тонком и веб-клиенте, требуют директив клиента и сервера. С 8.2 управляемый режим считают основным путём разработки. Если вы видели только обычные формы, так и скажите и покажите, что понимаете цену перехода.
Чем справочник отличается от документа? Справочник хранит нормативно-справочные данные: номенклатуру, склады, статьи затрат. У него может быть иерархия, предопределённые элементы, обычно нет проведения. Документ имеет дату и номер, фиксирует хозяйственную операцию и при проведении пишет движения. Путать их опасно: курсы валют не живут в документе «на всякий случай», а реализация не подменяется элементом справочника.
Какие регистры бывают и когда какой брать? Регистр сведений хранит факты и срезы: цены, статусы, курсы. Он бывает периодическим, независимым или подчинённым регистратору. Регистр накопления считает остатки и обороты: деньги, взаиморасчёты, резервы. Регистр расчёта нужен периодам и вытеснению, чаще в зарплатных контурах. На интервью полезно привести свой пример, а не абстрактное «для учёта».
Запросы и формы
Как написать простой запрос к справочнику? Проверяют синтаксис языка запросов 1С, не общий SQL. Имена берёте из метаданных, отбор ставите в ГДЕ, результат выгружаете в таблицу значений. Учебный пример ниже выбирает склады без пометки удаления, не контрагентов из чужих шпаргалок.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Склады.Ссылка КАК Склад,
| Склады.Наименование КАК Наименование
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.ПометкаУдаления = ЛОЖЬ";
ТаблицаСкладов = Запрос.Выполнить().Выгрузить();Чем NULL отличается от Неопределено и пустой ссылки? Три пустоты путают даже тех, кто уже пишет запросы. NULL приходит из запроса: нет строки в соединении или поле не использовалось. Неопределено это значение языка, когда переменную не инициализировали или параметр не передали. Пустая ссылка типизирована: это «пустой» Справочник.Склады, а не «вообще ничего». На форме пустая ссылка и Неопределено ведут себя по-разному в условиях ЗначениеЗаполнено.
Модули, проведение и отладчик
Где пишется код проведения документа? Базовое место: модуль объекта документа, процедура ОбработкаПроведения. Там формируют наборы записей регистров и записывают движения. Подписка на событие тоже может писать движения, это уже следующий уровень. Если проведения нет, документ запишется, а остатки и обороты не изменятся. Фраза «галочка Проведён сама всё сделает» звучит слабо.
Как вы отлаживаете код 1С? Ждут не список кнопок, а сценарий. Ставите точку останова в модуле объекта или формы, запускаете предприятие, воспроизводите действие. Для серверного контекста подключаетесь к серверному вызову, иначе табло молчит. Смотрите стек, значения ссылок и набор записей регистра. Запрос в цикле на отладчике видно сразу: одна и та же выборка на каждой строке табличной части.
Если junior-блок уже даётся уверенно, имеет смысл смотреть вакансии разработки с контуром 1С и сверять, какие конфигурации там названы. Дальше middle: запросы, СКД и аккуратные доработки типовой.
Middle: запросы, СКД, клиент-сервер, расширения и обмены
Middle на собеседовании 1С разработчик уже не отделывается определением регистра. Проверяют, фильтруете ли вы виртуальную таблицу в параметрах, умеете ли собрать отчёт на СКД и не правите ли типовую «в лоб». Интеграции и RLS здесь обычный разговор, не бонус.
Запросы и СКД
Что такое виртуальная таблица и куда ставить отбор? Виртуальная таблица не лежит в СУБД как обычная. Платформа строит её из регистра: Остатки, Обороты, СрезПоследних, СрезПервых. Отбор по измерениям и периоду ставьте в параметрах виртуальной таблицы. Условие только в ГДЕ часто заставляет сначала собрать большой срез, а потом выбросить строки. Это классическая причина «отчёт жил на копии и умер на проде».
Как оптимизировать запрос 1С? Сначала смотрят мышление, не магическую подсказку. Сужайте виртуальные таблицы параметрами, не ходите «через точку» за реквизитами в выборке без нужды. Убирайте запрос внутри цикла по табличной части. Тяжёлое режьте временными таблицами и пакетным запросом. Индексы регистра уже заданы измерениями: лишнее измерение «на всякий случай» тоже умеет тормозить запись.
Зачем временные таблицы и пакет запросов? Временная таблица (ПОМЕСТИТЬ) держит промежуточный результат на время выполнения пакета. Её удобно индексировать и переиспользовать в следующих запросах пакета. Так вы не строите один монстр с пятью соединениями «на удачу». После пакета временные таблицы живут, пока не уничтожите их или не завершите запрос. На интервью полезно сказать, в каком месте вы делили тяжёлый отчёт на шаги.
Как устроена СКД и чем она лучше «выгрузки в таблицу»? Система компоновки данных собирает отчёт из наборов, связей, вычисляемых полей и настроек группировки. Пользователь меняет отборы и группировки без вашей новой обработки. Макеты и условное оформление живут рядом с запросом, а не в ручном обходе строк. Интервьюер часто просит: набор данных, параметр периода, группировка по складу, пользовательское поле. Если вы делали только «запрос плюс цикл в табличный документ», честно обозначьте пробел и покажите, что понимаете, зачем СКД.
Модули и проведение
Чем модуль объекта отличается от модуля менеджера? Модуль объекта работает с экземпляром: ПередЗаписью, ПриЗаписи, ОбработкаПроведения, заполнение на основании. Модуль менеджера живёт без объекта в памяти: печать, получение данных, подбор, обработка выбора. Модуль формы отвечает за интерфейс и вызовы сервера. Путать их дорого: проведение в модуле формы «потому что кнопка рядом» ломает проведение из обмена и из пакетной обработки.
Как устроен клиент-сервер в управляемых формах? Директивы задают, где исполняется код: на клиенте, на сервере, на сервере без контекста формы. Каждый лишний серверный вызов из цикла по строкам это круги между клиентом и rphost. &НаСервереБезКонтекста уместен, когда не нужны реквизиты формы. Тяжёлые выборки и запись регистров держите на сервере. На интервью разберите свой пример: что посчитали на клиенте и что сознательно унесли на сервер.
Что делают ПередЗаписью и ОбработкаПроведения? ПередЗаписью срабатывает до записи объекта: проверки, дозаполнение, отказ. Для документа туда же приходят режим записи и режим проведения. ОбработкаПроведения идёт после записи, если документ проводят, и строит движения. Отмена проведения очищает движения, не «минусует руками», если вы не написали свою схему. Порядок событий лучше проговорить вслух: это дешёвый способ показать, что вы не рисуете проводки в ПриОткрытии.
Как работают транзакции в 1С и есть ли вложенные? Запись объекта уже идёт в транзакции платформы. Явные НачатьТранзакцию, ЗафиксироватьТранзакцию и ОтменитьТранзакцию нужны, когда несколько записей должны падать вместе. Вложенной транзакции как в учебнике по СУБД нет: внутренний вызов только поднимает счётчик. Если внутри уже была ошибка, дальше ловите «в данной транзакции уже происходили ошибки». Тогда откатываете и не делаете вид, что можно «дописать ещё одну строку».
Что такое управляемые блокировки и зачем они в проведении? При параллельной записи двух документов по одному складу чтение остатков без блокировки даёт гонку. Управляемая блокировка ставится на пространство регистра по измерениям до чтения остатка. Автоматические блокировки платформы закрывают не все сценарии проведения. На middle ждут связку: измерения, МоментВремени документа, отказ проведения при нехватке. Учебный «минус на складе» ниже разобран в ситуационных вопросах.
Права, расширения и интеграции
Как дорабатывать типовую через расширения и не снять её с поддержки? Расширение добавляет объекты, реквизиты, элементы формы и перехватывает процедуры без правки типового модуля в основной конфигурации. Обновление типовой тогда не превращается в ручной перенос каждой галочки. Ограничения тоже назовите: не всё расширяется, бывают конфликты методов, чужие доработки пересекаются. Дополнительные реквизиты БСП часто дешевле нового реквизита в документе. Снятие с поддержки оставляйте как крайний, а не удобный путь.
Что такое RLS и как связаны роли? RLS ограничивает чтение и запись по строкам: свои организации, свои склады, свои менеджеры. В роли пишут шаблоны ограничений, в сеансе подставляют параметры. Плохой RLS бьёт по запросам сильнее, чем «лишняя колонка» в отчёте. В типовых на БСП поверх ролей живут профили и группы доступа. На интервью полезно сказать, какой отбор вы ставили и как проверяли, что пользователь не видит чужие остатки.
Как устроены планы обмена, БСП и HTTP/XDTO? План обмена хранит узлы и регистрирует изменения объектов. Выгрузка идёт XML, XDTO или через формат Enterprise Data в контурах БСП. HTTP-сервис и HTTPСоединение закрывают обмен с сайтом, курьером, банком, внешней учётной системой. XDTO даёт типизированную сериализацию, не «склейку тегов строкой». Если спрашивают про БСП, назовите подсистемы, которыми пользовались: обмен данными, пользователи, дополнительные реквизиты, а не абстрактный список из маркетинга.
Зачем функциональные опции? Опция включает и выключает куски метаданных и ветки кода: ордерный склад, несколько организаций, учёт по характеристикам. Значение хранят в константе или регистре сведений. На форме и в интерфейсе объекты без опции пропадают сами. Это лучше, чем разбросанные Если Константы.ВестиСкладскойУчёт по десяти модулям. Вопрос короткий, но по нему видно, читали ли вы типовую или только свои обработки.
Senior: производительность, кластер, сложный обмен и архитектура доработок
Senior-блок редко начинают с «что такое справочник». Смотрят, умеете ли вы читать план запроса, развести нагрузку по кластеру и спроектировать обмен УТ с БП без ежедневного ручного дотаскивания документов. Отдельно проверяют, как вы сохраняете типовую на поддержке в живой базе.
Производительность и администрирование
Как искать тормоза в запросе и проведении, если уже «оптимизировали ГДЕ»? Снимаете технологический журнал и смотрите SQL, который платформа реально отправила. В плане ищете сканы, неудачные соединения, повторное построение виртуальной таблицы. Проведение часто упирается не в «медленный 1С», а в чтение остатков без параметров, запрос в цикле или блокировку на слишком широком пространстве. Учебный масштаб: отчёт по партиям за год без отбора по складу. Лечите запрос и момент времени, а не «добавим ещё один сервер и забудем».
Как масштабировать кластер, когда база и сеансы выросли? Рабочие серверы, требования назначения и вынос регламентных заданий на отдельный rphost это обычный разговор. Тяжёлые отчёты и свёртку не держите на том же процессе, что интерактивных пользователей. Лицензии, сеансовые данные и стабильность соединений смотрят в консоли кластера, не только в конфигураторе. Выгрузка .dt удобна для копии, но на большой SQL-базе штатный путь это бэкап СУБД. Скажите, что именно вы делали сами, а не выдуманный «кластер на 300 пользователей» без деталей: такие цифры ловят быстро.
Чем фоновое задание отличается от регламентного? Фоновое запускаете из кода, когда пользователю не нужно ждать: длинная загрузка, рассылка, пересчёт. Регламентное висит на расписании в кластере: курсы валют, полнотекстовый поиск, штатные процедуры обмена. Оба живут на сервере и не должны открывать интерактивные формы. На senior ждут ещё контроль: как ловите ошибку, как не запускаете вторую копию того же обмена, куда пишете журнал.
Интеграции и поддержка типовой
Как спроектировать сложный обмен УТ с БП, если появились нетиповые объекты? Сначала карта объектов: что источник, что приёмник, какие поля обязательны в БП для проведения поступления. Типовой Enterprise Data закрывает номенклатуру, контрагентов, реализации и поступления, пока вы не уехали в свои документы. Для нетиповых нужен маппинг, расширение правил и проверка регистрации на узле. Потерянные документы чаще сидят в фильтре узла, ошибке конвертации или двойном номере, а не в «платформа сломалась». Разберите свой контур: что досылали руками и какой контроль остатков после загрузки.
Как проектировать доработки, чтобы типовая осталась на поддержке? Сначала расширение, дополнительные реквизиты, внешние отчёты и обработки, подписки в расширении, HTTP-сервис рядом с типовым контуром. Правка общего модуля типовой и снятие объекта с поддержки ускоряют первый день и грабят каждый месяц обновлений. Если объект уже снят, назовите процедуру сравнения и объединения, кто принимает конфликт, как гоняете дымовой сценарий проведения. Senior здесь продаёт архитектуру, не скорость «впилить реквизит в документ за час».
Спрашивают ли про сертификаты 1С:Профессионал и 1С:Специалист? Да, на скрининге и у техлида это обычный вопрос, не статистика «проходят только с корочкой». Профессионал ближе к тесту по платформе или конфигурации. Специалист ближе к практической задаче: учёт, запросы, проведение. Корочка помогает открыть дверь и не заменяет рассказ про свой регистр и свой обмен. Если сертификата нет, не оправдывайтесь: покажите учебную базу, задачи с Infostart и живой пример доработки.
Проговорите платформу вслух, пока ответы ещё сырые
На пробном собеседовании HireHi вас спросят про запросы, проведение и расширения так, как это делает техлид 1С, а не как тест из учебника.
Какие вопросы задают об опыте работы 1С-программиста
Опыт проверяют не списком конфигураций в резюме. Просят сцену, в которой вы трогали типовую, отчёт или обновление. Короткий STAR уместен: ситуация, задача, действие, чем кончилось. Без выдуманных «ускорил в 20 раз» и без чужих метрик компании.
Расскажите о тяжёлой доработке типовой. Назовите конфигурацию, объект и почему типового поведения не хватило. Дальше решение: расширение, подписка, новый регистр сведений или всё же правка общего модуля. Отдельно скажите цену обновлений. Слабый ответ: «дорабатывал УТ, было сложно». Сильный: «в УТ добавили контроль резерва в заказе клиента расширением, типовой документ остался на поддержке, обновление месяца не разобрали вручную».
Был ли тормозящий отчёт или проведение? Опишите симптом: отчёт по партиям не открывался за смену, проведение перемещения висело на остатках. Что смотрели: параметры виртуальной таблицы, запрос в цикле, блокировку, объём выборки. Чем кончили: переписали запрос, разрезали пакет, сузили измерения. Не подставляйте чужие «было 2 часа, стало 10 минут», если это не ваш замер.
Как вы переживали обновление после снятия с поддержки? Здесь ждут шрамы, не теорию сравнения конфигураций. Кто принимал конфликты, какие объекты отвалились, как проверяли проведение и печатные формы. Если снимали с поддержки вы сами, скажите зачем и что сделали бы сейчас через расширение. Если пришли в уже «голую» базу, покажите, как наводили карту отличий, а не героизм ночных переносов вслепую.
Как к вам приходила задача: ТЗ или «как в Excel»? Франчайзи и внутренняя автоматизация живут по-разному. В одном контуре есть аналитик и постановка, в другом пользователь приносит таблицу и просит «чтобы само считало». Покажите, как вы уточняли источник движений, период, измерение склада и что считается ошибкой. Интервьюер слушает, задаёте ли вы вопросы до кода. Молчаливое «сразу сел писать обработку» звучит рискованно для базы на поддержке.
Какие ситуационные вопросы могут задать 1С-программисту
Ситуация на 1С почти всегда про живую базу: проведение, типовая, обмен, остатки. Здесь нет правильной кнопки из FAQ. Смотрят порядок гипотез и что вы не сделаете первым делом.
Проведение документа занимает 30–40 секунд. Куда смотрите? Сначала воспроизводите на копии с тем же объёмом табличной части. Ищете запрос в цикле, чтение остатков без параметров виртуальной таблицы, запись лишних регистров, подписки, которые вы не ждали. Дальше технологический журнал и конкретный SQL. Не начинайте с «перезапустим кластер» и не обещайте ускорение без замера. Если документ пишет пять регистров, назовите, какой из них читаете первым.
Надо добавить реквизит в типовой документ, обновления каждый месяц. Как сделаете? Первый путь: дополнительный реквизит БСП, если поле нужно пользователю и отчётам без жёсткой логики проведения. Второй: реквизит в расширении и перехват обработчиков. Снимать документ с поддержки при ежемесячных обновлениях значит каждый релиз руками сливать конфликты. Спросите, нужен ли реквизит в запросах обмена и в СКД. От этого зависит, хватит ли допреквизита.
Обмен «потерял» документы. Как расследуете? Проверяете регистрацию на узле, фильтр плана обмена, журнал ошибок конвертации и повторную выгрузку. Смотрите, провёл ли приёмник документ или он завис непроведённым из-за пустого обязательного поля. Дубли номеров и разные уникальные идентификаторы ссылок тоже частая причина «уехало, но не видно». Не чините прод ручной перезаписью всех реализаций за месяц, пока не нашли правило, которое их отсекает.
При параллельной записи всплывают минусовые остатки. Что происходит? Два сеанса читают один и тот же остаток, оба решают, что количества хватает, оба пишут расход. Без управляемой блокировки по складу и номенклатуре гонка закономерна, не «баг платформы». Решение: блокировка пространства регистра, чтение остатка на момент времени документа, отказ проведения с понятным текстом. Автоматический режим блокировок сам по себе не закрывает любую схему списания.
Какие практические задания дают на собеседовании 1С-программиста
Практику лучше решать вслух: что за объект, какой регистр, какой период, что считать ошибкой. Ниже учебные постановки, не чужие запросы из открытых шпаргалок. Подход важнее финальной скобки.
Junior: остатки резерва и строка табличной части
Задача. Вывести номенклатуру с положительным резервом на выбранном складе на текущий момент. Регистр учебный: ТоварыВРезерве, виртуальная таблица Остатки. Не копируйте чужие остатки «товаров на складах» из методичек.
Как подходить. Уточните измерения регистра и имя ресурса. Отбор по складу поставьте в параметрах виртуальной таблицы, порог остатка можно оставить в ГДЕ. Проговорите, зачем параметр момента, даже если берёте текущую дату. Затем напишите запрос и выгрузите результат.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Резервы.Номенклатура КАК Номенклатура,
| Резервы.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыВРезерве.Остатки(&Момент, Склад = &Склад) КАК Резервы
|ГДЕ
| Резервы.КоличествоОстаток > 0";
Запрос.УстановитьПараметр("Момент", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Склад", Склад);
ТаблицаРезервов = Запрос.Выполнить().Выгрузить();Второе junior-задание часто проще: добавить строку в табличную часть учебного документа ЗаказНаПеремещение. Заполняете номенклатуру, количество, ячейку-приёмник. Ищете элемент не НайтиПоНаименованию в цикле без нужды: лучше ссылка с формы или точный код. После добавления покажите, где пересчитаете итог шапки, если он есть.
Middle: закупки по складам и проверка перед записью
Задача. Сумма проведённых поступлений по складам за период. Учебный документ: ПриобретениеТоваровУслуг, табличная часть Товары. Это не отчёт «продажи по контрагентам за 30 дней» из чужих разборов.
Как подходить. Спросите, считать шапку или строки: скидки и услуги могут жить отдельно. Отберите проведённые, период параметрами, группировку по складу. Если склад в строке, группируйте строковый реквизит, не шапку. Назовите, почему здесь может быть быстрее регистр накопления закупок, если он уже пишется проведением.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Поступления.Склад КАК Склад,
| СУММА(Товары.Сумма) КАК СуммаЗакупок
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК Поступления
| ПО Товары.Ссылка = Поступления.Ссылка
|ГДЕ
| Поступления.Проведен
| И Поступления.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|СГРУППИРОВАТЬ ПО
| Поступления.Склад";
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);Вторая middle-задача. В ПередЗаписью учебного заказа на перемещение запретите запись без склада-отправителя и без строк. Отказ ставьте в модуле объекта, не только сообщением на форме: обмен и обработка тоже пишут документ. Учебный каркас ниже.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(СкладОтправитель) Тогда
Отказ = Истина;
Сообщить("Укажите склад-отправитель.");
КонецЕсли;
Если Товары.Количество() = 0 Тогда
Отказ = Истина;
Сообщить("Заполните табличную часть товаров.");
КонецЕсли;
КонецПроцедурыSenior: разбор медленного проведения
Задача. Учебный документ СписаниеРезерва при проведении читает остатки резерва по каждой строке отдельным запросом и пишет регистр. На копии с 400 строками проведение занимает десятки секунд. Нужно предложить план и набросать каркас одного запроса на всю табличную часть.
Как подходить. Сначала назовите проблему: запрос в цикле плюс широкое чтение остатков. Затем один запрос к виртуальной таблице с отбором по складу и списку номенклатуры из временной таблицы строк. Перед чтением остатка поставьте управляемую блокировку по складу и номенклатуре. Момент времени документа, не «текущая дата сеанса», если важно списание «на дату документа». Готовый идеальный модуль на доске не ждут: ждут порядок и аккуратный каркас.
// Учебный каркас: строки документа во временную таблицу, затем остатки одним запросом.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Строки.Номенклатура КАК Номенклатура,
| Строки.Количество КАК Количество
|ПОМЕСТИТЬ ВТСтроки
|ИЗ
| &СтрокиДокумента КАК Строки
|;
|ВЫБРАТЬ
| ВТСтроки.Номенклатура КАК Номенклатура,
| ВТСтроки.Количество КАК Количество,
| ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК КоличествоОстаток
|ИЗ
| ВТСтроки КАК ВТСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезерве.Остатки(
| &Момент,
| Склад = &Склад
| И Номенклатура В (ВЫБРАТЬ ВТСтроки.Номенклатура ИЗ ВТСтроки)) КАК Остатки
| ПО ВТСтроки.Номенклатура = Остатки.Номенклатура";Прогоните запрос и проведение до живого интервью
Разберите вслух задачу на резерв, обработчик и обмен: тренажёр подсветит, где вы перескакиваете механизм и где путаете регистры.
Как подготовиться к собеседованию 1С-программиста
Подготовка к собеседованию здесь про механизмы, не про совет «выспитесь». Закройте конфигурацию из вакансии, свой грейд и одну ступень выше. Затем соберите три живых примера: доработка типовой, медленный запрос или проведение, обмен либо обновление.
По платформе повторите объекты, управляемые формы, события записи и проведения, клиент-сервер. По данным: язык запросов, виртуальные таблицы, временные таблицы, СКД. По сопровождению: расширения, RLS, планы обмена, регламентные задания. Сертификационные билеты 1С:Профессионал иногда всплывают как разогрев, их полезно просмотреть, не выучивая наизусть как единственную стратегию.
Книги, которые часто называют базой разработчика: Хрусталёва «Язык запросов», её же книга по СКД, Радченко и Хрусталёва «Практическое пособие разработчика». Это учебники, не доказательство «так спрашивают все». Практикуйте запросы и отчёты на учебной базе, в ITS и в задачах Infostart. Чужой код с форума разбирайте так же, как разберёте чужой модуль на встрече.
Как подготовиться за две недели, если время уже горит. Первые дни: объекты, запрос, проведение, отладчик. Затем СКД, пакет запросов, расширение, RLS. В конце проговорите вслух ситуационные кейсы и один свой обмен. Запись на диктофон полезнее десятой прочитанной шпаргалки: на интервью вы говорите, а не читаете абзац.
Как вести себя на собеседовании 1С-программиста
Техлид 1С слушает, как вы идёте по механизму, а не скорость первого слова. Если конфигурацию не называли, спросите: БП это не УТ, регистры и документы другие. Уточните, остатки нужны на момент документа или на конец дня. Молчаливый код «наугад» хуже медленного, но ясного плана.
Когда не знаете регистр расчёта или конкретный HTTP-сервис типовой, так и скажите. Затем предложите путь: где откроете метаданные, какой журнал посмотрите, какую копию снимете. Фраза «не сталкивался, предположу, что движения пишутся в ОбработкаПроведения, проверю набор записей» звучит взрослее, чем выдуманный синтаксис.
Не обещайте снять типовую с поддержки за день и «потом как-нибудь обновим». Не чините прод историей «у меня в учебной базе всё летало». Если дают чужой кусок проведения, сначала найдите, какой регистр пишется и откуда берётся момент времени. Потом уже стиль и имена переменных.
Какие вопросы задать работодателю на собеседовании 1С-программиста
Вопросы работодателю показывают, что вы уже жили в типовой базе, а не ищете «любую 1С». Три-пять штук хватит. Берите те, без ответа на которые вы не оцените работу.
- Какие конфигурации в контуре и насколько они уехали от типовой?
- Как часто ставите обновления и кто сливает конфликты расширений?
- Конфигуратор и хранилище или EDT и git?
- Кто ставит задачу: аналитик, консультант или пользователь с файлом Excel?
- Какой размер базы, сколько одновременных сеансов, сколько документов пишут за день?
- Как устроены обмены и кто дежурит, если узел не добрал реализации?
- Есть ли RLS по организациям и складам, кто сопровождает профили доступа?
На финале уместно спросить про испытательный контур: какие базы выдадут, дадут ли копию, кто принимает проведение на ревью. Про зарплату, если её ещё не называли, говорите диапазоном роли и грейда, не первой цифрой из чужого чата.
Соберите полный круг: теория, кейс и ваши вопросы
Пробное собеседование закрывает не только банк по СКД и RLS, но и то, как вы спрашиваете про обновления типовой и размер базы.