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