[УТ3 для Украины] Исправление ошибки вывода цен номенклатуры в XLS файл
При первоначальном заполнении базы данных для работы новой группы компаний столкнулся к одной интересной проблемой:
— прайс длинный, цен много, идеальный вариант — загрузить из Excel
— формат данных для подготовки данных нигде не описан, по крайней мере — перерыл кучу сайтов и форумов.
Как результат — ничего с загрузкой не проходит…
- Описание
- Подробнее
Описание
Конфигурация «Управление Торговлей 3.0 для Украины», релизы 3.0.2.42 и 3.0.3.17.
При первоначальном заполнении базы данных для работы новой группы компаний столкнулся к одной интересной проблемой:
— прайс длинный, цен много, идеальный вариант — загрузить из Excel
— формат данных для подготовки данных нигде не описан, по крайней мере — перерыл кучу сайтов и форумов.
Как результат — ничего с загрузкой не проходит.
Сразу попросилось простое решение — есть кнопка ВЫГРУЗИТЬ в файл. Значит — бьем пару позиций, ставим пару цен — и выгружаем и смотрим.
А не тут-то было: функция вывода вылетает по ошибке.
Вобщем, захотелось мне разобраться и это все починить, т.к. набивать кучу данных руками — не мой путь.
Анализ и вскрытие показали, что в функции СоздатьПрисоединенныйФайлXLS97УстановкиЦенНоменклатуры, в форме документа УстановкаЦенНоменклатуры — примитивная ошибка!
&НаСервере
Функция СоздатьПрисоединенныйФайлXLS97УстановкиЦенНоменклатуры(ПараметрыПечати)
МассивДокументов = Новый Массив;
МассивДокументов.Добавить(Объект.Ссылка);
ОбъектыПечати = Новый СписокЗначений;
ОбъектыПечати.Добавить(Объект.Ссылка);
//ТабличныйДокумент = Документы.УстановкаЦенНоменклатуры.СформироватьПечатнуюФормуУстановкиЦенНоменклатуры(МассивДокументов, ОбъектыПечати, ПараметрыПечати);
ТабличныйДокумент = Документы.УстановкаЦенНоменклатуры.СформироватьПечатнуюФормуУстановкиЦенНоменклатуры(МассивДокументов, ОбъектыПечати, ПараметрыПечати, УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода());
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
ТабличныйДокумент.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS97);
АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВременногоФайла), УникальныйИдентификатор);
Файл = ПрисоединенныеФайлы.ДобавитьФайл(Объект.Ссылка, "Excel" + " " + Формат(ТекущаяДата(), "ДФ='dd.MM.yyyy ЧЧ.мм.сс'"), "xls", ТекущаяДата(), ТекущаяДата(), АдресФайлаВоВременномХранилище, Неопределено);
Если Файл <> Неопределено Тогда
ПрисоединенныеФайлы.ЗанятьФайлДляРедактированияСервер(Файл);
ДанныеФайла = ПрисоединенныеФайлы.ПолучитьДанныеФайла(Файл, УникальныйИдентификатор, Истина);
Возврат Новый Структура("ДанныеФайла, Файл", ДанныеФайла, Файл);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Как видно, при вызове функции СформироватьПечатнуюФормуУстановкиЦенНоменклатуры просто пропущен последний параметр. Достаточно вставить в этом месте вызов УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода() — и все работает, выгрузки проходят.
Этого оказалось вполне достаточно, чтобы формировать файлы для заполнения различных цен и последующей их загрузки в документ установки цен.
Возможно, в российской УТ11 — есть такая же засада…
Да, не забудьте в конфигурации разрешить редактирование, включив режим изменений в окне управления поддержкой.
Удачи всем!
