gifts2017

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

Опубликовал Vasya Pupkin (zloy_vasya) в раздел Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Удачи всем!

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа