При переходе с устаревшей версии 1С:Бухгалтерия предприятия 2.0 на современную 3.0 одной из главных задач является сохранение возможности типового обновления. Если в старой базе были добавлены новые документы и регистры накопления, простым обновлением их не перенести так, чтобы конфигурация осталась «чистой». Рассмотрим подробнее, как правильно перенести доработки в механизм расширений, сохранив при этом все данные и логику учета.
Прежде всего, проанализируем ситуацию с платформой. Типовая БП 2.0 зачастую работает в режиме совместимости Версия 8.2.16. В этом режиме полноценная работа с расширениями, позволяющими добавлять собственные объекты метаданных (справочники, документы), технически невозможна. Платформа будет выдавать ошибку о том, что структура не поддерживает расширения.
Выясним причину: создание собственных таблиц в расширениях стало доступно только начиная с версии платформы 8.3.11. Поскольку Бухгалтерия 3.0 всегда работает на актуальных версиях платформы и с высоким режимом совместимости, мы можем реализовать перенос объектов именно на этапе внедрения «тройки», не пытаясь внедрять расширения в старую «двойку».
Разберем по шагам наиболее эффективную стратегию переноса. Вместо того чтобы пытаться заимствовать объекты из основной конфигурации и потом их удалять, мы создадим их сразу в расширении БП 3.0. Посмотрим на алгоритм действий:
Расш1_УчетДополнительныхУслуг). Это позволит избежать конфликтов имен при последующих обновлениях типовой конфигурации.Рассмотрим подробнее вопрос миграции информации. Поскольку таблицы расширения физически отличаются от таблиц основной конфигурации, стандартная обработка перехода не увидит ваши новые документы. Нам потребуется использовать Конвертацию данных 2.1 или 3.0.
При настройке правил обмена в КД необходимо указать в качестве объектов-приемников именно документы из расширения. Платформа 1С обращается к ним с учетом префикса. Проанализируем пример того, как может выглядеть программное заполнение документа расширения при загрузке, если вы используете прямое подключение (COM):
// Пример обращения к документу расширения через менеджер
НовыйДок = Документы["Расш1_ВашДокумент"].СоздатьДокумент();
НовыйДок.Дата = ДатаИзДвойки;
НовыйДок.Номер = НомерИзДвойки;
// Заполнение табличных частей
Для Каждого СтрокаТЧ Из ТаблицаДанных Цикл
НоваяСтрока = НовыйДок.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);
КонецЦикла;
НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
Важно понимать, что в Бухгалтерии 3.0 документ должен быть встроен в экосистему Библиотеки стандартных подсистем (БСП). Чтобы ваш документ из расширения вел себя как типовой (поддерживал печатные формы, версионирование, подключаемые отчеты), его нужно зарегистрировать. Рассмотрим, как это сделать через программные интерфейсы в модулях расширения.
Например, для добавления команды печати в документ расширения, мы не правим типовой модуль, а используем переопределение в расширении:
&После("ПриОпределенииОбъектовСКомандамиПечати")
Процедура Расш1_ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов)
СписокОбъектов.Добавить(Документы.Расш1_ВашДокумент);
КонецПроцедуры
Проанализируем ситуацию с регистрами. Если в БП 2.0 был добавлен регистр накопления, по которому делают движения как ваши новые документы, так и типовые, в БП 3.0 следует поступить так:
&После или &Перед обработчик для процедуры ОбработкаПроведения типового документа.
&После("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
// Дополнительная логика формирования движений по регистру расширения
Движения.Расш1_ДопРегистрНакопления.Записывать = Истина;
НовоеДвижение = Движения.Расш1_ДопРегистрНакопления.Добавить();
НовоеДвижение.Период = Дата;
// ... заполнение остальных измерений и ресурсов
КонецПроцедуры
Подведем итог нашему анализу. Использование расширений для переноса доработок — это современный и правильный способ сохранить конфигурацию на поддержке. Главное преимущество заключается в том, что при обновлении 1С:Бухгалтерии 3.0 через .cfu файлы, ваши объекты в расширении никак не затрагиваются, и риск потери данных минимален.
Важный совет: не пытайтесь заимствовать (добавлять) новые документы из основной конфигурации в расширение с целью их последующего удаления из основной базы. Платформа 1С хранит данные объектов расширения в отдельных таблицах СУБД. Если вы удалите объект из основной конфигурации, данные из его таблиц будут безвозвратно удалены. Поэтому всегда используйте схему: Создание объекта в расширении -> Перенос данных программно или через КД -> Проверка -> Удаление лишнего из основной конфигурации.
Таким образом, мы выяснили, что переход с БП 2.0 на БП 3.0 с использованием расширений требует тщательной подготовки правил переноса данных, но гарантирует чистоту основной конфигурации и удобство дальнейшего сопровождения.