Как не потерять доработки 1С при обновлении форм-копий: алгоритм сравнения через внешние файлы

05.08.26

База данных - Обновление 1С

К нам на проект сложного обновления пришла конфигурация «1С:ERP УХ» с доработанным отчетом, построенным на базе типового «Задолженность поставщикам по срокам». После обновления целевая форма открывалась без учета переданных данных.

Архитектура решения включала следующие изменения:

  • Метаданные: добавлена табличная часть, которая заполнялась программно в модуле объекта внутри процедуры ПриКомпоновкеРезультата.
  • Интерфейс: форма отчета — копия общей формы ФормаОтчета, была обновлена в соответствии с типовыми изменениями.
  • Функционал: на форму добавлена команда, которая считывала данные из табличной части объекта, выгружала их в таблицу значений и передавала как параметр при открытии другой формы.
     

Выявление проблемы: исчезновение данных в табличной части

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

Сравнительный анализ стека вызовов в базах до обновления и после обновления выявил различие в последовательности событий:

  • До обновления (3.2.1.83): Нажатие «Сформировать» → МодульОбъекта.ПриКомпоновкеРезультата.
  • После обновления (3.2.8.9): Нажатие «Сформировать» → МодульФормы.Сформировать → МодульФормы.СформироватьОтчет → МодульОбъекта.ПриКомпоновкеРезультата.

Изменение стека вызовов свидетельствовало об изменении механизма инициализации компоновки результата.
 

Ловушка «невидимых» изменений в свойствах элементов формы

Причиной различия стала незамеченная при первичном сравнении доработка элементов формы. В типовых решениях для формирования отчетов используется команда «ОтчетСкомпоноватьРезультат», обеспечивающая фоновое выполнение. В доработанном отчете для кнопки «СформироватьОтчет» была переназначена стандартная команда «Сформировать».
 


 

Для восстановления работоспособности потребовалось повторно переопределить команду для кнопки на форме, вернув привязку к стандартной команде «Сформировать», как это было реализовано в исходной базе.

После корректного переноса доработки элементов формы («закрепления» команды за кнопкой) логика выполнения синхронизировалась с ожидаемой. Данные в табличной части стали доступны для выгрузки в ТЗ в момент вызова команды открытия вспомогательной формы.
 

Как не пропустить доработки в элементах форм

При обновлении форм-копий проверять только код недостаточно — нужно мониторить свойства элементов. Мы используем следующий алгоритм выявления «невидимых» изменений:

  1. Создание эталона: Создаем новый внешний отчет (.erf) и копируем в него типовую форму из релиза-источника.
  2. Экспорт доработки: Сохраняем текущий доработанный отчет как внешний.
  3. Сравнение: Используем штатный механизм платформы «Сравнить файлы» для двух полученных .erf файлов.

Важно: Если форма принадлежит справочнику или документу, которые нельзя сохранить напрямую как внешние файлы (.erf или .epf), просто создайте пустую внешнюю обработку и скопируйте форму туда для последующего сравнения.

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

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

обновление

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Рефакторинг и качество кода Обновление 1С Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

На проекте сложного обновления 1С:ERP 2.4.14.181 до версии 2.5.22.106 нам было нужно уложить обновление в технологическое окно 48 часов (выходные). Исходный замер, с учетом промежуточных релизов 2.5.8.443, 2.5.12.270, 2.5.17.234, 2.5.22.106, показал требуемое время в 659 часов…

07.07.2026    4301    1c-izh    20    

21

Обновление 1С Программист 1С 8.3 Россия Бесплатно (free)

Внешняя обработка для проверки методов расширений с директивами &Вместо, &Перед, &После и &ИзменениеИКонтроль после обновления типовой конфигурации. Обработка анализирует файловые выгрузки старой и новой конфигурации, автоматически определяет изменившиеся типовые методы и формирует список методов расширения, требующих проверки.

25.06.2026    1467    135    akeeela    8    

17

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    7024    wonderboy    6    

28

Инструментарий разработчика Рефакторинг и качество кода Программист 1С:Предприятие 8 Бесплатно (free)

Инструмент для тех, кто устал читать модули по 50 тысяч строк и искать ошибки глазами. MetaVision загружает выгруженные файлы конфигурации и за секунды строит графы функций, находит уязвимости и подсвечивает проблемы производительности. Ключевые возможности: Визуализация логики функций (графы условий, циклов, транзакций и вызовов). Статический аудит безопасности (RCE, SSRF, COM-инъекции, пароли в коде). Поиск проблем производительности (запросы в циклах, вложенные блокировки). Полнотекстовый поиск по всем модулям конфигурации. Статистика по объектам и функциям. Безопасность: Программа работает строго локально. Код вашей конфигурации не отправляется в интернет и не анализируется на сторонних серверах. Попробуйте MetaVision сегодня — узнайте, что скрывает ваш код.

20.04.2026    13495    1360    KHoroshulinAV    62    

94

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

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

17.03.2026    3617    IgorVasilyev    54    

28

Обновление 1С Программист 1С 8.3 Россия Бесплатно (free)

При разработке тиражного прикладного решения или при использовании автоматизации сборки вам потребуется механизм создания файлов поставки. В статье приведена шпаргалка по работе с ним.

11.02.2026    3619    AntonovaElena    9    

19

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

В статье рассказываю, как писать код 1С в VS Code с помощью бесплатных AI-моделей 🤖 Используем GLM-4.7 через Roocode + Cerebras (до 1 миллион токенов в день). Подключаем бесплатные MCP. Генерируем новый код и смотрим, как AI справляется с задачами.

06.02.2026    24371    Ibrogim    83    

52

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

Некоторые задачи можно и нужно делегировать ИИ, а простые задачи можно отдавать бесплатным моделям. В статье коротко рассказываю про расширение roocode для vscode, инструмент openrouter и реальную задачу по рефакторингу кода.

02.02.2026    18982    Ibrogim    59    

51
Для отправки сообщения требуется регистрация/авторизация