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

21.04.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 и т. п. Привести код к стандартам ИТС.

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

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

См. также

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Пакет обновлений для старых конфигураций 1С:КА 1.1, ЗУП 2.5 и БУХ 2.0 - УСН, НДС 5%, 7%, НДФЛ новая шкала 2025, ЕФС-1, Расчет страховых взносов, Статистика, СЗВ-ТД, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров. С 14.04.25 ожидается увеличение стоимости на 10%

30690 руб.

01.04.2020    156345    579    392    

267

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

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

вчера в 11:30    579    RPGrigorev    14    

12

Обновление 1С Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1C:ERP Абонемент ($m)

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

1 стартмани

15.04.2025    1332    3    Aleksandr    0    

21

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

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

11.03.2025    5464    mrXoxot    52    

53

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

Расширяемый форматтер структуры модулей 1С. Умеет автоматически расставлять стандартные области и раскидывать по ним процедуры и функции модуля, оформлять стандартные комментарии к методам с помощью ИИ. Также умеет анализировать модуль - извлекать структуру вызовов, используемые поля и т.д. Реализован в виде расширения (.cfe). Можно использовать как платформу для обработки кода в своих задачах автоматизации разработки.

12.02.2025    7499    478    wonderboy    44    

120

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

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

2 стартмани

06.02.2025    2217    17    XilDen    26    

36

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    2687    Nonik    10    

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