Выгрузка присоединенных файлов номенклатуры (картинки) через конвертацию 2.1 между УТ11 и УТ11

1. MaCCapAkIII 04.03.19 04:36 Сейчас в теме
Собственно вопрос в названии.
Есть две УТ11 идентичные, выгружаю Поступления вместе с товарами и штрихкодами. Товары в приемнике создаются, но если в источнике у товаров были кратинки - при попытке зайти в такой товар в приемнике получаю
ошибку


Пробовал создавать ПВД для справочника ПрисоединенныеФайлы и регистра ПРисоединенныеФайлы, но в отборе для регистра не получается нормально отобрать данные.

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПоступлениеТоваровУслуг.Ссылка КАК ДокПоступленияОтбор
	|ИЗ
	|	Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
	|ГДЕ
	|	ПоступлениеТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
	|	И ПоступлениеТоваровУслуг.Организация = &Организация";

Запрос.УстановитьПараметр("Дата1", (ТекущаяДата() - 60*60*24*5));
Запрос.УстановитьПараметр("Дата2", ТекущаяДата());
Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоНаименованию("_______"));

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

МассивПоступлений = Новый Массив;

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	МассивПоступлений.Добавить(ВыборкаДетальныеЗаписи.ДокПоступленияОтбор);
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст =
		"ВЫБРАТЬ
		|	ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
		|	ПрисоединенныеФайлы.ПрисоединенныйФайл КАК ПрисоединенныйФайл,
		|	ПрисоединенныеФайлы.ХранимыйФайл КАК ХранимыйФайл
		|ИЗ
		|	Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
		|		ПО (ПоступлениеТоваровУслугТовары.Номенклатура = НоменклатураПрисоединенныеФайлы.ВладелецФайла)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныеФайлы
		|		ПО (ПоступлениеТоваровУслугТовары.Номенклатура = ПрисоединенныеФайлы.ПрисоединенныйФайл.ВладелецФайла)
		|ГДЕ
		|	ПоступлениеТоваровУслугТовары.Ссылка В(&МассивПоступлений)
		|	И НЕ НоменклатураПрисоединенныеФайлы.Наименование ЕСТЬ NULL";
	
Запрос.УстановитьПараметр("МассивПоступлений", МассивПоступлений);

//ВыборкаДанных = Запрос.Выполнить().Выбрать();

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

ВыборкаДанных	=	Запрос.Выполнить().Выгрузить();
ВыборкаДанных.Свернуть("Номенклатура, ПрисоединенныйФайл, ХранимыйФайл");

Для Каждого Элемент Из ВыборкаДанных Цикл
	ВыгрузитьПоПравилу(ВыборкаДанных,,,,"ПрисоединенныеФайлы",,,,,);	
КонецЦикла;

Показать


Второй запрос возвращает задвоенные данные, а при попытке преобразовать выборку в таблицу значений и свернуть ее - получаю ошибку при выгрузке... Прошу помощи.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MaCCapAkIII 04.03.19 04:39 Сейчас в теме
Какие ПВД необходимо создать для грамотной выгрузки присоединенных к номенклатуре картинок? Там ведь, насколько я понимаю, ХранилищеДанных с двоичными данными по картинкам... Как их выгрузить правильно не могу сам дойти.
3. maks_20 165 04.03.19 12:15 Сейчас в теме
Делаете ПКО для справочника НоменклатураПрисоединенныеФайлы, В ПКО Номенклатура для пкс ФайлКартинки указываете созданное ПКО. В обработчике ПослеЗагрузки для ПКО НоменклатураПрисоединенныеФайлы пишите следующий код:
Объект.Записать();
ПрисоединенныйФайл = Объект.Ссылка;
ДвоичныеДанные = Объект.ФайлХранилище;
Сообщить("присоединенный файл "+ПрисоединенныйФайл);
УстановитьПривилегированныйРежим(Истина);
	
МенеджерЗаписи = РегистрыСведений.ПрисоединенныеФайлы.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ПрисоединенныйФайл = ПрисоединенныйФайл;
МенеджерЗаписи.ХранимыйФайл = ДвоичныеДанные;//Новый ХранилищеЗначения(картинка, Новый СжатиеДанных(9));
МенеджерЗаписи.Записать(Истина);

Объект.Заполнить(Неопределено);
Объект.Записать();
Показать
5. MaCCapAkIII 04.03.19 23:07 Сейчас в теме
(3)
Делаете ПКО для справочника НоменклатураПрисоединенныеФайлы, В ПКО Номенклатура для пкс ФайлКартинки указываете созданное ПКО. В обработчике ПослеЗагрузки для ПКО НоменклатураПрисоединенныеФайлы пишите следующий код


Загрузка отработала, написала, что файлы загружены. НО при попытке их открыть в приемнике - ошибка. Может все-таки стОит еще и какие-нибудь двоичные данные передавать?
Прикрепленные файлы:
6. MaCCapAkIII 05.03.19 00:35 Сейчас в теме
(5) В карточке товара написано, что файл есть, в поле описание пусто, если зайти в файл - там тоже файл есть, но открыть его не получается, ошибка. Уже голову сломал...
7. maks_20 165 05.03.19 07:56 Сейчас в теме
(6) Пришлите скрин ПКО НоменклатураПрисоединенныеФайлы и скрин ПКО Номенклатура. Нужно посмотреть, все ли обязательные свойства сопоставлены.
8. MaCCapAkIII 05.03.19 23:35 Сейчас в теме
(7) Указанные вами ПКО. Вроде создавались по умолчанию при формировании конвертации, ничего особо не менял.
Прикрепленные файлы:
ПКО_Номенклатура.mxl
ПКО_НоменклатураПрисоединенныеФайлы.mxl
9. maks_20 165 06.03.19 12:12 Сейчас в теме
(8) А базы приемника и источника находятся на одном сервере? у меня такое ощущение. что в базе-источнике картинки хранились не в базе, а в каталоге, а у базы-приемника нет доступа к этому каталогу. У вас именно в хранилище значений некорректные данные. Попробуйте в качестве эксперимента в ПКО у свойства ТипХраненияФайла прописать

Значение = "ВИнформационнойБазе"; и очистить правило.
Прикрепленные файлы:
11. MaCCapAkIII 07.03.19 00:10 Сейчас в теме
(9)Очистил источник (не увидел его на скрине) и добавил указанный код в ПКС ТипХраненияФайла ПКО НоменклатураПрисоединенныеФайлы. Теперь при выгрузке сообщение с ошибкой "Не найдено соответствие...", но данные выгружаются, а в приемнике вместо пустой картинки вообще пусто (картинка не выгружается), а все остальное как и было. Файл показан 1, если на него нажать - показывает название файла, если нажать на файл - ошибка как в первом посте. В общем не вышло.
10. maks_20 165 06.03.19 12:15 Сейчас в теме
(8) Если не поможет, то это только смотреть правила нужно. У меня аналогичные правила работают нормально, без проблем. Тут публиковал подобные правила https://infostart.ru/public/634454/
4. fenixnow 269 04.03.19 13:33 Сейчас в теме
Из самописки в УТ11 использовал выгрузку изображения в Параметр а потом в ПКО после загрузки, при помощи библиотечных методов прикреплял к номенклатуре

// Основное изображение
	Изображение = ПараметрыОбъекта.Получить("ОсновноеИзображение");
	
	Если Изображение <> Неопределено Тогда
		
		ДанныеИзображения = Изображение.Получить();
		
		МассивФайлов = Новый Массив;
		ПрисоединенныеФайлы.ПолучитьПрикрепленныеФайлыКОбъекту(Объект.Ссылка, МассивФайлов);
		
		Если МассивФайлов.Количество() = 0 Тогда
			ДвоичныеДанные = ДанныеИзображения.ПолучитьДвоичныеДанные();
			АдресФайлаВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);
			
			ПараметрыФайла = Новый Структура;
			ПараметрыФайла.Вставить("Автор", Пользователи.АвторизованныйПользователь());  
			ПараметрыФайла.Вставить("ВладелецФайлов", Объект.Ссылка); 
			ПараметрыФайла.Вставить("ИмяБезРасширения", СтрЗаменить(Объект.Артикул, " ", "_"));
			ПараметрыФайла.Вставить("РасширениеБезТочки", "jpg");
			ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", ТекущаяУниверсальнаяДата());
			
			Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
				СсылкаНаКартинку = ПрисоединенныеФайлы.ДобавитьПрисоединенныйФайл(ПараметрыФайла, АдресФайлаВХранилище);
			КонецЕсли;
			
			Если Не ЗначениеЗаполнено(Объект.ФайлКартинки) Тогда 
				Объект.ФайлКартинки = СсылкаНаКартинку;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
Показать
12. RasBel 22.02.22 12:22 Сейчас в теме
Пытаюсь из УТ11.1 -> УТ11.4 сделать. Не выгружает картинку.
Справочники: Номенклатура, НоменклатураПрисоединенныеФайлы заполнил. РС ДвоичныеДанныеФайлов тоже.
В карточке товара написано, что файл есть, если зайти в файл - там тоже файл есть, но открыть картинку его не получается, ошибка.
Не поделитесь опытом ?
13. пользователь 22.02.22 13:29
Сообщение было скрыто модератором.
...
14. пользователь 22.02.22 13:31
Сообщение было скрыто модератором.
...
15. t278 57 21.07.23 07:30 Сейчас в теме
16. Namihika 14.08.23 11:31 Сейчас в теме
Доброго дня всем. Возможно, кому-то поможет.
При отладке было замечено, что в справочнике присоединенные файлы не заполнялся реквизит ТипыХраненияФайлов. Надо добавить соответствующий ПКО и изображения встают на место.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот