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

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

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

В наличии

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

Категория:

Описание

Вводные:

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

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

 

Решение:

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

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

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

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

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

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

Код:

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

 

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

 

has been added to your cart:
Оформление заказа