Как DeepSeek за несколько минут помог решить проблему, на которую ушли бы часы ручной отладки

26.09.25

Интеграция - Нейросети

Когда-то давно на семерке и конфах типа УТ 10.3 отладка была панацеей. Теперь же на современных монстрах в работе преобладает аналитический подход и понимание, что прийдется обратиться к коду типовой конфигурации - немного удар по психике. Поэтому с удовольствием хочу поделиться с Вами альтернативой. Диагностика сложных проблем в 1С с помощью нейросети может быть выполнена в разы быстрее: специальный скрипт очистил замер производительности от технического "шума", а ИИ точно выявил проблемный код. Готовый рецепт и методика - в данной статье!

История из практики: при подключении нового сайта КОМФОРТ к обмену в "1С:Комплексная автоматизация 2.5" обнаружилась странная аномалия. При абсолютно идентичных настройках свойства номенклатуры, которые успешно выгружались на сайт МАРКЕТ, напрочь отсутствовали в выгрузке для КОМФОРТ.

Проблема:

  • Сайт МАРКЕТ: свойства выгружаются корректно

  • Сайт КОМФОРТ: свойства отсутствуют в файле обмена

  • Настройки идентичные, конфигурация одна

  • Логика должна быть одинаковой, но результат разный

Традиционный подход: долго и муторно

Обычная отладка такой проблемы потребовала бы:

  1. Построчный анализ модулей обмена (3000+ строк кода)

  2. Сравнение настроек компоновки данных для двух сайтов

  3. Пошаговую отладку в режиме предприятия

  4. Проверку условий и ветвлений логики

Итог: несколько часов интенсивной работы опытного разработчика.

Решение: DeepSeek + Python = результат за несколько минут

Вместо рутины был применен интеллектуальный подход:

  1. Снятие замера производительности формирования выгрузки для КОМФОРТ

  2. Автоматическое сокращение файла замера с помощью Python-скрипта

  3. Анализ сокращенных данных нейросетью DeepSeek

Ключевой момент: Python-скрипт убрал весь "шум" (время выполнения, счетчики вызовов), оставив только чистые команды:

python

# После обработки остались только значимые операции
ВыборкаПоДопРеквизитам = Запрос.Выполнить().Выбрать();
ПланыОбмена.ЗарегистрироватьИзменения(Параметры.УзелОбмена, ЭлементМассива);
Если НЕ СтрокаДерева.Номенклатура.ЭтоГруппа Тогда
...

Результат анализа DeepSeek: мгновенное озарение

Нейросеть сразу выделила критически важное условие:

bsl

Если СтрНайти(ПрикладныеПараметры.УзелОбмена.АдресСайта,"comfort...") > 0 Тогда
    // Для сайта КОМФОРТ применяется специальная логика!
КонецЕсли;

Что обнаружилось:

  • Специфичная обработка для домена comfort...

  • Процедура ЗаполнитьТаблицуСвойствНовымиРеквизитамиКомфорт - содержит особые правила

  • Дополнительные фильтры в вызовах ДобавитьСвойство

Экономия времени:

  • Ручная отладка: несколько часов

  • Анализ DeepSeek: несколько минут

  • Выигрыш: 98% времени!

Технология успеха:

  1. Сбор данных: Замер производительности штатными средствами 1С

  2. Очистка: Python-скрипт убирает технические детали

  3. Анализ: DeepSeek ищет закономерности и аномалии

  4. Результат: Точечная диагностика проблемы

Выводы для разработчиков 1С:

  1. Не тратьте время на рутину - автоматизируйте подготовку данных для анализа

  2. Используйте AI-инструменты для быстрой диагностики сложных проблем

  3. Комбинируйте технологии - 1С + Python + нейросети = суперэффективность

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

 
 Python-скрипт для сокращения файлов замера прилагается к статье - оценивайте и используйте!

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Администрирование веб-серверов Сервера Нейросети Программист Платные (руб)

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

17.06.2025    17039    0    Infostart    20    

113

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    12105    19    7    

28

Нейросети Пользователь 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширение "Искусственный интеллект и нейросети в 1С: Работа с отзывами маркетплейсов" предназначено для применения искусственного интеллекта в повседневной деятельности селлеров на маркетплейсах. Среди функций - работа с отзывами, вопросами и чатами покупателей, диалог с нейросетями, генерация картинок, заполнение описаний номенклатуры и другое.

6000 руб.

03.04.2024    11263    6    0    

11

Мастера заполнения Нейросети 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания товара (номенклатуры) с помощью модели ИИ ChatGPT с ключевыми словами. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    21260    50    50    

79

Нейросети Мастера заполнения 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    5149    17    0    

27

Нейросети 1С v8.3 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Абонемент ($m)

Расширение позволит заполнять "Строковые" реквизиты объектов базы 1С с помощью нейросети. Заполнять объекты можно по одному на форме объекта или сразу несколько на форме списка.

6 стартмани

17.10.2025    228    0    Rassel8911    0    

2

Нейросети 1С v8.3 Абонемент ($m)

Обработка для общения с нейросетью GigaChat в 1С. С помощью обработки возможно задавать вопросы нейросети и получать ответы. Возможно выбрать модель нейросети.

3 стартмани

16.10.2025    251    1    Rassel8911    0    

3

Нейросети Бесплатно (free)

Статья о том, как подключить GigaChat к 1С:ERP и автоматизировать рутинную работу бухгалтера при обработке платежей. Делимся практическим опытом, демонстрируем рабочий код, рассказываем о возможностях и ограничениях технологии и показываем, что внедрить ее может каждая компания. А также рассматриваем варианты дальнейшего применения языковых моделей в задачах 1С (актуально на февраль 2025 г. – Прим. ред.).

15.10.2025    577    zev_s    5    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aximo 2490 26.09.25 16:47 Сейчас в теме
отличный пример использования нейросетей
CheBurator; +1 Ответить
2. GarriSoft 165 26.09.25 17:18 Сейчас в теме
В том числе для написания статьи. Узнаю стиль дипзика )))
Дмитрий74Чел; xantif_2000; +2 Ответить
3. Craig 279 26.09.25 17:43 Сейчас в теме
Профит классный. Теперь вопросы, облачный или локальный DeepSeek? как передали код 1с, просто копипастом или выгрузка из xml ? сколько экономим на "шуме" ? какой запрос в ИИ был? какие ограничения были? Как потом вносились правки в системе?

Пока чувствуются только эмоции от использования ИИ, а хочет более детальнее.

P.S. Мечтаю, чтобы в платформу встроили интегратор с ИИ для вайб-кодинга...
user2122965; MaCCapAkIII; Rom_0976; Sergik_D; asupsam; unknown181538; +6 Ответить
4. ksnik 616 26.09.25 17:51 Сейчас в теме
(3) облачный chat.deepseek.com/
код 1с, - замер копировал в буфер обмена и обработал текстовый файл скриптом который сгенерировал дипсик, из 350 кб исходника получилось 250 кб кода, которые он проглотил. Вот такой запрос был:
Имеется обмен с сайтами в 1С Комплексной автоматизации 2.5. На сайте МАРКЕТ включена выгрузка свойств номенклатуры вместе товарным каталогом и свойства номенклатуры успешно выгружаются в файл обмена:
<Свойство>
<Ид>404efdc5-7fa0-11ee-85c6-005056ba60a2</Ид>
<Наименование>Номер коробки</Наименование>
<ТипЗначений>Строка</ТипЗначений>
</Свойство>
Включаем на новом сайте КОМФОРТ выгрузку свойств номенклатуры в настройках выгрузки товарного каталога путем добавления свойств к отбору свойств аналогично сайту МАРКЕТ, после задания идентичных настроек новые свойства в файле выгрузки КОМФОРТ не появляются. Вот результат замера производительности формирования файла выгрузки сайта Комфорт, предположительно в нем есть условие отключившее выгрузку свойств.
5. CheBurator 3231 26.09.25 20:26 Сейчас в теме
Здорово!
.
А по факту - просто "незнание" функционала дописанного кода.
я сомневаюсь, что выгрузок на разные сайты несколько сотен, что можно и не помнить специфику каждой выгрузки.
.
Также - имхо - "кривоватая" реализация выгрузки в виде прямых вставок в код, вместо написания подключения плугинов для конкретных сайтов в режиме пользователя (но это спорно). Понятно что текущая реализация выгрузки клепалось на скорую руку, поэтому так и получилось. Кто из нас таких костылей-то не строил...
.
А так, конечно, очень интересное использование облегчающих жизнь инструментов в виде ИИ.
.
Вопрос насколько ИИ способен будет "диагностировать" действительно сложные проблемы (текущую проблему я бы отнес к легкой). И к чему в части разработчиков приведет использование ИИ по принципу исследования конфигурации/проблем как "черного ящика"...
ArienkomIT; Sergik_D; unknown181538; gzharkoj; bulpi; +5 Ответить
11. unknown181538 163 29.09.25 00:13 Сейчас в теме
(5) Возможно, что получилось бы просто сделать сравнение с конфигурацией поставщика, и увидеть дописанный код быстрее.
shu_vol; Sergik_D; +2 Ответить
6. Nedovizin 27.09.25 09:26 Сейчас в теме
Ии неплохо анализирует журнал блокировок. Даже скрипт писать не понадобится. А здесь проблема не из тяжелых
7. i132 123 27.09.25 17:00 Сейчас в теме
Если из замера производительности убрали метки времени и остались только строки с кодом - то разницу нашло бы простое сравнение текстов, без ИИ
8. bulpi 217 27.09.25 18:27 Сейчас в теме
Если СтрНайти(ПрикладныеПараметры.УзелОбмена.АдресСайта,"comfort...") > 0 Тогда

Я это тоже нашел бы через несколько минут. А если сам бы писал, то и искать не надо.
shu_vol; xantif_2000; MaximKor; ovasiliev; rambomax; unknown181538; alxarz; BackinSoda; +8 Ответить
9. aximo 2490 28.09.25 15:32 Сейчас в теме
(8) ну а есть вариант как это убыстрить?
10. friskdb 33 28.09.25 16:08 Сейчас в теме
Очень много вопросов если честно. Толи специально сделали слишком упрощенный вариант.
1. Не указаны промты с помощью которых искали проблему. Не всегда удается gpt найти проблему, если ей неправильно объяснить, что хочешь. И иногда сам быстрей находишь, где проблема, чем корректно объяснить.
2. Как решаются проблемы проблемы с контекстным окном, не всегда весь код влазит изза ограничений.
3. Почему используете именно deepseek? Claude и Gemini показывают лучше результаты.
12. rambomax 22 29.09.25 07:50 Сейчас в теме
Классическое описание древней байки: "на третий день Зоркий Сокол заметил, что у сарая нет одной стены".
Понадобилось китайцам 10 лет вкладывать юани в строительство ЦОД и написание софта, чтобы современные не способные увидеть глазами чем одна строка отличается от другой грамотные потребители, заметили, что один алгоритм выгрузки отличается от другого...
Но в статье есть один важный момент: всё, что делается описано в коде. И если есть грамотный человек, который умеет читать, то он легко может почитать код и прочитать в чём дело.
А вот если в организации нет грамотных людей, а только грамотные потребители, тогда да, требуется кто-то, кто умеет читать.
В данном конкретном случае грамотного человека не нашлось, но задача настолько детская, что даже тренированная говорящая попугайная программа справилась.
YA_1130000068844584; shu_vol; Sergik_D; triviumfan; xantif_2000; DmitryKSL; SerVer1C; +7 2 Ответить
13. gybson 29.09.25 08:00 Сейчас в теме
при подключении нового сайта КОМФОРТ

Специфичная обработка для домена comfort...


Потрясающая история успеха
Дмитрий74Чел; shu_vol; Sergik_D; DmitryKSL; xantif_2000; +5 1 Ответить
14. ksnik 616 29.09.25 09:57 Сейчас в теме
Понятно что читатели статьи хотели бы видеть больше информации, но здесь лишь на разобранном примере доступным языком, показывается, что разное поведение - не ошибка, а следствие преднастроенной разной логики. Считаю цель публикации верной и смысл раскрытым. Идея не настолько сложна, чтобы для ее демонстрации нужен был заумный пример, в этом преимущество, а не недостаток статьи. Незачем здесь сотням пользователей ломать готову, чтопы понять преимущества анализа замера производительности перед ручной отладкой. Грок оказывается может анализировать гораздо большие объемы данных, чем Дипсик. По поводу отдельных комментариев пользователей: кто делает быстро тот Д`Артаньян, кто против - п*******


Дополнение к статье: Мнения сообщества и глубинные аспекты проблемы
Профессиональные комментарии сообщества
О природе проблемы:

"А по факту - просто 'незнание' функционала дописанного кода. Я сомневаюсь, что выгрузок на разные сайты несколько сотен, что можно и не помнить специфику каждой выгрузки."


Действительно, проблема часто возникает не из-за ошибки, а из-за естественного "забывания" специфики ранее реализованного функционала, особенно когда над системой работали разные разработчики.

О архитектурных решениях:

"Имхо - 'кривоватая' реализация выгрузки в виде прямых вставок в код, вместо написания подключения плагинов для конкретных сайтов"


Комментатор справедливо отмечает, что текущая реализация через условные вставки в код - это типичный "костыль", созданный для быстрого решения задачи. Многие разработчики узнают в этом свои собственные решения, сделанные в условиях ограниченного времени.

Альтернативные подходы к диагностике
Простое сравнение:

"Если из замера производительности убрали метки времени и остались только строки с кодом - то разницу нашло бы простое сравнение текстов, без ИИ"


Действительно, для такой явной разницы могли помочь:

Сравнение файлов diff-инструментами

Анализ конфигурации поставщика

Поиск по ключевым словам в коде

Экспертное мнение:

"Я это тоже нашел бы через несколько минут. А если сам бы писал, то и искать не надо."


Опытный разработчик, знакомый с кодом, мог быстро найти причину. А некоторым становится понятно когда их в проблему тыкнуть, но зато они великие. Проблема в том, что в реальных проектах действительно много кода и причины могут быть затеряны между тысячами аспектов функционала.

Философские размышления
О роли ИИ в диагностике:

"Классическое описание древней байки: 'на третий день Зоркий Сокол заметил, что у сарая нет одной стены'"


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

О кадровых проблемах:

"Если в организации нет грамотных людей, а только грамотные потребители, тогда да, требуется кто-то, кто умеет читать."


Это ключевой момент - ИИ становится "читателем" там, где не хватает человеческой экспертизы.

Практические вопросы использования ИИ
Технические ограничения:

Размер контекстного окна

Качество промтов (запросов)

Выбор подходящей AI-модели

Эффективность для сложных проблем:
Вопрос остается открытым - насколько хорошо ИИ справится с действительно сложными, нетривиальными проблемами, требующими глубокого понимания бизнес-логики.

Вывод
Эта история успешно демонстрирует, как ИИ может помочь в рутинной диагностике, но также показывает важность:

Качественной документации изменений в коде

Единых стандартов разработки вместо "костылей"

Сохраняемой экспертизы внутри команды

Правильного выбора инструментов для каждой задачи

ИИ здесь выступил не как замена разработчику, а как инструмент, компенсирующий фрагментарность знаний в быстро меняющейся IT-среде.
gruk; Созинов; Torin57; +3 Ответить
15. Torin57 45 29.09.25 10:20 Сейчас в теме
Сергей, спасибо, что поделились опытом! Кейс интересный, но, как уже заметили, довольно простой. Чтобы усилить вашу методику, попробуйте в следующий раз применить ее к сравнению двух замеров (успешного и проблемного) — ИИ может найти неочевидные расхождения в ветках кода.
Кстати, для работы с кодом 1С отлично себя показывает Gemini 2.5 Pro. Можете бесплатно поэкспериментировать с ним в Google AI Studio https://aistudio.google.com/prompts/new_chat (понадобится VPN), там очень щедрые лимиты. 100 запросов день, причем каждый по 250 тысяч токенов - это фактически бесплатно. Кроме того, Gemini 2.5 Pro может "переварить" довольно большие файлы - можно присоединить до 20 файлов общим весом 2 гб. Если не хватает, то можно еще 20 файлов по 2 гб добавить.
Насчет халявы. На aistudio.google.com все то же самое, что и платный Gemini 2.5 pro на bothub.chat. Да, каюсь, я лох. Мог бы бесплатно пользоваться Gemini, я же платил по 5-10 рублей за каждый ответ на Ботхабе. Есть, конечно, нюансы. На Ботхабе поиск работает получше, плюс анализ ссылок на Ботхабе работает, а на aistudio.google.com почему-то нет. Может из-за того что через vpn захожу
Созинов; +1 Ответить
16. starik-2005 3197 29.09.25 14:06 Сейчас в теме
В действительности, ИИ помогает написать простой и неплохой код на том же питоне за условные минуты. Ну и дальше он вполне себе может проанализировать код, указав на конкретные моменты.

Я вообще разработчикам посоветовал бы не бежать и решать проблему, которая 1С почти не касается, на 1С - используйте тот же питон и ИИ. Работа со строками текста, с почтой, интернетами, да даже с бронированием переговорок - не надо это все в 1С тащить. Попросите ИИ написать микросервис на питоне, который бы все это делал.
MaCCapAkIII; +1 Ответить
17. ksnik 616 02.10.25 22:16 Сейчас в теме
Имеется более сложный случай анализа проблемы описываемой замером производительности нейросетью Грок (потому что требовалось проанализировать больший объем информации). Публикую здесь промпт и ответ Грока. О том, как готовились данные для анализа нейросетью рассказано в отдельной публикации https://infostart.ru/1c/articles/2452363/
Был такой запрос:
===============================
Программистом заложены желаемые настройки подчиненности структуры отчета в схему компоновки данных (исходный файл схемы компоновки данных вложен и называется "СКД для редактирования"). Исходная схема компоновки данных состоит из двух идентичных повторяюзихся вложенных каскадов группировок с корнем Склад:
- Используется
Поле: Склад
- Используется
Поле: Сборщик
- Используется
Поле: Получатель
- Используется
Поле: Регистратор
- Используется
- Используется
Поле: Склад
- Используется
Поле: Сборщик
- Используется
Поле: Получатель
- Используется
Поле: Регистратор
- Используется

После вызова функции НастройкиОтчета вторая часть структуры пропадает и это надо предотвратить. Я прикладываю замер производительности выполнения проблеммной функции, уничтожающей верную структуру:
&НаСервере
Функция НастройкиОтчета(ОтчетОбъект)

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

	Возврат Настройки;
КонецФункции
Показать

Замер прилагается в Эксель файле. Так же есть начальное и конечное состояние настроек ini_skd.


=================== ОТВЕТ ГРОКа ==============
Анализ проблемы
На основе предоставленных файлов и описания, проблема заключается в том, что функция НастройкиОтчета (вызывающая ВариантыОтчетов.НастройкиФормыОтчета) приводит к "нормализации" или перезаписи структуры группировок в СКД. Исходная структура в файле "СКД для редактирования.xml" содержит два идентичных каскада группировок на верхнем уровне (оба с корнем "Склад" и идентичными вложенными полями: Сборщик → Получатель → Регистратор → Детальные записи). Это выглядит как дубликат, но вы указываете, что это желаемая конфигурация.
Сравнение состояний настроек:

ini_skd1_begin.xml (начальное): Содержит два полных блока <Structure>, каждый с каскадом группировок (Склад → Сборщик → Получатель → Регистратор → Детальные записи). Это соответствует желаемой структуре.
ini_skd2_end.xml (конечное, после функции): Остаётся только один блок <Structure>. Добавлены элементы фильтров с флагами false (например, для Получатель и Сборщик), изменены ID элементов (например, для Склад добавлен новый GUID), добавлены параметры формы, макет оформления ("ОформлениеОтчетовБежевый") и заголовок. Вторая часть структуры полностью потеряна.

Причины потери структуры (на основе замера производительности)
Замер в "Замер производительности с потерей верной структуры.xlsx" показывает последовательность выполнения кода. Ключевые insights:

Основной "виновник": Вызов ВариантыОтчетов.НастройкиФормыОтчета (строки 3–10, 20–25, 40–44 в замере). Эта функция:

Инициализирует настройки на основе метаданных отчета (ОтчетОбъект.Метаданные()), схемы компоновки (ОтчетОбъект.СхемаКомпоновкиДанных) и предопределённых вариантов (строки 20, 28–30).
Проверяет наличие настроек в отчётах (ОтчетыСНастройками.Найти(ОтчетСсылка), строки 8, 24).
Вызывает ОтчетОбъект.ОпределитьНастройкиФормы (строка 42), где происходит нормализация структуры (удаление дубликатов группировок).
Интегрирует подсистемы (ИнтеграцияПодсистемБСП.ПриОпределенииНастроекВариантовОтчетов, строки 31, 43, 47), которые могут применять дополнительные правила (например, из ВариантыОтчетовПереопределяемый).


Момент потери: В строках 20–30 (работа с СхемаКомпоновкиДанных.ВариантыНастроек) и 40–44 (нормализация через ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру). Здесь система обнаруживает дублирующие группировки и удаляет вторую как "избыточную" (1C СКД не любит дубликатов на одном уровне — они могут быть слиты или удалены при инициализации КомпоновщикНастроек).
Другие влияния:

Проверки прав доступа (ПравоДоступа("МобильныйКлиент"), строка 12) и контекстности (ЗначениеЗаполнено(КонтекстВарианта), строка 39).
Добавление событий (СобытияНастроек, строки 34–36, 165–172).
Время на "нормализацию" (строки 3–6: ~0.2–0.8 сек на проверки и слияния).


Общее время: ~4.381 сек на весь вызов, но потеря происходит в первые 0.5–1 сек (инициализация настроек).

Это поведение стандартное для подсистемы "ВариантыОтчетов": она оптимизирует структуру, удаляя дубликаты, чтобы избежать ошибок компоновки (например, при расчёте итогов или фильтрах). Если группировки идентичны, 1C считает их одной и той же.
Решение: Предотвращение потери структуры
Чтобы сохранить оба каскада группировок, нужно обойти автоматическую нормализацию в ВариантыОтчетов.НастройкиФормыОтчета. Предлагаю следующие варианты (от простого к сложному). Все изменения на сервере, в модуле формы отчёта.
Вариант 1: Загрузка настроек вручную после инициализации (рекомендую начать с этого)

Идея: Вызвать стандартную функцию, но затем вручную восстановить вторую часть структуры из исходной СКД (или из сохранённого XML).
Модифицируйте функцию НастройкиОтчета:

language-1c&НаСервере
Функция НастройкиОтчета(ОтчетОбъект)
	
	// Стандартный вызов
	Настройки = ВариантыОтчетов.НастройкиФормыОтчета(Параметры.Отчет, КлючТекущегоВарианта, ОтчетОбъект);
	Настройки.АдресСхемы = АдресСхемыОтчета(ОтчетОбъект);
	Настройки.Контекстный = ЗначениеЗаполнено(КонтекстВарианта) И Не Параметры.Неконтекстный;
	Настройки.Подсистема  = ФормаПараметры.Подсистема;
	Настройки.ИспользуемыеТаблицы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИспользуемыеТаблицы");
	Настройки.СобытияНастроек = СобытияНастроек();
	Настройки.ИспользоватьСнимкиОтчетов = ПравоДоступа("МобильныйКлиент", Метаданные);
	
	// Восстановление структуры: Загружаем исходные настройки из СКД вручную
	Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
	Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Настройки.АдресСхемы));
	Компоновщик.ЗагрузитьНастройки(ОтчетОбъект.СхемаКомпоновкиДанных.НастройкиПоУмолчанию); // Исходные из СКД
	
	// Копируем вторую группировку вручную (дублируем первую, чтобы сохранить идентичность)
	Группировки = Компоновщик.Настройки.Структура;
	Если Группировки.Количество() > 0 Тогда
		ПерваяГруппировка = Группировки[0]; // Первый каскад (Склад и вложенные)
		ВтораяГруппировка = Группировки.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
		ЗаполнитьЗначенияСвойств(ВтораяГруппировка, ПерваяГруппировка); // Копируем свойства
		
		// Копируем поля группировки
		Для Каждого Поле Из ПерваяГруппировка.ПоляГруппировки.Элементы Цикл
			НовоеПоле = ВтораяГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
			ЗаполнитьЗначенияСвойств(НовоеПоле, Поле);
		КонецЦикла;
		
		// Рекурсивно копируем вложенные группировки (Сборщик → Получатель → Регистратор)
		СкопироватьВложенныеГруппировки(ПерваяГруппировка.Структура, ВтораяГруппировка.Структура);
	КонецЕсли;
	
	// Применяем восстановленные настройки обратно
	Настройки.Вставить("КомпоновщикНастроек", Компоновщик); // Или интегрируйте в Настройки по необходимости
	
	Возврат Настройки;
	
КонецФункции

// Вспомогательная процедура для рекурсивного копирования вложенных
&НаСервере
Процедура СкопироватьВложенныеГруппировки(Источник, Приемник)
	Для Каждого Элемент Из Источник Цикл
		НовыйЭлемент = Приемник.Добавить(ТипЗнч(Элемент));
		ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элемент);
		
		// Копируем поля
		Для Каждого Поле Из Элемент.ПоляГруппировки.Элементы Цикл
			НовоеПоле = НовыйЭлемент.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
			ЗаполнитьЗначенияСвойств(НовоеПоле, Поле);
		КонецЦикла;
		
		// Рекурсия для вложенных
		СкопироватьВложенныеГруппировки(Элемент.Структура, НовыйЭлемент.Структура);
	КонецЦикла;
КонецПроцедуры
Показать

Почему это работает: Мы вручную дублируем структуру после стандартной инициализации, предотвращая автоматическое слияние.
Тестирование: После вызова проверьте Компоновщик.Настройки.Структура.Количество() — должно быть 2 на верхнем уровне.

Вариант 2: Переопределение метода ОпределитьНастройкиФормы в объекте отчёта

В модуле объекта отчёта (ОтчетОбъект) добавьте/переопределите процедуру:

language-1cПроцедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
// Стандартная логика (если есть)

// Запрещаем нормализацию: Устанавливаем флаг или пропускаем вызовы, которые модифицируют структуру
Настройки.СхемаМодифицирована = Ложь; // Из замера, строка 44
Настройки.Контекстный = Ложь; // Чтобы избежать контекстных оптимизаций

// Восстановите структуру как в Варианте 1
КонецПроцедуры

Это вмешается в вызов на строке 42 замера.

Вариант 3: Полная замена ВариантыОтчетов.НастройкиФормыОтчета

Если выше не помогает, создайте свою функцию на основе копии кода из ВариантыОтчетов (из замера видно, что она простая). Избегайте вызовов ОтчетОбъект.ОпределитьНастройкиФормы и ИнтеграцияПодсистемБСП.

Дополнительные рекомендации

Избегайте дубликатов в СКД: Если возможно, сделайте группировки чуть разными (например, добавьте условное оформление в одну), чтобы система не считала их идентичными.
Тестирование производительности: После изменений повторите замер — время на инициализацию должно уменьшиться, так как мы избегаем ненужных проверок.
Ошибки: Если возникнут (например, "Дублирующие группировки"), добавьте уникальные ID или имена полей.
Версия 1C: Убедитесь, что платформа ≥ 8.3.18 (в старых версиях СКД строже к дубликатам).

Если предоставите полный код отчёта или уточните версию 1C, могу доработать решение.
Для отправки сообщения требуется регистрация/авторизация