Переход с устаревшей конфигурации Управление торговлей 10.3 на современную версию Управление торговлей 11.5 — это не просто обновление, а полноценная миграция данных и бизнес-логики. Рассмотрим пошагово, как организовать этот процесс, минимизируя вмешательство в типовой код конфигурации.
В современной разработке на платформе 1С:Предприятие 8.3 стандартом де-факто является подход «максимум в расширениях — минимум изменений в конфигурации». Это позволяет сохранить возможность обновления типовой конфигурации без конфликтов, которые возникают при снятии конфигурации с «замка».
Рассмотрим преимущества использования расширений:
1С:Предприятие, не затрагивая структуру основной конфигурации.Переносить код «один в один» из УТ 10.3 в УТ 11.5 часто не имеет смысла, так как архитектура систем принципиально отличается. Перед тем как приступать к разработке, проведем анализ:
Номенклатура, Контрагенты и др.). Если они критически важны для бизнеса, создайте их в расширении.Аналитика расходов, Комплектация). Не пытайтесь переносить функционал, который уже есть в типовой версии — это сэкономит вам сотни часов работы.ПоступлениеТоваровУслуг, и этот реквизит должен ссылаться на РеализациюТоваровУслуг, вам необходимо заимствовать оба объекта в расширение. Только после заимствования нужный тип данных станет доступен для выбора.Один из самых частых вопросов при работе с расширениями — как «увидеть» новые объекты метаданных в правилах обмена. Рассмотрим алгоритм действий:
Конвертации данных, необходимо выгрузить актуальный XML-файл описания структуры метаданных из целевой базы (УТ 11.5). Убедитесь, что расширение подключено к базе и активно в момент выгрузки структуры.MD83Exp.epf (выгрузка метаданных) выберите нужную конфигурацию и в настройках укажите расширение. Загрузите полученный файл в базу Конвертации данных через пункт меню «Загрузка метаданных».Иногда логика заполнения данных в расширении требует сложной обработки, которую сложно уместить в стандартные правила. В таких случаях мы используем обработчики событий.
Рассмотрим пример использования обработчика ПослеЗагрузки в правилах КД:
// Пример кода для обработчика ПослеЗагрузки
// ОбъектОбъект - это загружаемый объект в базе-приемнике
Если ЗначениеЗаполнено(Источник.ДопПоле) Тогда
ОбъектОбъект.ИмяРеквизитаРасширения = Источник.ДопПоле;
КонецЕсли;
Если же сложность данных такова, что КД не справляется, всегда можно использовать внешнюю обработку. С помощью COM-соединения или простого чтения файла (например, JSON или XML) вы можете дозаполнить данные уже после основного обмена. Это упрощает отладку, так как внешнюю обработку можно запускать многократно для проверки конкретных объектов.
Запомните главное правило: арендованный гараж. Считайте, что расширение — это ваш гараж. Поставщик (фирма 1С) может изменить машину внутри (типовой документ), но гараж (расширение) остается вашим. Вам не нужно переписывать всё при каждом обновлении, достаточно лишь следить за тем, чтобы заимствованные формы корректно отображали данные.
Если в процессе вы столкнулись с тем, что функционал расширений ограничен для какой-то задачи — не спешите менять конфигурацию. Попробуйте изменить бизнес-процесс или используйте внешние печатные формы и обработки. Это лучший способ сохранить базу «типовой» и избежать проблем при обновлении в будущем.