Перенос файлов из томов в информационную базу для конфигураций на БСП 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    2356    8    14    

8

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

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    3047    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    625    Iaskeliainen    2    

7

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    2890    milkers    3    

9

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1396    PROSTO-1C    0    

16

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1194    PROSTO-1C    4    

14

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

04.10.2024    2082    MadRave    11    

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