Перенос файлов из томов в информационную базу для конфигураций на БСП 2.4+

31.10.20

Разработка - БСП (Библиотека стандартных подсистем)

В публикации опишу вариант переноса файлов для БСП 2.4+

Вводные:

Нужно перенести файлы из томов в базу

Есть работающая некорректно обработка //infostart.ru/public/536028/ с отключенными комментариями

 

Решение:

Перебираем все ПрисоединенныеФайлы с ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске

1. Получаем двоичные данные

2. Получаем объект, записываем

  • ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе
  • Том = Неопределено

2.1 Записываем объект

3. Записываем двоичные данные в РегистрыСведений.ДвоичныеДанныеФайлов

Код:

&НаСервере
Процедура КомандаЗагрузитьНаСервере()    	
	
	МассивТиповДляОбновленияФайлов = Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.Типы();	
	
	Для Каждого ТипДляОбновленияФайлов из МассивТиповДляОбновленияФайлов Цикл 
		
		ПолноеИмяОбъектаМетаданных = "";
		
		Попытка
			//Получаем строковые представления объектов метаданных типа "Справочник.ВходящийДокументПрисоединенныеФайлы"				
			ПолноеИмяОбъектаМетаданных = Метаданные.НайтиПоТипу(ТипДляОбновленияФайлов).ПолноеИмя(); 
		Исключение
			
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Тип" + ТипДляОбновленияФайлов + ", " + ОписаниеОшибки();
			Сообщение.Сообщить();
			Прервать; // Специфичные типы (например, строка) не обрабатываем
		КонецПопытки;
		
		//Получаем имя конкретного справочника
		ИмяОбъектаМетаданных = Прав(ПолноеИмяОбъектаМетаданных, СтрДлина(ПолноеИмяОбъектаМетаданных)- Найти(ПолноеИмяОбъектаМетаданных, "."));    	
		
		Выборка = Справочники[ИмяОбъектаМетаданных].Выбрать();		
		
		Пока Выборка.Следующий() Цикл
			Если НЕ Выборка.ЭтоГруппа
				И Выборка.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда			                
				
				ДД = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.Ссылка);
				
				Если ДД <> Неопределено Тогда
					
					обПрисоединенныеФайлы = Выборка.Ссылка.ПолучитьОбъект();
					обПрисоединенныеФайлы.Том = Неопределено;
					обПрисоединенныеФайлы.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
					обПрисоединенныеФайлы.Записать();
					
					МенеджерЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
					МенеджерЗаписи.Файл = Выборка.Ссылка;
					МенеджерЗаписи.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(ДД);
					МенеджерЗаписи.Записать();
					
				КонецЕсли;
				
			КонецЕсли;		
			
		КонецЦикла;       	
	КонецЦикла;
	
КонецПроцедуры

 

UPD 02.05.2020: В БСП 3.1 добавили функционал переноса файлов

 

Вступайте в нашу телеграмм-группу Инфостарт

БСП

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    9600    41    24    

47

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

Использование Библиотеки стандартных подсистем позволяет разработчикам 1С значительно ускорить процесс создания решений за счет готового универсального кода, поддерживаемого и обновляемого официальным вендором. В статье рассказывается про роль и применение «Библиотеки стандартных подсистем» (БСП), примеры интеграции и подключения подсистем.

23.09.2025    3978    AlexeyPROSTO_1C    1    

14

БСП (Библиотека стандартных подсистем) Программист 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    3337    _seerco2002    0    

31

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

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    4755    krasnov322    22    

39

Анализ учета БСП (Библиотека стандартных подсистем) 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Расширение для конфигураций на базе БСП 3.х. Позволяет создавать новые отчеты путем соединения или объединения других отчетов.

22.05.2025    3557    121    seperblunt    9    

25

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С v8.3 1C:ERP Бесплатно (free)

В этой статье я расскажу, как в конфигурации 1С:ERP 2.5 при начале работы системы настроить открытие своих нетиповых форм (в том числе и из внешних обработок). Данную методику можно использовать как на тонком клиенте, так и на мобильном или веб-клиенте, а также в мобильном приложении.

12.05.2025    4159    AlexeyPROSTO_1C    2    

18

БСП (Библиотека стандартных подсистем) Роли и права Программист 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Наткнулся на костыль по работе с ролями. Хочу поделиться, как не попасть на это странное поведение БСП.

07.05.2025    7488    dsdred    32    

89

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

В данной статье рассмотрен один из вариантов добавления собственных обработчиков обновления в расширении конфигурации. При смене версии расширения - автоматический вызов процесса обновления информационной базы.

29.04.2025    4230    krasnoshchekovpavel    7    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Zerga 26.03.20 15:42 Сейчас в теме
Хм... А обязательно использовать выборку и героически фильровать группы и тип хранения в коде?
И что будет если на менеджере записи РС вылетит ошибка? Справочник так и останется с хранением в ИБ?
2. malikov_pro 1347 26.03.20 22:00 Сейчас в теме
(1) Не обязательно, можно сделать и через запрос, с метаданными почти не работаю, взял из прошлого варианта.
В данной реализации да, останется с хранением в ИБ, можно решить через попытку либо запись с РС поставить до смены типа хранения.
Для отправки сообщения требуется регистрация/авторизация