Ревизия доработок при переезде на новую конфигурацию

15.05.25

Разработка - Рефакторинг и качество кода

Методика, описанная в статье, выработана при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п. Учтены все необходимые доработки при переезде на новую конфигурацию и предупреждены возможные ошибки.

 

              

               Меня зовут Елена, разработчик 1С в компании Programming Store.

 

Расскажу в статье о методике, выработанной при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п. Учтены все необходимые доработки при переезде на новую конфигурацию и предупреждены возможные ошибки. 

 

Содержание:

1. Применимость методики.

2. Описание методики

3. Пример: вычленения доработок по новому реквизиту

 

Применимость методики

Методика, описанная в статье, выработана при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п.

Может применяться:

  1. если необходимо переехать с одной конфигурации на схожую с сохранением текущих доработок;

  2. для ревизии текущих доработок: если нужно составить список всех существующих доработок или найти и вычистить устаревшие.

Методика подойдёт, если:

  • аналитик и разработчик плохо или только частично знакомы с доработками;

  • отсутствует документация;

  • отсутствует или плохо описано ТЗ;

  • на проекте часто меняются аналитики и/или разработчики.

Преимущества методики:

  • каждая доработка переносится в отдельности и сразу же тестируется;

  • количество ошибок после перехода сводится к минимуму;

  • остается документация с описанием всех текущих доработок конфигурации;

  • конфигурация очищается от легаси-кода.

Недостаток методики: подобный подход занимает очень много времени. Оно будет уходить на постоянный перезапуск сравнений/объединений и глобальных поисков. Словесное описание незнакомых доработок тоже может занять время, если не осталось ТЗ или документации с описанием доработки или людей, владеющих информацией, как правило, это аналитик и разработчик по задаче.

 

Описание методики

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

  • в конфигурации;

  • в расширениях;

  • в дополнительных отчетах и обработках;

  • в полях (как правило, строка неограниченной длины), предназначенных для хранения текстов кода, выполняемых при помощи Выполнить или Вычислить;

  • в отчетах, обработках, не подключенных как дополнительные, а открываемые при помощи Файл ? Открыть;

  • в интегрируемых системах — файловые обмены, веб- и http-сервисы. Для ИС будут те же самые источники.

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

Затем нужно подготовить источники к будущим поискам:

  • Создать базу с конфигурацией и без данных, из нее будут вычищаться уже описанные доработки.

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

  • Выгрузить дополнительные отчеты и обработки.

  • Туда же выгрузить внешние отчеты и обработки.

  • Код, хранящийся в пользовательском режиме, также сохранить в текстовый файл, можно всё в один.

Необходимо настроить поиск по всем описанным выше источникам. Последовательность действий такая:

  1. Делаем сравнение с конфигурацией поставщика.

  2. Выбираем изменение, которое будем описывать, лучше начать с новых реквизитов у ключевых объектов, так как это наиболее важные доработки и проще начать именно с их выделения, но можно просто идти последовательно по метаданным или вообще начать с общих модулей).

  3. Определяем ключевые слова:
    Имя реквизита/объектаМетаданных/функции/процедуры/переменной/элемента формы, выписываем в таблицу вида.

 

Статус доработки

Кому и зачем нужна доработка

Объект конфигурации

Описание изменений

Автор, дата, ТЗ

Ключевые слова

Комментарий

1

 

 

Справочники.Контрагенты.

Реквизиты.Является

СтратегическимПартнером

 

 

ЯвляетсяСтратегическим

Партнером

 

 

Можно изменять состав колонок по своему усмотрению или использовать не таблицу, а иные форматы.

  1. Удаляем доработки из конфигурации.

  2. Делаем глобальный поиск по выписанным ключевым словам для нахождения «связанных кусков». Повторяем пункты 1 — 5, пока не будут выписаны все ключевые слова и удалены все найденные по ним доработки, глобальный поиск по ключевым словам будет давать пустой результат.

  3. Своими словами описываем, что делает эта доработка. Здесь могут помочь комментарии кода с ФИО сотрудника и указанием номера задачи в учетной системе, история хранилища, нетронутая копия базы, отладка.

  4. Проанализировать актуальность доработки в контексте новой конфигурации.

  5. Перенести доработку в новую конфигурацию.

 

Пример: вычленения доработок по новому реквизиту

  1. Делаем сравнение с конфигурацией поставщика.

  2. При сравнении конфигурации с конфигурацией поставщика видно, что у справочника «Контрагенты» добавлен реквизит булевого типа ЯвляетсяСтратегическимПартнером. Берем эту доработку для описания.

  3. Начинаем заполнять таблицу.

 

Статус доработки

Кому и зачем нужна доработка

Объект конфигурации

Описание изменений

Автор, дата, ТЗ

Ключевые слова

Комментарий

1    

Справочники.Контрагенты.

Реквизиты.

ЯвляетсяСтратегическим

Партнером

   

ЯвляетсяСтратегическим

Партнером

 

 

  1. Удаляем реквизит ЯвляетсяСтратегическимПартнером.

  2. Делаем глобальный поиск по строке ЯвляетсяСтратегическимПартнером

На форме документа РасходнаяНакладная в процедуре УправлениеВидимостью нашлось одно упоминание ключевого слова.

//+ Иванов Иван Иванович 10.02.2014 З635924

Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, ЯвляетсяСтратегическимПартнером) Тогда

Объект.ДополнительныйКонтрольСделкиПоСтратегическимПартнерам.Видимость = Истина;

Иначе

Объект.ДополнительныйКонтрольСделкиПоСтратегическимПартнерам.Видимость = Ложь;

КонецЕсли;

/- Иванов Иван Иванович 10.02.2014 З0005924
  1. Перезапускаем сравнение с конфигурацией поставщика, оно стало неактуально после удаления реквизита.

  2. Видим, что условие, из процедуры УправлениеВидимостью() формы документа РасходнаяНакладная не типовой, а ДополнительныйКонтрольСделкиПоСтратегическимПартнерам — это добавленная в РасходнуюНакладную табличная часть с одной колонкой Сотрудники.

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

 

Статус доработки

Кому и зачем нужна доработка

Объект конфигурации

Описание изменений

Автор, дата, ТЗ

Ключевые слова

Комментарий

1

 

 

Справочники.Контрагенты.Реквизиты.

ЯвляетсяСтратегическимПартнером

 

Документы.РасходнаяНакладная.

ФормаДокумента

 

Документы.РасходнаяНакладная.

ТабличнаяЧасть.ДополнительныйКонтроль

СделкиПоСтратегическимПартнерам

 

Иванов Иван Иванович 10.02.2014 З0005924

ЯвляетсяСтратегическим

Партнером

 

ДополнительныйКонтроль

СделкиПоСтратегическим

Партнерам

 

 

  1. Удаляем код из процедура УправлениеВидимостью и ТЧ ДополнительныйКонтрольСделкиПоСтратегическимПартнерам.

  2. Делаем глобальный поиск по новому ключевому слову ДополнительныйКонтрольСделкиПоСтратегическимПартнерам.

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

После того, как будут выписаны и удалены все доработки.

  1. Заполняем таблицу описанием доработки.

 

Статус доработки

Кому и зачем нужна доработка

Объект конфигурации

Описание изменений

Автор, дата, ТЗ

Ключевые слова

Комментарий

     

Справочники.Контрагенты.Реквизиты.

ЯвляетсяСтратегическимПартнером

 

Документы.РасходнаяНакладная.ФормаДокумента

 

Документы.РасходнаяНакладная.ТабличнаяЧасть.

ДополнительныйКонтрольСделки

ПоСтратегическимПартнерам

 

Документы.РасходнаяНакладная.МодульМенеджера
Для стратегических партнеров доступен для заполнения в РН список сотрудников, которым приходит оповещение о проведении документа Иванов Иван Иванович 10.02.2014 З635924

ЯвляетсяСтратегическимПартнером

 

ДополнительныйКонтрольСделки

ПоСтратегическимПартнерам

За последние 2 года ТЧ РН ни разу не заполнялась. Похоже доработка устарела

 

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

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

 

Статус доработки Кому и зачем нужна доработка Объект конфигурации Описание изменений Автор, дата, ТЗ Ключевые слова Комментарий
1 Не переносим Доработка устарела. Оповещение о документе осуществляется через Документооборот

Справочники.Контрагенты.Реквизиты.

ЯвляетсяСтратегическимПартнером

Документы.РасходнаяНакладная.

ФормаДокумента

Документы.РасходнаяНакладная.

ТабличнаяЧасть.

ДополнительныйКонтрольСделки

ПоСтратегическимПартнерам

Документы.РасходнаяНакладная.

МодульМенеджера

Для стратегических партнеров доступен для заполнения в РН список сотрудников, которым приходит оповещение о проведении документа Иванов Иван Иванович 10.02.2014 З635924

ЯвляетсяСтратегическимПартнером

ДополнительныйКонтрольСделки

ПоСтратегическимПартнерам

За последние 2 года ТЧ РН ни разу не заполнялась. Похоже доработка устарела

 

 

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

 

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

В процессе переноса можно провести рефакторинг и оптимизацию кода. Очистить его от устаревших подходов разработки. Например, заменить ЭтаФорма на ЭтотОбъект, ЗначениеВСтрокуВнутр на ОбщегоНазначения, ЗначениеВСтрокуXML и т. п. Привести код к стандартам ИТС.

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

Конфигурация поставщика Глобальный поиск Доработки Перенос Переход Рефакторинг

См. также

DevOps и автоматизация разработки Обновление 1С Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

Продолжаем делиться опытом ICL SOFT – в этой статье рассказываем о сложном обновлении сильно доработанной конфигурации "1С:ERP Управление холдингом с версии 3.1.8.15" до актуальной версии редакции 3.2. Публикации о сложных обновлениях, которые можно найти в открытых источниках, содержат мало подробной информации об использованных инструментах и решениях. Часто в них отсутствует информация о том, что находится под капотом этих решений. Будем рады, если наша статья окажется полезной

1 стартмани

01.07.2025    725    vladimir_iclsoft    1    

15

Обновление 1С Программист Стажер 1С v8.3 Бесплатно (free)

Наша компания перманентно занимаемся обновлением «старых» и, к тому же, сильно нетиповых конфигураций. Хочется поделиться опытом по работе с важным этапом подобных проектов — поиску и оптимизации промежуточных конфигураций 1С. Первый материал будет полезен начинающим специалистам 1С, а в последующих, надеемся, найдется интересная информация и для матерых разработчиков.

04.06.2025    3090    1c-izh    11    

16

Рефакторинг и качество кода Программист 1С v8.3 Россия Бесплатно (free)

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

03.06.2025    1295    MC4RT    5    

12

Рефакторинг и качество кода Программист 1С v8.3 Абонемент ($m)

Конфигурация для хранения стандартов и сохранения их в формате PDF.

2 стартмани

05.05.2025    3794    comptr    7    

15

Рефакторинг и качество кода 1С v8.3 Абонемент ($m)

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

5 стартмани

05.05.2025    4484    vasilev2015    109    

25

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

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

29.04.2025    2299    krasnoshchekovpavel    7    

18

Рефакторинг и качество кода Программист 1С v8.3 Россия Бесплатно (free)

Цель статьи: кратко показать инструмент и возможности Cursor IDE.

21.04.2025    13276    dimzfresh    41    

46

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

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

21.04.2025    10129    RPGrigorev    31    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aleksey2 89 21.04.25 14:40 Сейчас в теме
Разве ЭтаФорма - устаревшая?
2. amiralnar 9 22.04.25 08:32 Сейчас в теме
На методику это не тянет. Для поиска лучше пользоваться vscode. При переносе доработок их следует покрывать тестами, а не отлаживать вручную.
3. ltfriend 24.04.25 10:54 Сейчас в теме
заменить ЭтаФорма на ЭтотОбъект

Боюсь спросить, зачем?
4. MKassatkin 28.04.25 09:22 Сейчас в теме
(3) Рекомендации по переводу с 8.2 на 8.3

1С:ИТС
Оставьте свое сообщение