Часто в процессе доработки конфигурации БухгалтерияПредприятия разработчики сталкиваются с дилеммой: функционала типового документа КорректировкаДолга недостаточно, а любые изменения влекут за собой сложности при последующих обновлениях от вендора. Разберем, как подойти к этой задаче, оценим риски и рассмотрим возможные пути реализации.
Прежде чем приступать к изменению имени типового документа или снятию его с поддержки, важно осознать масштаб проблемы. В платформе 1С объект метаданных обладает внутренним уникальным идентификатором ID. Даже если вы переименуете документ, система сравнения при обновлении будет опираться на ID, что приведет к сопоставлению вашего измененного документа с типовым. Это чревато конфликтами объединения, ошибками в коде и некорректной работой отчетов.
Кроме того, при изменении типа объекта вы столкнетесь со следующими проблемами:
КорректировкаДолга, потеряют связь с вашим объектом.Если вы твердо решили идти по пути изменения существующего объекта, то алгоритм действий на копии базы выглядит следующим образом:
Важно: Этот метод превращает ваш объект в полностью нетиповой. В будущем при обновлении конфигурации вы будете вынуждены самостоятельно поддерживать актуальность кода этого документа, так как типовые обновления его больше не затронут.
Одним из самых надежных подходов, позволяющих избежать проблем с обновлениями, является перенос всей логики движений на документ ОперацияБух. Разберем этот процесс по шагам:
КорректировкаДолга в документ ОперацияБух.ОперацияБух.Этот подход делает решение максимально независимым от будущих изменений типовой конфигурации, так как ОперацияБух — это стабильный объект, предназначенный для ручных и автоматизированных бухгалтерских записей.
Рассмотрим более современный способ — использование расширений. Вместо того чтобы менять основной КорректировкаДолга, вы можете:
КорректировкаДолга, сделав их скрытыми для пользователя или перенаправив открытие на ваш новый документ.Такой подход позволяет обновлять типовую конфигурацию в автоматическом режиме, не переживая о сохранности ваших доработок.
При необходимости работы с движениями документа, используйте программный доступ к регистрам. Рассмотрим пример записи движений:
// Пример переноса движений в регистры
НаборЗаписей = РегистрыНакопления.ВашиРегистры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Объект.Ссылка);
НаборЗаписей.Прочитать();
// ... заполнение движений ...
НаборЗаписей.Записать(Истина);
Анализируя ситуацию, мы видим, что наиболее безопасным является отказ от изменения типовых метаданных. Если функционала не хватает, всегда старайтесь реализовать его через расширения или отдельные документы-спутники. Манипуляции с переименованием объектов, находящихся на поддержке, — это крайняя мера, которая требует высокого уровня экспертизы и тщательного планирования процесса обновления в будущем.