А
Андрей Про 1С
@andreypro1c898 подп.
1.5Kпросмотров
23 февраля 2026 г.
Score: 1.6K
Хитрое тестирование на собеседование 1С программистов на знание оптимизации и производительности. Ниже мой комментарий с решением👇 Есть регистр накопления ВзаиморасчетыСКлиентами (вид — Остатки). Необходимо получить клиентов с задолженностью на текущий момент. Разработчик написал запрос: ВЫБРАТЬ Остатки.Клиент, Остатки.Остаток КАК Долг ИЗ РегистрНакопления.ВзаиморасчетыСКлиентами.Остатки( &МоментВремени ) КАК Остатки ГДЕ Остатки.Остаток > 0 В регистре десятки миллионов движений, сотни тысяч клиентов. Запрос выполняется медленно. Какой вариант оптимизации будет наиболее правильным? ✔️ Перенести условие Остатки.Остаток > 0 в параметры виртуальной таблицы ✔️ Использовать виртуальную таблицу Обороты вместо Остатки ✔️ Добавить измерение Клиент в отбор параметров виртуальной таблицы ✔️ Убедиться, что включены и пересчитаны текущие итоги регистра ✅ Правильный ответ: ➜ Убедиться, что включены и пересчитаны текущие итоги регистра. 💬 Комментарий: Многие программисты часто пытаются найти ошибки в самом запросе, а проблема — в настройке регистра. Условие Остаток > 0 нельзя передать в параметры виртуальной таблицы, потому что параметры принимают только отборы по измерениям. Если в регистре отключены или не пересчитаны текущие итоги, то при обращении к Остатки(&Момент) платформа будет пересчитывать остатки по всем движениям до момента времени и агрегировать десятки миллионов записей. При включённых и пересчитанных текущих итогах платформа читает уже рассчитанные агрегаты и запрос становится на порядок быстрее. 🛠Настройка: 1. Пользовательский режим: Функции технического специалиста - Стандартные - Управление итогами. 2. Конфигуратор: Администрирование - Тестирование и исправление - Пересчет итогов. 3. Программно: РегистрыНакопления.ВзаиморасчетыСКлиентами.ПересчитатьТекущиеИтоги(); 👍 Like, если было полезно😉
1.5K
просмотров
1863
символов
Да
эмодзи
Нет
медиа

Другие посты @andreypro1c

Все посты канала →
Хитрое тестирование на собеседование 1С программистов на зна — @andreypro1c | PostSniper