Skip to content

Собеседование и тестовые задания ​

← Предыдущий | 🗺 Оглавление | Следующий →

Актуализировано: сентябрь 2026.

Файл помогает подготовиться к собеседованию на позицию 1С-разработчика, от стажёра до Senior. Внутри: как устроен найм у франчайзи, в инхаусе, в продукте и на проектах; реальные тестовые задания 2021–2026 годов и разбор самого типичного из них; банк из 105 вопросов с краткими ответами и ссылками на стандарты разработки; задачи для live-coding с решениями; вопросы работодателю и красные флаги.

Основа материала: уровни и ожидания — из официальной «Модели профессиональных компетенций Разработчика» фирмы «1С» MC-6-001 (2025), подробно разобранной в 03_Competencies.md; тестовые задания — из открытых репозиториев кандидатов на GitHub; темы вопросов — из репозитория interview-1c, тестовых заданий и модели MC-6-001. Ответы — краткий пересказ авторов со ссылками на стандарты its.1c.ru/db/v8std (открытое зеркало — zeegin/v8std). Детали сверяйте с синтакс-помощником своей версии платформы: 8.3.27 или 8.5.1.

Уровень вопроса: [J] — Junior, [M] — Middle, [S] — Senior. Вопросы Junior задают и Senior-кандидатам, только ждут более глубокого ответа. Зарплаты и поиск работы — в 13_Career.md, чек-листы самопроверки — в 11_Checklists.md, примеры кода «Плохо → Хорошо» — в 06_FAQ_and_Tips.md.

Содержание ​


🧭 Как проходят собеседования ​

Число этапов зависит от компании. У небольшого франчайзи это бывает одна встреча с руководителем отдела и тестовое задание, у крупного работодателя — несколько технических интервью. Схема ниже — обобщение авторов, а не правило.

  • Резюме и портфолио. Ссылка на GitHub с 2–3 проектами: исходники, README, выгрузка .dt в Releases (см. 07_Projects.md). Плюс сертификаты и «Паспорт квалификации 1С» (04_Certifications.md). Как составить резюме — в 13_Career.md.
  • Скрининг. Рекрутер или руководитель уточняет опыт, конфигурации, формат работы и ожидания по деньгам. Иногда присылают онлайн-тест. Есть и независимые тесты для найма, например «1С-ТестЦентр» (1c-tc.ru) с грейдом по баллам; аффилированность с фирмой «1С» не проверена, официальной сертификацией его не называйте.
  • Техническое интервью. Вопросы по платформе, запросам, регистрам, клиент-серверу и учёту, разбор кода «что здесь не так». С уровня Middle добавляются транзакции, блокировки, производительность и интеграции, с уровня Senior — архитектура и организация разработки.
  • Тестовое задание или live-coding. Для стажёров и Junior тестовое — обычная практика, примеры — в следующем разделе.
  • Разбор решения. Спросят, почему сделано именно так, что будет при 50 пользователях и миллионе строк, что бы вы изменили. Решение, которое вы не можете объяснить, работает против вас.
  • Финал и оффер. Встреча с руководителем: задачи на первые месяцы, условия, испытательный срок и критерии его прохождения.

Что проверяют в разных контекстах ​

Требования сильно зависят от того, где вы будете работать. По каталогу Landscape1C (август 2026), базовый стек во всех контекстах — Конфигуратор, хранилище, язык запросов, СКД, БСП. EDT, Git, CI и автотесты отмечены для инхауса, продуктов и проектов, но не для франчайзи. Аналитиков, администраторов и тестировщиков спрашивают по-другому: их темы — в файлах треков, список — в tracks/README.md.

КонтекстЧто важно работодателюЧто обычно проверяютЧем готовиться
ФранчайзиБыстро приносить пользу на типовых у многих клиентовЯзык и запросы, клиент-сервер, обновление с объединением, внешние печатные формы и отчёты через БСП, расширения, обмены между типовыми, основы учёта, общение с клиентомP7–P9, 1С:Профессионал, tracks/developer-franchise.md
ИнхаусРазвивать и поддерживать системы одной компанииЗапросы и производительность, блокировки, интеграции, понимание процессов компании; иногда EDT и GitP10–P14, tracks/developer-product.md, tracks/integration.md
Продукт (тиражные решения)Качество кода, совместимость, работа в командеСтандарты, БСП, EDT и Git, код-ревью, автотесты, архитектураP8, P13, tracks/developer-product.md, tracks/qa-automation.md
Проект (крупное внедрение ERP, УХ)Работа по методологии в большой командеТиповые ERP и УХ, интеграции и шины, КД 3, миграция данных, производительность, оценка задачP12, P14, tracks/integration.md, tracks/performance-expert.md

Что оценивают на каждом уровне ​

УровеньГлавный вопрос интервьюераНа чём проверяют (по модели MC-6-001)
JuniorСделает ли задачу по заданию и не сломает ли типовуюЯзык, простые запросы и виртуальные таблицы, три вида учётных регистров, клиент-сервер в формах, внешние отчёты и печатные формы, расширения, обновление со сравнением и объединением, основы учёта, базовые алгоритмы и оценка их сложности
MiddleРешит ли задачу сам и не положит ли базуСложные запросы, СКД программно, транзакции и блокировки, технологический журнал и нагрузка, интеграции, RLS по шаблонам БСП, EDT и Git в команде, оценка трудозатрат
SeniorМожно ли доверить ему решение целиком и работу другихАрхитектура и метаданные большой системы, групповая разработка и код-ревью, план обновления, методология обменов и миграции, приоритеты и сроки группы

Во многих вакансиях сертификаты «желательны», а не обязательны. 1С:Профессионал быстро показывает базовые знания: 14 вопросов за 30 минут, нужно не меньше 12 верных ответов (сверяйте на 1c.ru/prof). Подробнее — в 04_Certifications.md.

🧪 Реальные тестовые задания ​

Ниже — задания 2021–2026 годов, которые кандидаты выложили на GitHub. Работодатели указаны так, как в README репозиториев. Колонка «Проект» показывает, какой проект из 07_Projects.md тренирует похожие навыки.

КогдаКто и на какую позициюЧто проверяютПроектРепозиторий
2021«Версия тестового задания от фирмы 1С» (так в README), программистУдалить отрицательные элементы в том же массиве; продажи в рублях по курсам только банковских дней (срез последних); распределение копеек; подсчёт посетителей; поиск циклической ссылки; отчёт на СКД на времяP0, P4pomoykaLTD/1C-interview.v1
2021Работодатель не указан, программистЗапись и чтение XML; очистка коллекции по условию; пропорциональное распределение суммы; запрос «записи без подчинённых»; группировки; СКД; НОК; «ваше видение плохого кода»P0pomoykaLTD/1C-interview.v3
2023«Лаборатория ИТ», стажёрНепростые числа до k; сравнение версий вида 8.1.009.125 без библиотек; число прописью без встроенных функций; «змейка» 12×10P0vospan4ik/lab_1C
2024DexSys, разработчикФильтр таблицы по рабочим часам и будням; условное оформление списка; контроль дублей ИНН с учётом периодического регистра сведений и иерархии филиаловP1, P4Nerby01/DexSys_job_test
07.2024Задание на BDD (архивный репозиторий), программистДемо БСП 3.1.10, OneScript, vanessa-runner, Vanessa Automation, Allure: доработать конфигурацию под .feature, пройти синтаксический контроль и тест, прислать allure-reportP13johnnyshut/test-task-for-ones-dev
11.2024Работодатель не указан, стажёрПустая база: контрагенты и договоры, история статусов клиента, цены, реализация с печатной формой, деньги, остатки по складам, средняя себестоимость; отчёты «Взаиморасчёты», «Ведомость по товарам», «Рентабельность», «Клиенты без покупок за период»P2–P5svrv1/TestTask1
03.2025Работодатель не указанREST HTTP-сервис каталога GET /catalog/products?page&size&sort&order, JSON ↔ справочник, регистр сведений характеристикP10KaratovTech/SelectionTaskOneC
2025–2026Effective Mobile, JuniorВнешняя обработка: из константы ХранилищеЗначения удалить «неключевые» платформы, вывести кликабельные ссылки по убыванию кода; критерии — интерфейс, оптимальный клиент-сервер, понятный кодP7fox5CnH/-EffectiveMobile-, Drozdkov/Effective-Mobile
01.2026«Бест Бизнес Софт»Товары, клиенты, продажа с автоматической ценой, регистр накопления «Продажи», печатная форма с сортировкой, отчёт с отборами, проверка уникальностиP3AndreyVoenkov/testovoe-zadanie-best-business-soft
02.2026«СофтСервис», программистОптовая торговля: товары и услуги в одной табличной части, подбор по остаткам склада, контроль остатков с количеством нехватки, средняя себестоимость по всей компании, проводки Д10–К60, Д90–К10, Д62–К90 параллельно на регистре накопления и регистре бухгалтерииP2, P5, P6fox5CnH/SoftService-testinFile-
03.2026Работодатель не указан, программистПосчитать гласные в каждом втором слове фразыP0AlxTrube/1s_test
09.2026Работодатель не указан, разработчикКондитерская: выпуск продукции со списанием ингредиентов, контроль остатков в одной транзакции, отчёт на СКД с отбором по складу; «на плюс» — поиск дублей запросомP2, P9romankitaev526-prog/1C-Skvoznaya-avtomatizaciya-ucheta-konditerskoy

Три типа задач ​

  1. Алгоритмы на коллекциях без готовых функций. Встречаются почти в каждом наборе: удалить элементы «в том же массиве», распределить сумму без потери копеек, сравнить версии, число прописью без ЧислоПрописью. Проверяют аккуратность с граничными случаями и понимание коллекций. Решения — в разделе live-coding.
  2. Мини-конфигурация «склад и продажи». Сценарий повторяется: справочники → документы → регистр остатков → контроль остатков → себестоимость → отчёт на СКД → печатная форма. Часто добавляют периодический регистр сведений (цены, статусы, курсы) и проводки.
  3. Внешняя обработка, где главное — клиент-серверное взаимодействие и понятный код. Effective Mobile прямо пишет в критериях, что код будут дорабатывать другие разработчики. Реже просят REST HTTP-сервис с пагинацией или BDD-сценарий для Vanessa Automation с vanessa-runner и отчётом Allure.

Разбор: «склад и продажи» ​

  • Метаданные. Справочники «Номенклатура» (с признаком услуги), «Контрагенты», «Склады». Документы «Поступление» и «Реализация». Регистр накопления остатков «ТоварыНаСкладах», оборотный регистр «Продажи», периодический регистр сведений «ЦеныНоменклатуры». Услуги по складу не проводят.
  • Проведение. Движения формирует ОбработкаПроведения, записывает их платформа после завершения обработчика (#450). Контроль остатков — с управляемой блокировкой или по схеме из #661: регистр с контролем пишется последним, затем запрос ищет отрицательные остатки. Сообщение говорит, какого товара и сколько не хватает. Код — в 06_FAQ_and_Tips.md.
  • Средняя себестоимость. В регистре остатков нужны количество и сумма. Если средняя считается по всей компании, сумму ведут без разреза по складу. Средняя = сумма остатка / количество остатка на момент документа. При списании всего остатка берут всю сумму остатка, иначе в регистре остаются копейки.
  • Проводки. Если просят параллельно вести регистр бухгалтерии: поступление Д41 К60 (для материалов Д10 К60), выручка Д62 К90.01, себестоимость Д90.02 К41 (Д90.02 К10). Проверьте, что себестоимость в регистре накопления и в проводках совпадает.
  • Отчёты и печать. Отчёты — на СКД, с отборами пользователя и без обязательных параметров (#407). «Клиенты без покупок за период» — левое соединение с оборотами, пример — в задаче 5 раздела live-coding. Печатная форма — макет с областями, данные получены одним запросом, сортировка — как в задании.

Как делать и сдавать тестовое ​

  • Задайте уточняющие вопросы письменно: что делать с услугами, нужен ли учёт по складам, какая версия платформы, сколько часов работодатель ожидает на задание.
  • Сначала сделайте рабочий минимум по всем пунктам, потом улучшайте. Что не успели, честно перечислите в README.
  • Соблюдайте базовые стандарты: нет запросов и разыменований в цикле (#436), условия виртуальных таблиц — в параметрах (#657), нет модальных вызовов (#703), минимум серверных вызовов (#487), блокировки при проведении (#460).
  • Заполните базу тестовыми данными. Сдавайте .dt плюс исходники (выгрузка конфигурации в файлы или проект EDT), README со сценарием проверки по шагам и скриншоты или короткое видео. Публикуйте решение на GitHub, только если работодатель не против.
  • Если пользовались ИИ, будьте готовы объяснить каждую строку. Разбор решения быстро показывает, понимает ли кандидат свой код (09_AI_Development.md).
  • Объём и срок обсудите заранее. Задание на несколько недель или «реальная задача клиента» бесплатно — повод насторожиться (см. красные флаги).

📚 Банк вопросов ​

Номера сквозные, на них ссылается раздел «Как готовиться». Ответы короткие. На собеседовании разворачивайте их примером из своего проекта. Ссылки вида #487 ведут на стандарты разработки на ИТС.

Язык и платформа ​

1. [J] Какие модули есть в конфигурации и что в каком писать? Модуль управляемого приложения — события запуска и завершения клиента; модуль сеанса — установка параметров сеанса; модуль внешнего соединения; общие модули — переиспользуемый API; модули объекта, менеджера и набора записей — логика конкретного объекта; модули форм и команд — интерфейс. Бизнес-логику в формах не держат: серверные методы формы можно вызвать с клиента в обход проверок (#678).

2. [J] Какие флаги есть у общего модуля и зачем «Вызов сервера» и «Повторное использование возвращаемых значений»? Флаги: «Глобальный», «Клиент (управляемое приложение)», «Клиент (обычное приложение)», «Сервер», «Внешнее соединение», «Вызов сервера», «Привилегированный». «Вызов сервера» ставят только модулям с API для клиента: любой их экспортный метод можно вызвать с клиента (#679). Повторное использование кеширует результат функций на время вызова или сеанса. Кешируют то, что дорого получить и часто нужно, а не всё подряд (#724).

3. [J] Справочник, перечисление или план видов характеристик — когда что? Перечисление — фиксированный набор значений, который задаёт разработчик (например, «Юр. или физ. лицо»). Справочник — список, который ведут пользователи. План видов характеристик — когда нужны виды характеристик со своим типом значения: виды субконто, дополнительные реквизиты и сведения.

4. [J] Чем ссылка отличается от объекта и почему Документ.Контрагент.ИНН в коде — это запрос? Ссылка указывает на запись в базе. Объект — прочитанные данные, которые можно изменить и записать (Ссылка.ПолучитьОбъект()). Обращение через точку к реквизиту ссылки читает данные из базы, поэтому в цикле это N скрытых запросов. Для одного-двух реквизитов в БСП есть ОбщегоНазначения.ЗначениеРеквизитаОбъекта и ЗначенияРеквизитовОбъекта, для массовой обработки — один запрос.

5. [J] Какие универсальные коллекции вы знаете и когда какую брать?Массив — список по индексу. Структура — ключи-строки, удобна для параметров. Соответствие — ключи любого типа и быстрый поиск по ключу. СписокЗначений — значение, представление и пометка, для выбора в интерфейсе. ТаблицаЗначений — типизированные колонки, индексы (Индексы.Добавить), НайтиСтроки, Свернуть. ДеревоЗначений — иерархия. Фиксированные варианты (ФиксированныйМассив и другие) нужны для кеша и безопасной передачи. Поиск в массиве — перебор, в соответствии и индексированной таблице — быстрый.

6. [J] Как удалить из массива элементы по условию, не создавая новый массив? Обходить массив с конца: Индекс = Массив.ВГраница() и цикл Пока Индекс >= 0. При обходе вперёд после Удалить индексы сдвигаются и элементы пропускаются, а у цикла Для нет шага. Решение и вариант за линейное время — в задаче 1.

7. [J] Как передаются параметры в процедуру и зачем Знач? По умолчанию по ссылке: присваивание параметру меняет переменную вызывающего кода. Знач передаёт копию значения. Для коллекций копируется только ссылка, поэтому содержимое массива внутри всё равно можно изменить. При клиент-серверном вызове параметры без Знач после вызова передаются обратно, это лишний трафик; BSL LS проверяет это диагностикой TransferringParametersBetweenClientAndServer.

8. [J] Что такое параметр сеанса и где его заполняют? Значение, которое хранится на сервере весь сеанс: текущий пользователь, текущая организация. Заполняется в УстановкаПараметровСеанса модуля сеанса и используется в запросах и ограничениях доступа. Для кеша и для чисто клиентских значений параметры сеанса не подходят: каждое обращение с клиента — серверный вызов (#413).

9. [J] Что делают ОбработкаПроверкиЗаполнения, ПередЗаписью, ПриЗаписи и зачем проверять ОбменДанными.Загрузка?ОбработкаПроверкиЗаполнения проверяет заполнение; условно ненужные реквизиты удаляют из ПроверяемыеРеквизиты (#463). ПередЗаписью — дозаполнение и проверки перед записью, ПриЗаписи — действия с уже записанным объектом, например запись связанных данных (#464, #465). В ПередЗаписью, ПриЗаписи и ПередУдалением первым делом проверяют ОбменДанными.Загрузка: при загрузке из обмена объект пишется «как есть», без бизнес-логики (#773). Параметру Отказ не присваивают Ложь (#686).

10. [J] Как правильно обрабатывать исключения? Не перехватывать без необходимости: необработанное исключение покажут пользователю и запишут в журнал регистрации (#499). Если перехватываете, запишите в журнал регистрации ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) и пробросьте ошибку дальше через ВызватьИсключение, если не можете исправить ситуацию сами. Пустой блок Исключение — ошибка.

11. [J] Файловый или клиент-серверный вариант — когда какой? Файловый вариант — база в каталоге без сервера, годится для учёбы и небольших компаний. Клиент-серверный — кластер серверов 1С и СУБД: больше пользователей и данных, фоновые и регламентные задания под нагрузкой, администрирование и резервное копирование средствами СУБД. Модель MC-6-001 ждёт от Junior умения объяснить клиенту риски неподходящего варианта. Учебная версия платформы работает только в файловом варианте.

12. [M] Как быстро собрать длинную строку? Не складывать строки в цикле, а собирать части в массив и соединять СтрСоединить(); разбирать строку — СтрРазделить() (#782). Для сообщений по шаблону — СтрШаблон(), для текстов интерфейса — НСтр() (#761).

Клиент-сервер и формы ​

13. [J] Чем отличаются &НаКлиенте, &НаСервере, &НаСервереБезКонтекста и &НаКлиентеНаСервереБезКонтекста?&НаСервере — контекстный вызов: на сервер уходят изменённые данные формы и создаётся серверный контекст, это дорого. &НаСервереБезКонтекста передаёт только параметры (#636). &НаКлиентеНаСервереБезКонтекста компилируется на обеих сторонах и выполняется там, откуда вызван, без серверного вызова. Каждый лишний серверный вызов нужно обосновать (#487).

14. [J] Почему на клиенте нельзя вызвать Справочники.Номенклатура.НайтиПоНаименованию() или получить объект? В тонком и веб-клиенте менеджеры и объекты базы недоступны: работа с СправочникОбъект, ДокументОбъект и запросами идёт только на сервере (#679, п. 2.1). Клиент вызывает серверную функцию, она возвращает результат. Пример — в 06_FAQ_and_Tips.md.

15. [J] Что можно вернуть с сервера на клиент? Примитивные значения, ссылки, Массив, Структура, Соответствие и их фиксированные варианты. ТаблицаЗначений на тонкий и веб-клиент не передаётся: её кладут в реквизит формы или превращают в массив структур или соответствие. Объекты базы (ДокументОбъект) на клиент не передаются.

16. [J] Как связаны реквизит формы Объект и объект базы? Основной реквизит формы хранит данные объекта как данные формы (ДанныеФормыСтруктура, табличные части — ДанныеФормыКоллекция). На сервере их превращают в объект РеквизитФормыВЗначение("Объект") и обратно ЗначениеВРеквизитФормы(...). Это нужно, чтобы вызвать метод модуля объекта; общую логику лучше вынести в модуль менеджера или общий модуль.

17. [J] Почему нельзя использовать модальные окна и чем их заменить? Модальные окна не поддерживаются в веб-клиенте. Стандарт требует, чтобы свойство конфигурации «Режим использования модальности» было «Не использовать» (#703). Немодальный режим есть с 8.3.3, это не новинка 8.5. Замена: ПоказатьВопрос или ПоказатьПредупреждение с ОписаниеОповещения, где процедура-обработчик обязательно Экспорт; или Асинх/Ждать с ВопросАсинх (с 8.3.18).

18. [M] Можно ли делать экспортные методы в модуле формы? Нет. Параметры в форму передают через ОткрытьФорму, результат получают обработчиком оповещения (#630). Исключение — клиентские процедуры-обработчики оповещений: им Экспорт обязателен. Серверный экспортный метод формы BSL LS считает ошибкой (ServerSideExportFormMethod).

19. [M] Зачем проверять права и данные на сервере, если форма уже всё проверила? Любой серверный метод формы и экспортный метод модуля с флагом «Вызов сервера» можно вызвать с клиента в обход клиентских проверок. Поэтому права и бизнес-правила проверяют на сервере, а на клиент возвращают только итоговый результат (#678).

20. [M] Как передать файл с клиента на сервер? Через временное хранилище. Клиент помещает файл методами глобального контекста НачатьПомещениеФайла / НачатьПомещениеФайлов или обёрткой БСП ФайловаяСистемаКлиент.ЗагрузитьФайл. Сервер получает двоичные данные по адресу: ПолучитьИзВременногоХранилища(Адрес). Путь к файлу на компьютере клиента серверу бесполезен: это разные машины.

21. [M] Как выполнить операцию на минуту, чтобы форма не зависла? Серверный вызов дольше 8 секунд выносят в фоновое задание. Иначе браузер предложит остановить скрипт, веб-сервер вернёт ошибку 504, а пользователь не сможет отменить операцию (#642). В конфигурациях на БСП — ДлительныеОперации.ВыполнитьФункцию и ДлительныеОперацииКлиент.ОжидатьЗавершение. Без БСП — ФоновыеЗадания.Выполнить с экспортным методом неглобального серверного общего модуля; результат кладут во временное хранилище. С 8.3.26 сервер может сам уведомить клиента: УведомленияКлиента.ОтправитьУведомление. Код — в 06_FAQ_and_Tips.md.

Запросы ​

22. [J] Почему условия на виртуальную таблицу пишут в её параметрах, а не в ГДЕ? Параметры отбирают данные внутри вложенного запроса, который строит платформа: СУБД выбирает лучший план и не обрабатывает лишние записи (#657). В параметрах пишут простые условия по измерениям: Склад = &Склад, Номенклатура В (&Список). Условие по ресурсу, например КоличествоОстаток < 0, в параметры не передать, его пишут в ГДЕ. Поля остатков называются <Ресурс>Остаток: КоличествоОстаток, СуммаОстаток.

23. [J] Какие бывают соединения и чем ОБЪЕДИНИТЬ отличается от ОБЪЕДИНИТЬ ВСЕ?ВНУТРЕННЕЕ оставляет только совпавшие строки. ЛЕВОЕ — все строки левой таблицы, недостающие поля равны NULL (проверка ЕСТЬ NULL, замена ЕСТЬNULL()). ПРАВОЕ — зеркально, ПОЛНОЕ — все строки обеих таблиц. ОБЪЕДИНИТЬ убирает одинаковые строки и поэтому дороже. ОБЪЕДИНИТЬ ВСЕ оставляет все строки; его берут, если дублей быть не может или они нужны.

24. [J] Зачем нужны временные таблицы и пакетные запросы? Чтобы разбить сложный запрос на шаги и переиспользовать промежуточный результат. ПОМЕСТИТЬ создаёт временную таблицу, ИНДЕКСИРОВАТЬ ПО — индекс по полям соединения, между запросами таблицы живут в МенеджерВременныхТаблиц. Не помещайте лишние поля и сотни тысяч строк, не создавайте временные таблицы в цикле (#777).

25. [J] Чем плох запрос в цикле и как его убрать? Это N обращений к базе вместо одного, и время растёт вместе с объёмом данных. Однотипные данные получают одним запросом: условие В (&Список), соединение с временной таблицей из таблицы значений или пакет запросов (#436). Обращение к реквизиту ссылки через точку в цикле — тот же запрос в цикле, только скрытый.

26. [J] Чем опасно обращение через точку к полю составного типа в запросе? Каждое Поле.Реквизит добавляет неявное соединение. Для составного типа это соединения со всеми таблицами из его состава и с их RLS (#654). Нужный тип задают через ВЫРАЗИТЬ(Поле КАК Справочник.Контрагенты) или переносят нужное поле в исходную таблицу. Примитивные типы в составных реквизитах, по которым соединяют и отбирают, замедляют запросы (#728).

27. [J] Как получить остаток на момент документа без его собственных движений? Передать в параметр Период виртуальной таблицы границу: Новый Граница(МоментВремени(), ВидГраницы.Исключая). Момент времени учитывает не только дату, но и порядок документов с одинаковым временем.

28. [J] Как получить цены товаров на дату документа? Срез последних периодического регистра сведений: РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦены = &ВидЦены И Номенклатура В (&СписокНоменклатуры)). Условия — в параметрах среза, а не в ГДЕ (#657). Полный пример — в задаче 6.

29. [M] Почему в условии запроса нельзя использовать вычисляемое выражение над полем? Функции, арифметика, отрицания и неравенства в основном условии не дают СУБД использовать индекс, и запрос читает таблицу целиком. Основное условие строят на индексированных полях через =, для последнего поля индекса допустимы и диапазоны, и В (#658, #652). Пример: вместо ГОД(Документ.Дата) = 2026 — Документ.Дата МЕЖДУ &Начало И &Конец.

30. [M] Как обработать выборку в миллион строк и не съесть память? Не выгружать всё в таблицу значений. Обходить выборку Выбрать() или брать данные порциями фиксированного размера: ВЫБРАТЬ ПЕРВЫЕ N с сортировкой по ключу и условием «больше последнего обработанного ключа» (#725). ВЫБРАТЬ * не пишут, выбирают только нужные поля (#729).

Регистры и учётные механизмы ​

31. [J] Зачем нужны регистры сведений, накопления, бухгалтерии и расчёта? Регистр сведений хранит значения по измерениям, в том числе с историей (периодический): цены, курсы, статусы. Регистр накопления — количественные и суммовые показатели: остатки (склад, взаиморасчёты) или обороты (продажи). Регистр бухгалтерии — учёт по плану счетов с двойной записью и субконто. Регистр расчёта — периодические расчёты по плану видов расчёта. Модель MC-6-001 ждёт понимания всех трёх учётных регистров уже от Junior.

32. [J] Как выбрать вид регистра накопления и какие у него виртуальные таблицы? Если у показателя есть осмысленный остаток на момент времени (товар на складе, долг), нужен вид «Остатки» с таблицами Остатки, Обороты и ОстаткиИОбороты. Если важны только суммы за период (продажи), нужен вид «Обороты» с таблицей Обороты.

33. [J] Чем измерение отличается от ресурса и реквизита? Измерения — разрезы учёта (склад, номенклатура), по ним строятся итоги и отборы. Ресурсы — числа, которые суммируются (количество, сумма). Реквизиты — дополнительная информация без итогов. Типичная ошибка проектирования — сделать измерением значение с огромным числом уникальных значений, например ссылку на документ: таблица итогов разрастается, остатки считаются медленнее.

34. [J] Что такое регистратор и когда записываются движения? Регистратор — документ, который сделал записи в регистре; при перепроведении его движения перезаписываются. В ОбработкаПроведения заполняют наборы Движения.<Регистр> и ставят им Записывать = Истина, а записывает их платформа после завершения обработчика. Явный Записать() в проведении нужен, только если движения используются дальше в той же процедуре, например для контроля остатков (#450, #661).

35. [J] Как хранить историю статусов клиента или цен? В периодическом регистре сведений, а текущее значение на дату читать через СрезПоследних. В табличной части справочника среза на дату нет, его придётся писать вручную. Такие задачи есть в тестовых заданиях: история статусов клиента, курсы на банковские дни.

36. [J] Что такое план счетов, субконто и регистр бухгалтерии? План счетов — список счетов с признаками (активный, пассивный, активно-пассивный; количественный, валютный) и видами субконто. Субконто — аналитика счёта: контрагенты, номенклатура, договоры. Регистр бухгалтерии хранит проводки: счёт дебета, счёт кредита, субконто, суммы. Основные виртуальные таблицы — Остатки, Обороты, ОборотыДтКт, ОстаткиИОбороты.

37. [J] Как устроен регистр расчёта? Он строится на плане видов расчёта (оклад, премия, больничный). У записи есть период регистрации, период действия и базовый период. Вытеснение задаёт, какие начисления вытесняют другие по периоду действия (больничный вытесняет оклад). Базовые виды расчёта задают, от каких начислений считается база (премия от оклада). Данные регистров расчёта получают через их виртуальные таблицы, а не собирают вручную.

Проведение, блокировки и транзакции ​

38. [J] Что происходит при проведении документа? Запись документа, ОбработкаПроведения и запись движений выполняются в одной транзакции. Если где-то установлен Отказ или возникло исключение, откатывается всё. Непроведённый документ — черновик без проверок бизнес-логики, проведённый — чистовик, который участвует в учёте (#603).

39. [M] Чем управляемый режим блокировок отличается от автоматического? В автоматическом режиме платформа ставит в СУБД высокий уровень изоляции, отсюда избыточные блокировки. В управляемом разработчик сам ставит блокировки 1С объектом БлокировкаДанных перед чтением данных, которые будет менять или которые должны остаться неизменными до конца транзакции, и блокирует только нужные записи. Конструкция ДЛЯ ИЗМЕНЕНИЯ в управляемом режиме смысла не имеет (#460).

40. [M] Чем исключительная блокировка отличается от разделяемой? Разделяемую блокировку на одни данные могут одновременно держать несколько транзакций. Исключительная несовместима ни с какой другой блокировкой тех же данных. Для сценария «прочитал — изменил» ставят исключительную сразу. Две разделяемые блокировки, которые обе пытаются повыситься до исключительной, — классическая взаимоблокировка.

41. [M] Как контролировать остатки при проведении? Первый вариант: в начале транзакции поставить управляемую блокировку на нужные остатки, прочитать их и только потом записать движения. Второй вариант описан в #661: сначала записать регистры без контроля, в самом конце — регистр с контролем (БлокироватьДляИзменения = Истина), затем запросом найти отрицательные остатки по позициям документа и отменить проведение. Без блокировки два пользователя прочитают остаток 10, спишут 8 и 6 и получат −4. Код — в 06_FAQ_and_Tips.md.

42. [M] Откуда берутся взаимоблокировки и как их избежать? Две транзакции захватывают одни ресурсы в разном порядке, или обе повышают разделяемую блокировку до исключительной. Помогают одинаковый порядок записи регистров во всех документах (например, алфавитный), исключительная блокировка сразу, короткие транзакции и блокировка только нужных записей (#661, #659). Расследуют по технологическому журналу (вопрос 69).

43. [M] Что значит ошибка «В этой транзакции уже происходили ошибки»? Исключение внутри транзакции не отменяет её, а взводит флаг запрета успешного завершения. Если код перехватил исключение и продолжил работать с базой, следующая операция падает с этой ошибкой. Вложенных транзакций платформа не поддерживает: вложенный НачатьТранзакцию() новую транзакцию не открывает (#783).

44. [M] Как правильно написать транзакцию в коде? Шаблон из #783: НачатьТранзакцию() непосредственно перед Попытка. Внутри Попытка — блокировки, чтение и запись, ЗафиксироватьТранзакцию() — последней строкой. В Исключение сначала ОтменитьТранзакцию(), затем запись в журнал регистрации и ВызватьИсключение. Начало и фиксация — в одном методе. Полный пример — в 06_FAQ_and_Tips.md.

45. [M] Чем объектная блокировка отличается от транзакционной? Объектная блокировка (Заблокировать() у объекта, ЗаблокироватьДанныеДляРедактирования) не даёт двум сеансам одновременно редактировать один объект. Пессимистическая захватывает объект заранее. Оптимистическая срабатывает при записи: платформа проверяет, не изменился ли объект после чтения. Транзакционные управляемые блокировки защищают согласованность данных внутри транзакции (#490, #648).

46. [M] Где платформа открывает транзакцию сама? Запись любого объекта или набора записей и проведение документа — транзакция, даже без НачатьТранзакцию(). В обработчиках ПередЗаписью, ПриЗаписи и ОбработкаПроведения вы уже внутри транзакции, и долгие вычисления там держат блокировки. Поэтому HTTP-вызовы и тяжёлые расчёты из транзакции записи выносят.

СКД, отчёты и печатные формы ​

47. [J] Из чего состоит система компоновки данных? Схема (наборы данных, связи, вычисляемые поля, ресурсы, параметры), настройки (варианты, отборы, группировки, условное оформление), макет компоновки, процессор компоновки и процессор вывода. Настройки в коде держит КомпоновщикНастроекКомпоновкиДанных. Типа КомпоновщикНастроекDCS не существует. Junior по модели MC-6-001 настраивает отчёты типовых без программирования.

48. [J] Как дать пользователю отбор по организации в отчёте на СКД? Не писать в запросе ГДЕ Организация = &Организация, а дать элемент отбора по полю и включить его в пользовательские настройки. Если параметр всё же нужен, делайте его необязательным через {ГДЕ ...} в запросе набора данных, чтобы отключение параметра не давало ошибку (#407).

49. [M] Как вывести отчёт на СКД из кода и подать в него свою таблицу? На сервере, через цепочку объектов платформы. Внешний набор данных передают структурой «имя набора → таблица значений». Для вывода не в табличный документ, а в таблицу значений берут другой процессор вывода, ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.

bsl
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Схема.НастройкиПоУмолчанию);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, Новый Структура("Товары", ТаблицаТоваров));
Результат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(Процессор);

50. [J] Как устроена печатная форма? Макет табличного документа с именованными областями (шапка, строка, подвал) и параметрами. На сервере данные получают одним запросом, затем берут область Макет.ПолучитьОбласть("Строка"), заполняют её параметры и выводят в ТабличныйДокумент. В типовых печатные формы подключают через подсистему БСП «Печать», внешние — через «Дополнительные отчеты и обработки».

Типовые конфигурации, БСП и расширения ​

51. [J] Что такое БСП и какие подсистемы вы использовали? Библиотека стандартных подсистем — основа типовых конфигураций: пользователи, управление доступом, печать, дополнительные отчёты и обработки, обновление информационной базы, длительные операции, безопасное хранилище и другие. На сентябрь 2026 года актуальны две редакции: 3.1.12 (платформы 8.3.24–8.3.27) и 3.2.1 (только 8.5.1). Модель MC-6-001 ждёт от Junior использования методов БСП в коде.

52. [J] Как доработать типовую конфигурацию, чтобы не сломать обновления? По порядку: настройки и функциональные опции → дополнительные отчёты и обработки БСП → расширение → изменение основной конфигурации с сохранением поддержки, если расширение не справляется. «Только расширения» — не правило: прямые правки допустимы, но осознанно и с учётом цены будущих обновлений.

53. [J] Как подключить внешнюю печатную форму или обработку к типовой? Через подсистему «Дополнительные отчеты и обработки». В модуле обработки нужна экспортная функция СведенияОВнешнейОбработке() с видом, назначением и командами. По умолчанию обработка работает в безопасном режиме: без COM, внешних компонент, файловой системы (кроме временных файлов) и интернета; недостающие права запрашивают через Разрешения. Внешний код подключают только средствами БСП, а не через «Файл → Открыть» (#669).

54. [J] Что можно и чего нельзя в расширении? Можно заимствовать объекты, добавлять реквизиты, формы и роли, перехватывать методы аннотациями &Перед, &После, &Вместо (с ПродолжитьВызов) и &ИзменениеИКонтроль с #Вставка и #Удаление (с 8.3.16). &Вместо берут, только если другие способы не подходят. Свои объекты и методы называют с префиксом расширения, например Расш1_; это проверяют правила EDT. Ограничения на изменение структуры смотрите в документации своей версии. Если расширений несколько, важен порядок их применения. Пример — в 06_FAQ_and_Tips.md.

55. [J] Как понять, что типовая изменена, и как её обновлять? По режиму поддержки объектов в Конфигураторе («замочек»): на поддержке, редактируется с сохранением поддержки, снят с поддержки. Порядок обновления изменённой конфигурации: резервная копия → обновление конфигурации поставщика → сравнение и объединение с основной конфигурацией → проверка → обновление конфигурации базы данных → обработчики обновления. Различайте конфигурацию поставщика, основную конфигурацию и конфигурацию базы данных. Большая база может обновляться часами, поэтому окно обновления планируют заранее.

56. [M] Как изменить поведение БСП, не трогая её код? Через общие модули *Переопределяемый (в БСП 3.2.1 их 78) с процедурами вида ПриОпределении.... В расширении к ним пишут обработчики &После. «Подписки на события» — объект платформы, а не механизм переопределения БСП; ими реагируют на запись объектов разных типов.

57. [M] Что проверить в расширении после обновления типовой? Применимость расширения: заимствованные объекты и перехватываемые методы могли измениться. &ИзменениеИКонтроль сверяет текст исходного метода и сразу покажет, что типовой код поменялся. Фирма «1С» сама поставляет исправления расширениями с назначением «Исправление», а БСП перед обновлением удаляет устаревшие исправления.

58. [M] Какие бывают обработчики обновления информационной базы в БСП? Режимы выполнения — Монопольно, Оперативно и Отложенно (#690). Отложенные обработчики работают в фоне уже после обновления, когда пользователи вернулись в систему. Поэтому их пишут порциями и с учётом того, что данные параллельно меняют пользователи.

Интеграции и обмены ​

59. [J] Как устроен HTTP-сервис в 1С? Это объект метаданных с корневым URL, шаблонами URL и методами (GET, POST и другими). Обработчик получает HTTPСервисЗапрос (параметры URL, заголовки, тело) и возвращает HTTPСервисОтвет с кодом состояния. Сервис публикуется на веб-сервере вместе с базой. Модель MC-6-001 ждёт этого уже от Junior, практика — P10 в 07_Projects.md.

60. [M] Как вызвать внешний REST API и не повесить систему?Новый HTTPСоединение(Сервер, Порт, , , , Таймаут, Новый ЗащищенноеСоединениеOpenSSL) плюс HTTPЗапрос, ответ — HTTPОтвет. Таймаут обязателен, обычно не больше 3 минут (#748). Проверяйте КодСостояния, записывайте ошибки в журнал, повторяйте запрос при временных сбоях. Синхронные вызовы — на сервере, на клиенте — асинхронные (ВызватьHTTPМетодАсинх). Типа ОбъектHTTPЗапроса не существует. Токены храните в безопасном хранилище (вопрос 79).

61. [J] Как читать и писать JSON и XML? JSON: потоково — ЧтениеJSON и ЗаписьJSON, целиком — ПрочитатьJSON (в структуру или соответствие) и ЗаписатьJSON. XML: ЧтениеXML и ЗаписьXML; для строгих форматов — пакеты XDTO и ФабрикаXDTO, для объектов 1С — СериализаторXDTO. Даты и числа из чужих API проверяйте на формат.

62. [M] Что такое стандартный интерфейс OData? REST-доступ к данным базы по протоколу OData v3: есть с 8.3.5, формат JSON — с 8.3.6. Работает после публикации базы и явного указания состава объектов (УстановитьСоставСтандартногоИнтерфейсаOData). Права — как у пользователя, под которым подключаются. Удобен для внешней аналитики и простых интеграций, но это доступ к данным, а не продуманный API.

63. [M] Как работает план обмена? Узлы — участники обмена. Изменения объектов регистрируются для узлов, выгружаются только зарегистрированные, и после подтверждения получения регистрация снимается. Распределённая информационная база связывает базы с одинаковой конфигурацией, универсальный обмен — разные конфигурации. При загрузке объекты пишут с ОбменДанными.Загрузка = Истина (#773).

64. [M] Чем Конвертация данных 3 отличается от КД 2? В КД 3.1 обмен идёт через общий формат EnterpriseData: каждая конфигурация переводит свои данные в формат и из формата по своим правилам (ПКО, ПКС, ПОД и другие). В КД 2 правила конвертации пишут для пары конфигураций «источник → приёмник». Модель MC-6-001 ждёт от Middle понимания разницы архитектур. Термины правил сверяйте с документацией КД 3.1 на ИТС.

65. [M] Как сделать интеграцию надёжной? Идемпотентность: повторная доставка того же сообщения не создаёт дубль, для этого у сообщения есть ключ. Очередь исходящих сообщений в регистре сведений (outbox), повторы с журналом и ограничением числа попыток, мониторинг зависших сообщений, таймауты. Вызовы внешних систем делают вне транзакции записи документа.

66. [M] Как подключить 1С к Kafka или RabbitMQ? В платформу 8 брокеры сообщений не встроены. Варианты: внешняя компонента Native API, HTTP-шлюз брокера или 1С:Шина. К 1С:Шине платформа подключается объектом «Сервисы интеграции» (с 8.3.17, протокол AMQP 1.0); в БСП есть транспорт обмена через 1С:Шину.

67. [S] Когда нужен WebSocket-клиент? С 8.3.27 в платформе есть объект метаданных «WebSocket-клиенты»: постоянное соединение и обработчики событий, например получения сообщения. Он нужен, когда внешняя система сама присылает события, а опрос по расписанию слишком медленный или дорогой. WebSocket-сервера в платформе нет.

Производительность и инфраструктура ​

68. [M] С чего начать, если «всё тормозит»? Сначала классифицировать проблему: тормозит всё, одна операция или отдельные пользователи. Для одной операции — замер производительности в отладчике и план запроса в СУБД. Для системы — технологический журнал, ожидания на блокировках, загрузка процессора, памяти и дисков, APDEX по ключевым операциям (подсистема БСП «Оценка производительности»). В 1С:КИП мониторингом и разбором занимаются ЦКК и ЦУП.

69. [M] Какие события технологического журнала включить для расследования блокировок?TLOCK (управляемые блокировки), TTIMEOUT (таймауты ожидания), TDEADLOCK (взаимоблокировки), запросы к СУБД DBMSSQL или DBPOSTGRS, а также EXCP (исключения). Журнал настраивают в logcfg.xml. Включайте только нужные события и на ограниченное время: журнал быстро растёт.

70. [M] Как ускорить запрос к большому регистру остатков? Условия передать в параметры виртуальной таблицы (#657). Текущие остатки получать без даты и использовать во внешнем запросе все измерения (#733). Проверить индексы под условия (#652) и убрать разыменования составных типов (#654). Если этого мало — денормализация: перенести нужное поле в регистр.

71. [S] Из каких процессов состоит кластер серверов 1С?ragent — агент сервера (порт 1540), rmngr — менеджер кластера (1541), rphost — рабочие процессы, в которых выполняется код и живут сеансы (по умолчанию порты 1560–1591), RAS — сервер администрирования (1545), с ним работает утилита rac. Настраивают лимиты памяти рабочих процессов, требования назначения функциональности и уровень отказоустойчивости; часть настроек доступна только в КОРП.

72. [S] Чем серверная лицензия КОРП отличается от ПРОФ? Только в КОРП: фоновое обновление конфигурации базы данных, профили безопасности, гибкое управление памятью, стратегии балансировки, внешнее управление сеансами и другие механизмы. МИНИ по документации 8.3.8 — ограничения ПРОФ плюс один рабочий сервер и не больше пяти клиентских сеансов. Отличия ПРОФ и КОРП модель MC-6-001 ждёт знать уже от Junior.

73. [S] Какую СУБД брать под 1С и почему PostgreSQL подходит не любой? PostgreSQL — только в сборках для 1С: от фирмы «1С», Postgres Pro, ALT или managed-сервисы с пометкой «-1c». В них есть патчи и расширения, которые нужны платформе; ванильный PostgreSQL не подходит. MS SQL Server поддерживается. Oracle и IBM Db2 формально поддерживаются, но это ниша.

74. [S] Можно ли обновить конфигурацию большой базы без остановки? Нет. Фоновое обновление конфигурации базы данных (только КОРП) делает основную работу, пока пользователи работают, но финальная фаза требует монопольного доступа. Простой сокращают по-другому: выносят доработки в расширения, репетируют обновление на копии с замером времени, переносят обработку данных в отложенные обработчики обновления БСП.

Безопасность и права ​

75. [J] Чем роли, функциональные опции и RLS отличаются друг от друга? Роли дают права на объекты и действия: читать справочник, проводить документ. Функциональные опции включают и выключают функциональность для всех пользователей. Ограничение доступа на уровне записей (RLS) нужно, когда права зависят от данных: менеджер видит только своих клиентов. В типовых RLS настраивают подсистемой БСП «Управление доступом» через профили и группы доступа. Право в коде проверяют функцией ПравоДоступа, а не РольДоступна.

76. [M] Когда нельзя писать РАЗРЕШЕННЫЕ?РАЗРЕШЕННЫЕ скрывает недоступные записи вместо ошибки доступа. В запросах для расчётов и проведения это искажает результат: например, себестоимость у разных пользователей получится разной. Там операцию прерывают с сообщением о недостатке прав или выдают права на чтение (#415). В списках и отчётах для просмотра РАЗРЕШЕННЫЕ уместно.

77. [M] Когда допустим привилегированный режим? Точечно: запись движений и служебных регистров, чтение данных, которые не уходят на клиент. Привилегированный режим отключает проверку прав и RLS, поэтому его не включают «на всякий случай» и не отдают полученные так данные на клиент (#485).

78. [M] Возможна ли инъекция в языке запросов? Да, если пользовательская строка попадает в текст запроса: ввод x" ИЛИ "1" = "1 превращает условие в «все записи». Язык запросов только читает данные, но так можно прочитать чужие, особенно в привилегированном режиме. Защита — параметры запроса. Параметр не экранирует спецсимволы шаблона ПОДОБНО: для них есть СПЕЦСИМВОЛ и функция БСП ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе (#726).

79. [M] Где хранить пароль или токен внешнего сервиса? Не в коде, не в константах и не в реквизитах формы. В конфигурациях на БСП — в безопасном хранилище: ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ) и ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи) в привилегированном режиме (#740). Данные там сжаты, но не зашифрованы: их защищают права доступа, а администратор СУБД прочитать их сможет.

80. [M] Чем опасны Выполнить и Вычислить? Это исполнение произвольного кода на сервере. От них отказываются, а если это невозможно, используют безопасный режим и обёртки БСП ОбщегоНазначения.ВыполнитьВБезопасномРежиме и ВычислитьВБезопасномРежиме (#770). Внешние обработки, расширения и тексты запросов извне — тоже внешний код, его подключают только средствами БСП (#669).

81. [S] Что сделать с безопасностью сразу после установки сервера 1С? Создать администраторов центрального сервера и кластера: по умолчанию аутентификации нет, и любой, кто подключится, получает полные права. Учесть, что шифрование канала «клиент — кластер» (собственный протокол 1С) по умолчанию выключено; TLS работает в HTTPS-публикации и на канале к СУБД. Для паролей пользователей на 8.3.26+ выбрать PBKDF2-HMAC-SHA256 (SHA-256 и SHA-512 — быстрые хеши, для паролей не рекомендуются), задать политику паролей и блокировку после неудачных попыток. Перед откатом платформы ниже 8.3.26 вернуть SHA-1 и переустановить пароли, иначе пользователи с новыми хешами не войдут. Подробнее — в SECURITY.md.

EDT, Git, тесты и качество ​

82. [J] Хранилище конфигурации или Git и EDT — что и где используют? Хранилище — захват объектов и линейная история, работа в Конфигураторе; так работают у франчайзи и в сопровождении. Git и 1C:EDT дают ветки, пул-реквесты, код-ревью и CI; это стандарт продуктовых, инхаус- и крупных проектных команд. Конфигуратор жив и развивается, утверждение «без EDT командная разработка невозможна» неверно. По модели MC-6-001 Junior работает с Git «в режиме исполнителя».

83. [M] Как перевести разработку с хранилища на Git? Официальный бесплатный 1С:ГитКонвертер переносит историю хранилища в Git в формате EDT. Утилита gitsync (OneScript) синхронизирует хранилище с Git так, что каждая версия хранилища становится коммитом. Для команд, которые остаются на хранилище, есть технология разветвлённой разработки (#709).

84. [M] На что вы смотрите на код-ревью? Запросы и разыменования в цикле, условия на виртуальные таблицы, лишние и контекстные серверные вызовы, транзакции и блокировки, модальные вызовы, права и привилегированный режим, РАЗРЕШЕННЫЕ, секреты в коде, обработка ошибок, оформление по стандартам (#456, #647, #640), наличие тестов. Готовый чек-лист — в 11_Checklists.md.

85. [M] Какие автотесты и проверки кода бывают в 1С? Модульные тесты — YAxUnit (в EDT). Сценарные UI- и BDD-тесты через клиент тестирования — Vanessa Automation (Gherkin, отчёты Allure) и официальные 1С:Тестировщик и 1С:Сценарное тестирование. Статический анализ — АПК, проверки EDT «1C:Code style V8», BSL Language Server, SonarQube с плагином для BSL. По модели MC-6-001 Junior создаёт сценарии автотестов по заданию.

86. [S] Как построить CI для 1С? Встроенной интеграции EDT с Jenkins, GitLab CI или GitHub Actions нет, конвейер собирают внешними средствами: 1cedtcli (командная строка EDT), ibcmd, vanessa-runner, jenkins-lib. Типичные шаги — сборка базы из исходников, синтаксический контроль, BSL LS или SonarQube, модульные и сценарные тесты, отчёт Allure. Официального production-образа Docker для сервера 1С нет, для CI используют образы сообщества. Подробнее — в tracks/developer-product.md.

Бухучёт и предметная область ​

87. [J] Что такое дебет, кредит и проводка? Чем активный счёт отличается от пассивного? Двойная запись: каждая операция отражается по дебету одного счёта и кредиту другого на одну сумму. Активные счета учитывают имущество, сальдо у них дебетовое (41 «Товары», 51 «Расчётные счета»). Пассивные учитывают источники, сальдо кредитовое (80 «Уставный капитал»). Активно-пассивные могут иметь любое сальдо (60, 62).

88. [J] Какие проводки даёт покупка и продажа товара? Поступление: Д41 К60 (материалы — Д10 К60), входящий НДС — Д19 К60. Продажа: Д62 К90.01 (выручка), Д90.03 К68 (НДС), Д90.02 К41 (себестоимость). Оплата от покупателя — Д51 К62, оплата поставщику — Д60 К51. Такие проводки встречаются в тестовых заданиях, подробнее — в 10_Domain_and_Law.md.

89. [J] Какие способы оценки запасов при списании допускает ФСБУ 5/2019? По себестоимости каждой единицы, по средней себестоимости и ФИФО. ЛИФО не было уже в ПБУ 5/01, поэтому фраза «ФСБУ 5/2019 отменил ЛИФО» неверна.

90. [J] Как посчитать среднюю себестоимость при списании? Средняя = сумма остатка / количество остатка на момент списания, по компании или по складу — как требует задача. Сумма списания = количество × средняя. При списании всего остатка берут всю сумму остатка, иначе остаются копейки. Остатки при этом читают с блокировкой (вопрос 41).

91. [J] Какие изменения законодательства 2026 года заметны программисту? Основная ставка НДС — 22% с 01.01.2026 (Федеральный закон № 425-ФЗ), расчётная — 22/122; меняются ставки в типовых, печатных формах и на кассах. Упрощенцы с доходами выше порога освобождения платят НДС; порог — 20 млн ₽ по доходам за 2025–2028 годы (228-ФЗ). Электронные перевозочные документы обязательны с 01.09.2026. Изменения в типовые приходят обновлениями, а программист вовремя обновляет базы и проверяет свои доработки. Актуальные редакции законов проверяйте на consultant.ru и nalog.gov.ru, подробнее — в 10_Domain_and_Law.md.

92. [J] Что программисту нужно знать о 152-ФЗ и 98-ФЗ? Персональные данные нельзя свободно копировать: базы для разработки и тестов обезличивают, доступ ограничивают, сроки хранения соблюдают. Код и данные клиента — коммерческая тайна по договору (98-ФЗ). За повторную утечку персональных данных предусмотрены оборотные штрафы (420-ФЗ). Отправка персональных данных во внешнюю LLM — трансграничная передача. Оба закона модель MC-6-001 включает в требования к Junior.

Архитектура ​

93. [S] Как спроектировать учёт себестоимости для большой базы? Отделить оперативный учёт от расчёта: при проведении пишутся количественные движения и оперативная оценка, а точную себестоимость за период рассчитывает регламентная операция закрытия месяца, как в типовых УТ и ERP. Нужно учесть перепроведение задним числом и объём данных: расчёт идёт порциями и в фоне.

94. [S] Как обновить сильно доработанную конфигурацию с минимальным простоем? Составить план: инвентаризация доработок, перенос в расширения там, где это возможно, обновление и тесты на копии с замером времени, обработчики обновления БСП и отложенная обработка данных, окно простоя по результатам замера, план отката. По модели MC-6-001 план обновления и перехода составляет Senior.

95. [S] Как спроектировать RLS, чтобы не потерять производительность? Простые условия по индексированным полям, производительный (универсальный) вариант ограничения доступа БСП вместо стандартного, проверка планов запросов под обычным пользователем, РАЗРЕШЕННЫЕ только там, где он нужен (#415). Пользователям с неограниченным просмотром условия RLS не задают (#488).

96. [S] Когда брать 1С:Элемент, а когда платформу 8? Учётный back-office — платформа 8 и типовые конфигурации. 1С:Предприятие.Элемент (актуальная версия 10.0) — самостоятельная платформа приложений: свой язык со статической типизацией, декларативный интерфейс на YAML, облако 1cmycloud.com или собственная установка. С платформой 8 его связывают HTTP-сервисы или 1С:Шина. Спрос на Элемент пока нишевый, подробнее — в tracks/element-and-mobile.md.

97. [S] Как вы проектируете метаданные под новую задачу? От результата к данным: какие отчёты, остатки и контроли нужны → какие регистры и измерения → какие документы их формируют → какие справочники. Сразу учитывают объёмы данных, параллельную работу пользователей (разделение итогов, мелкие ресурсы блокировки — #659), права и RLS, обмены и обновления. Решение документируют, чтобы его мог сопровождать другой человек.

ИИ в работе ​

98. [J] Пользуетесь ли вы ИИ и как проверяете его код? Честный ответ лучше уклончивого: да, как черновиком. Проверка — BSL Language Server, синтаксический контроль, тесты и ревью, как для чужого кода. Модели ошибаются на BSL: выдумывают методы и типы, пишут запросы в цикле, нарушают разделение клиента и сервера. По бенчмарку PRISM (прогон 25.09.2026) лучшие модели решают 85–100% задач, GigaChat и YandexGPT — 0–13%. Подробнее — в 09_AI_Development.md.

99. [M] Можно ли выгрузить базу клиента в ChatGPT или другой внешний ИИ? Нет. Персональные данные во внешнем сервисе — трансграничная передача по 152-ФЗ, код и данные клиента — коммерческая тайна (98-ФЗ), для ГИС действует прямой запрет п. 60 Приказа ФСТЭК № 117 (с 01.03.2026). MCP-сервер к базе не является границей безопасности: доступ ограничивают права пользователя 1С, обезличенная копия и учётная запись только на чтение. 1С:Напарник — облачный сервис, код уходит на серверы 1С.

100. [S] Какие правила работы с ИИ вы бы ввели в команде? Список разрешённых инструментов (например, 1С:Напарник в EDT по подписке ИТС; условия доступа — на code.1c.ai), запрет передачи персональных данных и коммерческой тайны во внешние сервисы, обезличенные базы для экспериментов, обязательные BSL LS, тесты и ревью для любого сгенерированного кода, проверка моделей на своих задачах.

Soft skills и поведенческие вопросы ​

101. [J] Расскажите о задаче, где требования были неполными. Хороший ответ строится по схеме «ситуация → что сделал → результат»: уточнил у постановщика, записал допущения, показал промежуточный результат, вовремя сообщил о риске для сроков. Модель MC-6-001 ждёт от любого уровня, что проблемы эскалируют «наверх» вовремя, а сроки соблюдают.

102. [J] Как объяснить бухгалтеру, почему документ не проводится? Без терминов платформы: какого товара не хватает, сколько, на каком складе и на какую дату, и что с этим сделать — провести поступление, изменить дату, списать с другого склада. Сообщение в самой программе тоже должно это объяснять: если ставите Отказ = Истина, сообщите пользователю причину (#686).

103. [M] Как вы оцениваете задачу? Декомпозиция на шаги, сравнение с похожими задачами, отдельная оценка рисков и неизвестных (типовая, обмены, права, производительность), буфер, согласование допущений с постановщиком. По модели MC-6-001 оценивать трудозатраты должен Middle; Junior достаточно честно сказать, сколько времени уйдёт на понятную ему часть и что нужно уточнить.

104. [J] Расскажите о своей ошибке, которая дошла до пользователей. Интервьюер проверяет честность и выводы: что сломалось, как нашли, как быстро исправили и что изменили в процессе (тест, пункт чек-листа, проверка на копии). Перекладывание вины — плохой сигнал.

105. [J] Как вы следите за изменениями платформы и законодательства? ИТС и информационные письма фирмы «1С», списки изменений платформы и типовых, обновления стандартов разработки (модель MC-6-001 прямо требует за ними следить), профильные сообщества и конференции. Список ресурсов — в 05_Resources.md.

🚀 Задачи для live-coding ​

Live-coding на собеседовании по 1С обычно короткий: функция на коллекциях, запрос «на доске» или поиск ошибок в чужом коде. Проговаривайте ход мысли: какие уточнения нужны, какие граничные случаи, какая сложность. Задачи 1–4 взяты из тестовых заданий в таблице выше. Сначала решите сами, потом сверьтесь с решением.

1. Удалить отрицательные числа из массива ​

Удалить отрицательные элементы, не создавая новый массив и сохранив порядок остальных.

bsl
// Обход с конца: удаление не сдвигает ещё не проверенные элементы
Процедура УдалитьОтрицательные(Массив)
    Индекс = Массив.ВГраница();
    Пока Индекс >= 0 Цикл
        Если Массив[Индекс] < 0 Тогда
            Массив.Удалить(Индекс);
        КонецЕсли;
        Индекс = Индекс - 1;
    КонецЦикла;
КонецПроцедуры

Интервьюер спросит про сложность. В худшем случае она квадратичная: каждое Удалить сдвигает хвост массива. Линейный вариант — переписать неотрицательные элементы в начало массива, а затем удалять лишние элементы с конца. Граничные случаи: пустой массив, все элементы отрицательные, нули.

2. Распределить сумму без потери копеек ​

Распределить сумму пропорционально коэффициентам с точностью до копейки.

bsl
// Коэффициенты — неотрицательные числа. Погрешность округления
// добавляется к доле с наибольшим коэффициентом.
Функция РаспределитьСумму(Знач Сумма, Знач Коэффициенты)
    СуммаКоэффициентов = 0;
    ИндексМаксимального = 0;
    Для Индекс = 0 По Коэффициенты.ВГраница() Цикл
        СуммаКоэффициентов = СуммаКоэффициентов + Коэффициенты[Индекс];
        Если Коэффициенты[Индекс] > Коэффициенты[ИндексМаксимального] Тогда
            ИндексМаксимального = Индекс;
        КонецЕсли;
    КонецЦикла;
    Если СуммаКоэффициентов = 0 Тогда
        Возврат Неопределено; // пустой массив или одни нули
    КонецЕсли;

    Результат = Новый Массив;
    Распределено = 0;
    Для Каждого Коэффициент Из Коэффициенты Цикл
        Доля = Окр(Сумма * Коэффициент / СуммаКоэффициентов, 2);
        Результат.Добавить(Доля);
        Распределено = Распределено + Доля;
    КонецЦикла;
    Результат[ИндексМаксимального] = Результат[ИндексМаксимального] + Сумма - Распределено;
    Возврат Результат;
КонецФункции

Проверка: 100 ₽ на коэффициенты 1, 1, 1 дают 33,34 + 33,33 + 33,33. В БСП есть готовая ОбщегоНазначенияКлиентСервер.РаспределитьСуммуПропорциональноКоэффициентам, но на собеседовании её обычно просят написать самостоятельно.

3. Сравнить номера версий ​

Сравнить 8.1.13.41 и 8.1.009.125 без библиотек; ведущие нули на результат не влияют.

bsl
// Возвращает 1, если Версия1 больше, -1 — если меньше, 0 — если равны.
// Части сравниваются как числа: «009» = «9», «8.1» = «8.1.0».
Функция СравнитьНомераВерсий(Знач Версия1, Знач Версия2)
    Части1 = СтрРазделить(Версия1, ".");
    Части2 = СтрРазделить(Версия2, ".");
    КоличествоЧастей = Макс(Части1.Количество(), Части2.Количество());
    Для Индекс = 0 По КоличествоЧастей - 1 Цикл
        Число1 = ЧастьВерсии(Части1, Индекс);
        Число2 = ЧастьВерсии(Части2, Индекс);
        Если Число1 > Число2 Тогда
            Возврат 1;
        ИначеЕсли Число1 < Число2 Тогда
            Возврат -1;
        КонецЕсли;
    КонецЦикла;
    Возврат 0;
КонецФункции

Функция ЧастьВерсии(Части, Индекс)
    Если Индекс < Части.Количество() Тогда
        Возврат Число(Части[Индекс]); // нечисловая часть вызовет исключение
    КонецЕсли;
    Возврат 0;
КонецФункции

Для 8.1.13.41 и 8.1.009.125 результат — 1: третья часть 13 больше 9. Строковое сравнение здесь ошибается. В БСП для этого есть ОбщегоНазначенияКлиентСервер.СравнитьВерсии.

4. Гласные в каждом втором слове ​

Для фразы посчитать гласные в каждом втором слове (тестовое задание 2026 года). Прежде чем писать код, уточните: что считать словом при знаках препинания и нескольких пробелах, учитывать ли «ё» и латиницу. Подсказки: СтрРазделить(Фраза, " ", Ложь) убирает пустые подстроки; каждое второе слово — элементы с индексами 1, 3, 5…; символ слова — Сред(Слово, Позиция, 1), проверка — СтрНайти(Гласные, Символ) > 0 после НРег().

5. Запрос «на доске»: клиенты без продаж за период ​

bsl
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |    Контрагенты.Ссылка КАК Контрагент
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода) КАК Продажи
    |        ПО Продажи.Контрагент = Контрагенты.Ссылка
    |ГДЕ
    |    НЕ Контрагенты.ПометкаУдаления
    |    И Продажи.Контрагент ЕСТЬ NULL";
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаОкончания));
Выборка = Запрос.Выполнить().Выбрать();

Что спросят дальше: почему не ВНУТРЕННЕЕ соединение (оно вернёт только клиентов с продажами), как переписать через НЕ Контрагенты.Ссылка В (ВЫБРАТЬ ...), почему период передаётся в параметры виртуальной таблицы, а не фильтруется в ГДЕ.

6. Найдите ошибки в чужом коде ​

Классика технического интервью: код из формы документа, который «работает». Найдите как можно больше проблем, потом сверьтесь с разбором.

bsl
// ❌ Как делать не нужно
&НаКлиенте
Процедура ЗаполнитьЦены(Команда)
    Если Вопрос("Заполнить цены?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
        ЗаполнитьЦеныНаСервере(Объект.Товары);
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьЦеныНаСервере(Товары)
    Для Каждого Строка Из Товары Цикл
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ *
            |ИЗ
            |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Цены
            |ГДЕ
            |    Цены.Номенклатура = &Номенклатура";
        Запрос.УстановитьПараметр("Номенклатура", Строка.Номенклатура);
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            Строка.Цена = Выборка.Цена;
        КонецЕсли;
        Если Строка.Номенклатура.ЭтоУслуга Тогда
            Строка.Количество = 1;
        КонецЕсли;
        Строка.Сумма = Строка.Цена * Строка.Количество;
    КонецЦикла;
КонецПроцедуры

Что не так:

  • Вопрос — модальный вызов, в веб-клиенте не работает (#703).
  • Контекстный вызов &НаСервере, и табличная часть вдобавок передаётся параметром, причём без Знач: данные формы гоняются дважды.
  • Запрос в цикле (#436) и Строка.Номенклатура.ЭтоУслуга — ещё один скрытый запрос на каждую строку.
  • ВЫБРАТЬ * без псевдонимов (#729, #437).
  • Условие на виртуальную таблицу в ГДЕ вместо параметров (#657).
  • Срез без даты и вида цены: берутся текущие цены любого вида, а не цены на дату документа.
bsl
// ✅ Один серверный вызов, один запрос, срез на дату документа
&НаКлиенте
Асинх Процедура ЗаполнитьЦены(Команда)
    Ответ = Ждать ВопросАсинх(НСтр("ru = 'Заполнить цены?'"), РежимДиалогаВопрос.ДаНет);
    Если Ответ = КодВозвратаДиалога.Да Тогда
        ЗаполнитьЦеныНаСервере();
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьЦеныНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура,
        |    Номенклатура.ЭтоУслуга КАК ЭтоУслуга,
        |    ЕСТЬNULL(Цены.Цена, 0) КАК Цена
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |                &Дата,
        |                ВидЦены = &ВидЦены
        |                    И Номенклатура В (&СписокНоменклатуры)) КАК Цены
        |        ПО Цены.Номенклатура = Номенклатура.Ссылка
        |ГДЕ
        |    Номенклатура.Ссылка В (&СписокНоменклатуры)";
    Запрос.УстановитьПараметр("Дата", Объект.Дата);
    Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены);
    Запрос.УстановитьПараметр("СписокНоменклатуры",
        ОбщегоНазначения.ВыгрузитьКолонку(Объект.Товары, "Номенклатура", Истина)); // БСП

    ДанныеТоваров = Новый Соответствие;
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ДанныеТоваров.Вставить(Выборка.Номенклатура,
            Новый Структура("Цена, ЭтоУслуга", Выборка.Цена, Выборка.ЭтоУслуга));
    КонецЦикла;

    Для Каждого Строка Из Объект.Товары Цикл
        Данные = ДанныеТоваров.Получить(Строка.Номенклатура);
        Если Данные = Неопределено Тогда
            Продолжить; // пустая строка табличной части
        КонецЕсли;
        Строка.Цена = Данные.Цена;
        Если Данные.ЭтоУслуга Тогда
            Строка.Количество = 1;
        КонецЕсли;
        Строка.Сумма = Строка.Цена * Строка.Количество;
    КонецЦикла;
КонецПроцедуры

Контекстный вызов здесь оправдан: процедура меняет табличную часть формы, и платформа сама оптимизирует передачу коллекций данных формы (#636).

Ещё задачи для тренировки ​

Число прописью до 100 млн без ЧислоПрописью, так чтобы новые разряды добавлялись легко. «Змейка» — заполнить матрицу 12×10 числами по порядку (направление обхода уточните у интервьюера). Непростые числа до k и НОК двух чисел. Циклическая ссылка в иерархии: элемент ссылается на родителя, который через цепочку ссылается на него. Пересчёт продаж в рубли по курсам, которые есть только на банковские дни (срез последних). Полные условия с критериями приёмки — проект P0 в 07_Projects.md.

🎯 Как готовиться ​

Приоритеты по уровням ​

  • Junior. Все вопросы с меткой [J] и задачи live-coding 1–6. Если времени мало, начните с вопросов 5–6, 13–17, 22, 25, 27–28, 31–34, 38, 51–55, 87–88 (и 41, если в тестовом задании есть склад): эти темы повторяются в тестовых заданиях и в репозитории interview-1c.
  • Middle. Плюс все вопросы [M], особенно блокировки и транзакции (39–46), запросы и производительность (29–30, 68–70), интеграции (60, 63–65), права (76–79).
  • Senior. Плюс вопросы [S] и умение объяснить компромиссы: чем платим за решение и при каких условиях оно перестанет работать.

План на две недели ​

Ориентир авторов, подстройте под себя.

ДниЧто делатьРезультат
1–2Самооценка по 03_Competencies.md, отметить вопросы банка, на которые не можете ответитьСписок пробелов
3–7Закрыть пробелы: синтакс-помощник, стандарты, свой учебный проект; каждый день 2–3 задачи live-coding по таймеруОтветы своими словами
8–9Подготовить рассказ о 2–3 проектах: задача → решение → результат → что улучшили быРассказы по 2–3 минуты
10–11Пробное интервью с коллегой или запись себя на видео по 20 случайным вопросамСписок слабых мест
12–13Изучить компанию: контекст, конфигурации, стек; подготовить вопросы работодателю5–7 вопросов
14Повторить приоритетные вопросы своего уровня, проверить, как открывается и показывается портфолиоГотовность

Как отвечать ​

  • Схема ответа: суть одной фразой → пример из вашего проекта → подводный камень → как проверить (стандарт, замер, тест). Рисуйте: схему регистров, путь вызова от клиента к серверу, порядок блокировок.
  • Не знаете — так и скажите и объясните, как бы выяснили: синтакс-помощник, ИТС, стандарты, эксперимент на копии базы. Выдуманный ответ хуже честного «не знаю».
  • На live-coding думайте вслух: интервьюеру важен ход мысли, а не только результат.

Карта «проект → вопросы» ​

Проекты из 07_Projects.md дают примеры для ответов. Сделанный проект помогает отвечать не заученно.

ПроектВопросы банкаLive-coding
P0 Разминка на коллекциях5–7, 121–4
P1 Справочники «Управление ИТ-фирмой»1–4, 9, 75—
P2 Склад: приход, расход, остатки22, 27, 31–34, 38–42—
P3 Цены, скидки, продажи, печатная форма28, 35, 506
P4 Взаиморасчёты и история статусов23, 355
P5 Себестоимость и рентабельность90, 93—
P6 Бухучёт на плане счетов36, 87–89—
P7 Внешняя печатная форма и отчёт для типовой47–48, 50, 53—
P8 Расширение типовой52, 54–57—
P9 Загрузка из Excel/CSV с поиском дублей20, 25, 30—
P10 REST HTTP-сервис каталога59, 61—
P11 Клиент внешнего API с регламентным заданием21, 60, 65, 79—
P12 Обмен между двумя базами63–64—
P13 Качество и CI82–866
P14 Найди и почини (производительность)29, 42, 68–706
P15 RLS и роли75–77, 95—
P17 Решение с ИИ-ассистентом98–100—

💼 Вопросы работодателю ​

Собеседование двустороннее. Ответы на эти вопросы покажут, чему вы научитесь и как будете работать.

Задачи и стек

  • Какие конфигурации и на какой платформе (8.3.27 или 8.5.1)? Как часто обновляете типовые и платформу?
  • Какая доля задач — сопровождение, а какая — новая разработка? Какой будет моя первая задача?
  • Конфигуратор и хранилище или EDT и Git? Есть ли код-ревью, автотесты, статический анализ?
  • Есть ли копии баз для разработки и тестов, или разработчики правят рабочую базу?

Процесс и команда

  • Кто ставит задачи и в каком виде: ТЗ, задача в трекере, устно?
  • Как оценивают задачи и что происходит, если оценка не сошлась с фактом?
  • Есть ли наставник на испытательном сроке и какие у испытательного срока критерии?
  • Кто отвечает за кластер, СУБД и обновления платформы?

Развитие, данные и ИИ

  • Есть ли у сотрудников доступ к ИТС? Поддерживает ли компания сертификацию и обучение: 1С:Профессионал, 1С:Специалист, курсы?
  • По каким критериям Junior становится Middle и кто это решает?
  • Как устроена работа с персональными данными клиентов: обезличенные копии, доступ к рабочим базам?
  • Разрешены ли ИИ-ассистенты (например, 1С:Напарник в EDT) и на каких условиях?

Условия

  • Формат работы (офис, гибрид, удалёнка), дежурства, работа в выходные во время обновлений.
  • Для франчайзи и проектных компаний: есть ли норматив по часам, которые оплачивает клиент, и что будет при его невыполнении?

❌ Красные флаги ​

У работодателя ​

  • Тестовое задание на несколько недель или «реальная задача клиента» бесплатно.
  • Разработка прямо в рабочей базе клиента, без копии, хранилища или Git и без резервных копий.
  • Базы с персональными данными пересылают по почте или загружают во внешние ИИ-сервисы без обезличивания. Это риск и для компании, и для вас (152-ФЗ, 98-ФЗ).
  • Типовые и платформа давно не обновлялись, плана нет, доработки внесены прямо в типовые без учёта обновлений.
  • Обязанности не описаны и не ограничены: «немного программировать, администрировать сервер, консультировать бухгалтерию и чинить принтеры», и никто не может сказать, что важнее. Гибридные роли — норма, размытые — нет.
  • На вопросы о процессе, наставничестве и критериях испытательного срока нет ответов.
  • Условия работы, оплаты и испытательного срока не готовы зафиксировать письменно.

У кандидата: что вредит на собеседовании ​

  • Заученные определения без примера из своей практики.
  • Опыт, которого нет (ERP, EDT, интеграции): уточняющие вопросы раскроют это за пару минут.
  • Тестовое без инструкции запуска и без исходников, только .cf или .dt.
  • Код от ИИ, который кандидат не может объяснить.
  • Устаревшие мифы: «8.5 — новая платформа», «без EDT командная разработка невозможна», «ФСБУ 5/2019 отменил ЛИФО». Разбор мифов — в 01_Strategy.md и 06_FAQ_and_Tips.md.
  • Негатив о прошлом работодателе и клиентах.

🔗 Источники ​


← Предыдущий | 🗺 Оглавление | Следующий →