Найти в Дзене
Технический гайд

Технический гайд

Технический гайд (для админов, разработчиков и продвинутых пользователей)
подборка · 2 материала
5 месяцев назад
«А вы точно Senior?» 6 вопросов на засыпку для 1С-разработчика. Проверь себя! 🧠 Думаете, что знаете 1С вдоль и поперек? Давайте проверим. Эти вопросы я задаю на собеседованиях, чтобы отсечь тех, кто просто «копирует код из интернета», от тех, кто понимает, как платформа работает внутри. 👇 Попробуйте ответить сами, прежде чем читать разбор! 1️⃣ Вопрос про транзакции и блокировки: «У нас есть длинная транзакция (более 5 минут), в которой мы обходим большой цикл и делаем запись в регистр. В это время другой пользователь пытается провести документ, который затрагивает те же записи. Что произойдет? И почему `НачатьТранзакцию()` не спасет от взаимоблокировок в этом случае?» ✅ Что хотим услышать: Понимание того, что транзакция удерживает блокировки до своего завершения. Знание разницы между управляемыми и автоматическими блокировками. Упоминание `ПолучитьБлокировкуДанных` или оптимизации алгоритма, чтобы не держать блокировку долго. 2️⃣ Вопрос про СКД (Систему Компоновки Данных): «В схеме СКД есть два набора данных: один сложный запрос с соединениями, второй — простой справочник. Как сделать так, чтобы параметр из первого набора фильтровал данные во втором, но при этом не превратить всё в декартово произведение и не убить производительность?» ✅ Что хотим услышать: Использование связей наборов данных (Join vs Where). Понимание, что связь должна быть по индексированным полям. Возможно, упоминание временных таблиц в самом запросе, если СКД не справляется. 3️⃣ Вопрос про HTTP-сервисы и асинхронность: «К нам стучится внешний сервис через HTTPPost. Обработка занимает 30 секунд. Клиент обрывает соединение через 10 секунд. Как гарантировать, что обработка в 1С завершится корректно, даже если клиент уже "ушел", и как вернуть ему ответ позже?» ✅ Что хотим услышать: Понимание, что HTTP-запрос и выполнение кода 1С могут жить разной жизнью. Решение через фоновые задания (`ФоновоеЗадание`) или регламентные задания. Паттерн «поллинг» (клиент спрашивает статус) или вебхуки (1С сама пушает результат, когда готово). 4️⃣ Вопрос про память и сервер приложений: «Обработка выгружает 1 миллион строк в Excel на сервере. Память рабочего процесса растет и не освобождается даже после завершения обработки. В чем причина и как диагностировать?» ✅ Что хотим услышать: Проблема утечек памяти (Memory Leak). Возможные причины: незакрытые COM-объекты, глобальные переменные, кэширование больших объектов. Диагностика через технологический журнал (TJ) и анализ dump-файлов. 5️⃣ Вопрос про расширяемость (Расширения конфигурации): «В основной конфигурации есть метод объекта `ПриЗаписи()`. Нам нужно в расширении изменить логику этого метода, но не переопределять его полностью, а добавить проверку *перед* стандартной записью. Как это сделать правильно, учитывая порядок выполнения модулей?» ✅ Что хотим услышать: Знание приоритетов выполнения кода в расширениях. Использование подписок на события вместо прямого переопределения, если возможно. Или аккуратное использование `ПередЗаписью` в расширении с вызовом `Отказ = Истина`, если проверка не прошла, понимая риски конфликтов с другими расширениями. 6️⃣ Вопрос про SQL и планы запросов: «Запрос выполняется быстро на тестовой базе (1000 документов) и ужасно медленно на рабочей (10 млн документов). Индексы есть, статистика обновлена. План запроса показывает "Nested Loops". Что будете делать?» ✅ Что хотим услышать: Не просто «добавлю индекс», а анализ селективности индексов. Возможно, сервер решает, что Nested Loops эффективнее Hash Join для малого подмножества данных, но ошибается. Подсказки оптимизатору (hints), изменение структуры запроса, использование временных таблиц для материализации промежуточных результатов. #1Спрограммист #собеседованиеIT #Senior1C #архитектура1С #работа1С #hardquestions
5 месяцев назад
Как правильно выгружать и загружать базы 1С: DT, CFU и архивы — когда что использовать. Резервное копирование в 1С — тема, которую часто откладывают «на потом», пока не случится сбой. Разберём три основных формата сохранения данных, их отличия и типовые ошибки при работе с ними. 🔹 Что такое DT-файл? DT (Data Transfer) — это нативный формат выгрузки информационной базы 1С. Он содержит всё: конфигурацию, данные, журналы регистрации, права доступа и настройки пользователей. Файл создаётся через конфигуратор и открывается только в 1С. Когда использовать: - Перед обновлением конфигурации - При переносе базы на другой сервер - Для отладки доработок на копии - При миграции с файлового режима на клиент-серверный 🔹 CFU vs DT: в чём разница? CFU (Configuration File Update) — это файл обновления конфигурации, а не базы данных. Он содержит только изменения в метаданных (справочники, документы, отчёты), но не переносит пользовательские данные. Правильный порядок действий при обновлении: 1. Выгрузить базу в DT (резервная копия) 2. Загрузить CFU через конфигуратор 3. Обновить конфигурацию базы данных 4. Протестировать и исправить ссылочную целостность Попытка «развернуть» CFU как базу данных приведёт к ошибке: в файле нет таблиц с документами и справочниками. 🔹 А что насчёт ZIP/RAR? Архивация папки с базой (например, `1Cv8.1CD`) допустима только при **остановленной базе**. Если пользователи работают, файл блокируется ОС, и архив получится битым. DT-файл, в отличие от ZIP, создаётся транзакционно: 1С гарантирует целостность данных даже при активной работе. ⚠️ Типичные ошибки 1. Выгрузка без проверки целостности → перед созданием DT всегда запускайте `Тестирование и исправление`. 2. Игнорирование журнала регистрации → в старых версиях 1С он не попадал в DT. В современных платформах (8.3.20+) включается галочкой при выгрузке. 3. Хранение DT на том же диске → резервная копия теряет смысл, если диск выходит из строя. Правило 3-2-1: 3 копии, 2 разных носителя, 1 вне офиса. ✅ Чек-лист безопасной выгрузки - [ ] Все пользователи вышли из базы - [ ] Запущено тестирование и исправление - [ ] Выгрузка выполняется через Конфигуратор → Администрирование → Выгрузить информационную базу - [ ] Файл проверен на открытие в тестовой базе - [ ] Копия сохранена на внешний носитель или в облако Понимание форматов резервного копирования экономит часы на восстановление и снижает риски потери данных. Регулярная практика выгрузки в DT должна стать стандартом, а не экстренной мерой. #1С #программирование #базыданных #резервноекопирование #обучение1С #ИТдлябизнеса #разработка