Имя: Пароль:
1C
 
Перенос прикрепленных файлов
0 first_may
 
06.06.24
10:47
Добрый день.

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

Подскажите пож, как можно автоматически перенести эти прикрепления в другую базу?

руками - это крайний вариант, так как количество не маленькое.
1 craxx
 
06.06.24
11:05
(0) Нарисовать правила обмена в КД2 и перенести
2 first_may
 
06.06.24
11:25
(1) только надо знать что переносить..
какие регистры и справочники
3 craxx
 
06.06.24
12:11
(2) Телепатов тут нет, название конфигураций не озвучено
4 lamme
 
06.06.24
12:14
есть обработка -
перенос справочников и документов между идентичными конфигурациями
как для уф
так и для обычных форм

попробуй
5 craxx
 
06.06.24
12:16
(4) в общем случае не прокатит, там надо понимать где картинка лежит, может и в РС.
6 first_may
 
06.06.24
12:21
(3) базы ерп..
я посмотрел на что ссылается файл, вернее элемент справочника присоединенный файл..

регистры сведений
- двоичныеданныефайлов
- сведенияофайлах
- файлыврабочем каталоге
7 Лирик
 
06.06.24
12:25
(6) Две одинаковые конфигурации не есть две одинаковые базы. Файлы прикрепляются к владельцам. Если ты уверен что в в двух базах владельцы идентичны (вплоть до УИД) тогда можно (4) во всех остальных случаях (1)
8 Aleksey
 
06.06.24
12:27
(6) Есть еще вариант что файлы физически хранятся вне базы.
9 first_may
 
06.06.24
12:41
(7) доки точно одинаковые..
они переносились через выгрузка/загрузка в формате xml..

остались только файлы к ним..

"перенос справочников и документов между идентичными конфигурациями " - но не регистров


получается только через КД?
10 Лирик
 
06.06.24
13:09
(9) Для обычных форм я пользовался "Выгрузкой загрузкой данных XML" v. 2.1.6
Там есть все. Для УФ не искал подобного, ибо мне проще КД 2.
Наверно, запустив ЕРП в режиме обычных форм можно и ей перенести.
11 first_may
 
06.06.24
13:49
(10) в ерп есть такая же, но с ее помощью не получается выгрузить..
12 Ногаминебить
 
06.06.24
13:55
Приспособить готовое под свои специфичные потребности  часто получается дольше. Цепануться любым привычным и знакомым способом (ком, хттп) и перетащить.
13 PLUT
 
06.06.24
14:11
(0) сериализацией влёгкую, если пофигурации одинаковые

выгрузка

Подробности
ДанныеДляВыгрузки = ПолучитьДанныеДляВыгрузкиНаСервере();
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб));
	
	СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, ДанныеДляВыгрузки, НазначениеТипаXML.Явное);
	
	Текст = Новый ТекстовыйДокумент;
	Текст.УстановитьТекст(ЗаписьJSON.Закрыть());
	Текст.Записать(ИмяФайла);

&НаСервере
Функция ЭлементВТекстJSON(Элем)
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб));
	
	СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Элем.ПолучитьОбъект(), НазначениеТипаXML.Явное);
	
	Возврат ЗаписьJSON.Закрыть();
	
КонецФункции

&НаСервере
Функция ПредставлениеСправочника(Ссылка)
	
	ТекстПредставление = Ссылка.Метаданные().Синоним + " " + XMLСтрока(Ссылка);
	
	Возврат ТекстПредставление;
	
КонецФункции

&НаСервере
Функция ПолучитьДанныеДляВыгрузкиНаСервере()

	ДанныеДляВыгрузки = Новый Соответствие();
	
	Выборка = тут магические заклинания по получению нужных сцылок справочника для выгрузки
	
	Пока Выборка.Следующий() Цикл
		
		ТекСпр = Выборка.Ссылка;
		
		ДанныеДляВыгрузки.Вставить(ПредставлениеСправочника(ТекСпр),
										Новый Структура("Справочник",
														ЭлементВТекстJSON(ТекСпр)
														)
										);
		
	КонецЦикла;
		
	Возврат ДанныеДляВыгрузки;							
	
КонецФункции


загрузка

Подробности
ТекстовыйФайл = Новый ТекстовыйДокумент;
		ТекстовыйФайл.Прочитать(ИмяФайла);
		
		РезультатЗагрузки = ЗагрузитьСправочникИзФайлаJSONНаСервере(ТекстовыйФайл.ПолучитьТекст());
		Если РезультатЗагрузки["Успех"] Тогда
			
			Сообщить("Справочник загружен");
				
		Иначе
			Сообщить("Ошибка: " + РезультатЗагрузки["ТекстСообщения"]);
		КонецЕсли;

&НаСервере
Функция ЗагрузитьСправочникИзФайлаJSONНаСервере(ТекстJSON)
	
	РезультатЗагрузки = Новый Структура("Успех,
										|ТекстСообщения",
										Ложь,
										""
										);
									
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТекстJSON);
	
	ДанныеДляЗагрузки = СериализаторXDTO.ПрочитатьJSON(ЧтениеJSON); //Соответствие: Ключ, Значение: Структура(Справочник)
	
	СписокДокументов = Новый Массив;
	
	Для Каждого ТекЭлем из ДанныеДляЗагрузки Цикл
		
		Попытка     
			
			Если ТекЭлем.Значение.Свойство("Справочник") Тогда
				
				//Справочник
				ЧтениеJSON = Новый ЧтениеJSON;
				ЧтениеJSON.УстановитьСтроку(ТекЭлем.Значение["Справочник"]);
				ОбъектИзФайла = СериализаторXDTO.ПрочитатьJSON(ЧтениеJSON); 
				
				ОбъектИзФайла.ОбменДанными.Загрузка = Истина;
				ОбъектИзФайла.Записать();
				
			КонецЕсли;
			
			РезультатЗагрузки.Вставить("Успех", Истина);
			
		Исключение
			
			РезультатЗагрузки.Вставить("Успех", Ложь);
			РезультатЗагрузки.Вставить("ТекстСообщения", ОписаниеОшибки());
			
		КонецПопытки;
		
	КонецЦикла;
	
	Возврат РезультатЗагрузки;

КонецФункции
14 PLUT
 
06.06.24
14:27
+(13) для выгрузки/загрузки регистров сведений придется еще немного магических заклинаний  насыпать, но ссуть та же
15 first_may
 
06.06.24
14:33
(14) справочники прикрепленных уже сделаны..
они даже отображаются на форме в разделе Файлы..

но открыть их нельзя, так как понимаю что сами находятся вот тут

регистры сведений
- двоичныеданныефайлов
- сведенияофайлах
- файлыврабочем каталоге
16 PLUT
 
06.06.24
14:37
(15) смерть кощея в яйце

РС двоичныеданныефайлов

Измерения
  Файл - тип: ОпределяемыйТип.ПрисоединенныйФайл
Ресурсы
  ДвоичныеДанныеФайла - тип: ХренилищеЗначения
17 PLUT
 
06.06.24
14:46
+(16)

вот тут пример "оборачивания" (слово то какое!) сохранения/восстановления Хренилища значения при сериализации в XML (для JSON аналогично)

https://infostart.ru/1c/articles/1514425/
18 first_may
 
06.06.24
15:56
Спасибо всем..
2 + 2 = 3.9999999999999999999999999999999...