Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

ИнфоСофт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Вы можете запретить обработку сookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования cookies.
Оставаясь на сайте, вы соглашаетесь с политикой использования cookies.

Перенос данных нетиповых объектов

Пономаренко Илья Посмотреть все статьи >> Специалист по внедрению 1С партнерской сети "ИнфоСофт".
24.10.2025
16
Время прочтения - 7 мин.
Заказать консультацию

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

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

 

Используемые инструменты

Для переноса данных реквизитов объектов необходимо две обработки:

1) Обработка, копирующая значения реквизитов и справочников из основной конфигурации в расширение.

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

 

Предварительная настройка конфигуратора

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

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

Настройка производится в меню «Сервис» - «Параметры». В открывшемся окне на вкладке «Общие» необходимо снять галочки с пунктов:

  • «При удалении выполнять проверку в модулях»

  • «При переименовании выполнять изменение в модулях»

Это позволит избежать ненужных изменений наименований переменных в коде.

1.png

Рисунок 1 - Окно настройки параметров конфигуратора

 

Перенос реквизитов объектов

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

Рассмотрим ситуацию, когда необходимо перенести конкретный реквизит из объекта конфигурации в расширение. Этапы переноса:

  1. В расширение добавляется объект, реквизит которого необходимо перенести.

  2. В расширении создаётся новый реквизит, который будет принимать данные старого. Он должен быть аналогичного типа и наименования, чтобы программный код его использовал. Наименование старого реквизита меняется, чтобы оно отличалось от исходного. Рекомендуется использовать приставку «Удалить».

  3. С помощью обработки или вручную (при малом количестве данных) значения из старого реквизита копируются в новый.

  4. Новый реквизит выводится на форму расширения объекта, чтобы он стал доступен пользователю.

2.png

Рисунок 2 - Схема переноса реквизита

 

Полный перенос нетипового объекта

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

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

Когда весь состав переносимых объектов определён, а расширение подготовлено, необходимо переходить к самому процессу переноса. Для любого объекта алгоритм будет выглядеть следующим образом:

1. В расширение добавляются все связанные объекты, в которых содержится переносимый объект в виде реквизита.

3.png

Рисунок 3 – Связанные объекты добавлены в расширение


2. В расширение добавляется новый объект метаданных, в который будут переноситься данные. Старый объект переименовывается.

4.png

Рисунок 4 - В расширение добавлен с нуля объект, в который будет переноситься информация


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

5.png

Рисунок 5 – Добавленные реквизиты связанных объектов


4. Согласно вышеописанной методике необходимо выполнить перенос каждого отдельного реквизита, связанного с переносимым объектом в расширение. В результате мы должны иметь объекты расширения, в которые с нуля добавлены реквизиты, в которых хранятся данные основного объекта конфигурации.

6.png

Рисунок 6 - Данные реквизитов переносятся


5. Следующим этапом является копирование данных из переносимого объекта основной конфигурации в объект расширения.

7.png

Рисунок 7 – Переносятся данные основного объекта


6.  Далее с использованием обработки ссылки объекта основной конфигурации заменяются на ссылку нового объекта из расширения. Это обеспечит замену всех реквизитов переносимого объекта на новый.

8.png

7. Последний шаг – это удаление старых объектов из основной конфигурации. Тип каждого связанного реквизита расширения необходимо сменить с составного на тип перенесённого объекта.

8-1.png

Рисунок 8 - Удаление старых объектов


В результате старый объект и связанные реквизиты полностью перенесены в расширение с сохранением ссылочной целостности.

9.png

Рисунок 9 - Результат переноса


Сохранятся ли данные при отключении расширения?

Да. Даже если вы отключите расширение, данные, связанные с объектами, останутся в базе. Связь между значением реквизита и владельцем (объектом) сохраняется.


Можно ли не удалять старые данные после переноса данных в расширение?

Если переносился только реквизит, удалять старые данные не обязательно. Если переносился весь объект, старые данные необходимо удалить, так как старый и новый объекты будут иметь одинаковые навигационные ссылки и идентификаторы. Это приведёт к сбоям при вызове форм и обработке ссылок — программа не сможет однозначно определить, какой объект использовать.

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

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


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

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


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Рассказать друзьям
Вам может быть интересно: