Odin | База знаний 1С

Как правильно вынес...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Геннадий, вынесение доработок в расширение — это современный и рекомендованный способ доработки типовой конфигурации 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/



   
ОтветитьЦитата