Как правильно вынести доработки в расширение 1С с учётом аннотаций и сопровожден

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как правильно вынести доработки в расширение 1С с учётом аннотаций и сопровожден

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34056
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Как вынести доработки в расширение

      • #34057
        bot_avaOdin — Одинэсник
        Участник

          Геннадий, вынесение доработок в расширение — это современный и рекомендованный способ доработки типовой конфигурации 1С без снятия её с поддержки. Вот подробный алгоритм и рекомендации по этому процессу:

          1. **Подготовка:**
          — Имеется две конфигурации:
          — Старая с доработками (снятая с поддержки).
          — Обновленная типовая конфигурация (последняя версия).
          — Цель — перенести доработки из старой конфигурации в расширение, подключенное к обновленной типовой.

          2. **Создание расширения:**
          — В конфигураторе откройте обновленную типовую конфигурацию.
          — Создайте новое расширение (Конфигурация → Расширения конфигурации).
          — Задайте имя расширения, в свойствах укажите, что расширение активно и предназначено для адаптации.

          3. **Выделение доработок:**
          — В старой конфигурации через меню «Поддержка» → «Настройка поддержки» → «Сравнить, объединить» сравните с типовой.
          — Определите, какие объекты и модули были изменены.

          4. **Перенос кода в расширение:**
          — В обновленной конфигурации найдите нужный объект (например, модуль объекта, форму, обработчик).
          — Правой кнопкой мыши на процедуре/функции выберите «Добавить в расширение» (горячие клавиши Alt+Shift+F2).
          — Появится выбор аннотации для вставки кода:
          — `&Перед` — код выполнится до типового.
          — `&После` — код выполнится после типового.
          — `&Вместо` — заменяет типовой код (использовать с осторожностью).
          — `&ИзменениеИКонтроль` — позволяет вставлять или удалять части типового кода (через директивы `#Вставка`, `#Удаление`).
          — Стремитесь использовать `&Перед` и `&После` — это облегчает сопровождение и обновление.
          — Если типовой код полностью переписан, используйте `&Вместо`.
          — Для небольших изменений в коде запросов и алгоритмах — `&ИзменениеИКонтроль`.

          5. **Работа с формами:**
          — Изменения форм лучше делать программно, а не через редактор форм расширения.
          — Например, в обработчике события формы `ПриОткрытии` с аннотацией `&После` программно изменяйте свойства элементов (например, `Элементы.Поле.УстановитьДоступность(Ложь)`).

          6. **Отладка и тестирование:**
          — Проверяйте расширение на синтаксические ошибки.
          — Если расширение не видит объекты, добавьте их в расширение (например, общие модули, константы).
          — Тестируйте работу расширения в режиме предприятия.

          7. **Рекомендации по организации расширений:**
          — Не дробите расширения для одного объекта — лучше одно расширение на объект.
          — Минимизируйте использование `&Вместо` и `&ИзменениеИКонтроль`.
          — Ведите реестр расширений.
          — Новые объекты с данными лучше добавлять в основную конфигурацию, а не в расширение.

          8. **Обновление расширения:**
          — При выходе новой версии типовой конфигурации обновляйте её.
          — Расширение автоматически объединится с типовой.
          — При необходимости корректируйте расширение под новые изменения.

          **Пример использования аннотации &После:**

          &После
          Процедура ОбработкаПриОткрытии(Отказ)
              Элементы.ПолеТекста.Доступность = Ложь; // Сделать поле нередактируемым
          КонецПроцедуры
          

          **Пример использования &ИзменениеИКонтроль:**

          &ИзменениеИКонтроль
          Процедура ОбработкаЗапроса()
              #Удаление
              // Старый код запроса, который нужно убрать
              #КонецУдаления
          
              #Вставка
              // Новый код запроса
              #КонецВставки
          КонецПроцедуры
          

          Рекомендую подробно изучить официальную документацию и статьи по расширениям:

          https://v8.1c.ru/platforma/rasshireniya/
          https://infostart.ru/1c/articles/1535974/
          https://infostart.ru/1c/articles/1039552/

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

          Если нужно, могу помочь с конкретным примером кода или разбором вашей доработки.

          Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1535974/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С