База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как перенести файлы из справочника расширения в справочник основной конфигурации
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 22 часа назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
2 ноября 2025 в 18:45 #34022
OdineskiУчастникпривет. В расширении создан справочник СписаниеЗапасовПрмсоединенные файлы для документа Списание запасов. После обновления релиза (Управление предприятием общепита) в основном конфигурации появился свой справочник присоединенныефайлы для данного документа. Как перенести файлы из справочника из расширения в справочник основной конфигурации? Желательно с помощью БСП.
-
2 ноября 2025 в 18:45 #34023
Odin — ОдинэсникУчастникАлександр, привет!
Ситуация типовая при развитии конфигурации и появлении в основной конфигурации собственных объектов, которые ранее были реализованы в расширении. В вашем случае — справочник присоединённых файлов для документа «Списание запасов» появился в основной конфигурации, а в расширении остался свой аналог. Нужно перенести данные из расширения в основной справочник.
Рассмотрим алгоритм переноса с использованием возможностей БСП и стандартных механизмов 1С.
—
### Общий подход
1. **Подготовка:**
— Убедитесь, что в базе есть доступ к обоим справочникам:
— Расширение:Справочник.СписаниеЗапасовПрмсоединенныеФайлы
— Основная конфигурация:Справочник.ПрисоединенныеФайлы(или аналогичный справочник из основной конфигурации)
— Проверьте структуру реквизитов и соответствие полей, чтобы корректно перенести данные.2. **Создание обработки переноса:**
— Создайте временную обработку (например, в виде внешней обработки или встроенной обработки в конфигурации).
— В обработке переберите все записи из справочника расширения.
— Для каждой записи создайте новую запись в справочнике основной конфигурации.
— Скопируйте все необходимые реквизиты, включая бинарные данные файлов.3. **Особенности работы с файлами в БСП:**
— В БСП присоединённые файлы обычно хранятся в объектеПрисоединенныеФайлы(например, через подсистему «Присоединенные файлы»).
— Для работы с файлами используйте стандартный механизм БСП — объектыПрисоединенныеФайлы.ФайлыОбъекта.
— При переносе файлов нужно создать объекты присоединённых файлов для нового владельца (документа «Списание запасов» из основной конфигурации).—
### Примерный код переноса (1С:Предприятие 8.x, управляемое приложение)
1С (Код)12345678910111213141516171819202122232425262728293031323334Процедура ПеренестиПрисоединенныеФайлыИзРасширенияВОсновнуюКонфигурацию() Экспорт// Получаем выборку из справочника расширенияЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬСсылка,Владелец,ИмяФайла,ДанныеФайла,КомментарийИЗСправочник.СписаниеЗапасовПрмсоединенныеФайлы";Выборка = Запрос.Выполнить().Выбрать();Пока Выборка.Следующий() Цикл// Создаем новый объект присоединенного файла в основной конфигурацииНовыйФайл = Справочники.ПрисоединенныеФайлы.СоздатьЭлемент();// Заполняем реквизитыНовыйФайл.Владелец = Выборка.Владелец; // Документ "Списание запасов" из основной конфигурацииНовыйФайл.ИмяФайла = Выборка.ИмяФайла;НовыйФайл.Комментарий = Выборка.Комментарий;// Для хранения файла используем стандартный механизм БСПНовыйФайл.Файл = Новый ФайлНаСервере;НовыйФайл.Файл.Установить(Выборка.ДанныеФайла);// Записываем элементНовыйФайл.Записать();КонецЦикла;Сообщить("Перенос присоединенных файлов завершен.");КонецПроцедуры—
### Важные моменты
— **Владелец файла:** В расширении владелец — это документ из расширения, в основной конфигурации — документ из основной конфигурации. Нужно убедиться, что ссылки на владельца корректны и соответствуют объектам основной конфигурации.
— **Данные файла:** В расширении данные файла могут храниться в реквизите типаХранилищеЗначенияилиБинарныеДанные. В основном справочнике БСП обычно используется реквизитФайлтипаФайлНаСервереилиХранилищеЗначения. В примере выше показано, как перенести данные вФайлНаСервере.
— **Права доступа:** Убедитесь, что у пользователя, запускающего перенос, есть права на чтение из расширения и запись в основной справочник.
— **Резервное копирование:** Перед переносом обязательно сделайте резервную копию базы.—
### Альтернативный вариант — через выгрузку/загрузку данных
Если прямой программный перенос затруднён, можно:
1. Выгрузить данные из справочника расширения в XML.
2. Подготовить правила загрузки, чтобы загрузить данные в основной справочник.
3. Загрузить данные в основную конфигурацию.Но этот способ сложнее и менее удобен, чем программный перенос.
—
### Рекомендации
— Используйте стандартные методы БСП для работы с присоединёнными файлами — это обеспечит корректность и совместимость.
— Если структура справочников сильно отличается, возможно, потребуется дополнительная обработка данных.
— После переноса протестируйте работу с файлами в документах.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1498871/ — пример подключения и работы с присоединёнными файлами через БСП.Если нужно, могу помочь с конкретным кодом под вашу конфигурацию.
—
Если нужна помощь с конкретным кодом или деталями — обращайтесь!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.