Каталог решений - [УТ3 для Украины] Исправление ошибки вывода цен номенклатуры в XLS файл

[УТ3 для Украины] Исправление ошибки вывода цен номенклатуры в XLS файл

[УТ3 для Украины] Исправление ошибки вывода цен номенклатуры в XLS файл

В наличии

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

Как результат — ничего с загрузкой не проходит…

Категория:

Описание

Конфигурация «Управление Торговлей 3.0 для Украины», релизы 3.0.2.42 и 3.0.3.17.

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

Как результат — ничего с загрузкой не проходит.

Сразу попросилось простое решение — есть кнопка ВЫГРУЗИТЬ в файл. Значит — бьем пару позиций, ставим пару цен — и выгружаем и смотрим.

А не тут-то было: функция вывода вылетает по ошибке.

Вобщем, захотелось мне разобраться и это все починить, т.к. набивать кучу данных руками — не мой путь.

Анализ и вскрытие показали, что в функции СоздатьПрисоединенныйФайлXLS97УстановкиЦенНоменклатуры, в форме документа УстановкаЦенНоменклатуры  — примитивная ошибка!

&НаСервере
Функция СоздатьПрисоединенныйФайлXLS97УстановкиЦенНоменклатуры(ПараметрыПечати)
	
	МассивДокументов = Новый Массив;
	МассивДокументов.Добавить(Объект.Ссылка);
	
	ОбъектыПечати = Новый СписокЗначений;
	ОбъектыПечати.Добавить(Объект.Ссылка);
	
	//ТабличныйДокумент = Документы.УстановкаЦенНоменклатуры.СформироватьПечатнуюФормуУстановкиЦенНоменклатуры(МассивДокументов, ОбъектыПечати, ПараметрыПечати);
	ТабличныйДокумент = Документы.УстановкаЦенНоменклатуры.СформироватьПечатнуюФормуУстановкиЦенНоменклатуры(МассивДокументов, ОбъектыПечати, ПараметрыПечати, УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода());
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
	ТабличныйДокумент.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS97);
	
	АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВременногоФайла), УникальныйИдентификатор);
	
	Файл = ПрисоединенныеФайлы.ДобавитьФайл(Объект.Ссылка, "Excel" + " " + Формат(ТекущаяДата(), "ДФ='dd.MM.yyyy ЧЧ.мм.сс'"), "xls", ТекущаяДата(), ТекущаяДата(), АдресФайлаВоВременномХранилище, Неопределено);
	Если Файл <> Неопределено Тогда
		ПрисоединенныеФайлы.ЗанятьФайлДляРедактированияСервер(Файл);
		ДанныеФайла = ПрисоединенныеФайлы.ПолучитьДанныеФайла(Файл, УникальныйИдентификатор, Истина);
		Возврат Новый Структура("ДанныеФайла, Файл", ДанныеФайла, Файл);
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции

Как видно, при вызове функции СформироватьПечатнуюФормуУстановкиЦенНоменклатуры просто пропущен последний параметр. Достаточно вставить в этом месте вызов УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода() — и все работает, выгрузки проходят.

Этого оказалось вполне достаточно, чтобы формировать файлы для заполнения различных цен и последующей их загрузки в документ установки цен.

Возможно, в российской УТ11 — есть такая же засада…

Да, не забудьте в конфигурации разрешить редактирование, включив режим изменений в окне управления поддержкой.

Удачи всем!

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