&НаСервере
Процедура ЗагрузкаПрайсаНаСервере(АдресВременногоХранилища)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
ДвоичныеДанные.Записать(ИмяВременногоФайла);
сообщить(ИмяВременногоФайла);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяВременногоФайла,СпособЧтенияЗначенийТабличногоДокумента.Значение);
//листаем все листы
Для Каждого ОбластьТД ИЗ ТабличныйДокумент.Области Цикл
ОбластьФайла = ТабличныйДокумент.ПолучитьОбласть(ОбластьТД.Имя);
КолВоСтрокФайла = ОбластьФайла.ПолучитьРазмерОбластиДанныхПоВертикали();
КолВоКолонокФайла = ОбластьФайла.ПолучитьРазмерОбластиДанныхПоГоризонтали();
Сообщить("Строк:"+КолВоСтрокФайла);
Сообщить("Колонок:"+КолВоКолонокФайла);
имялиста=ОбластьТД.Имя;
Сообщить("Лист:"+имялиста);
МассивИменКолонок=Новый Массив();
// читаем шапку листа
Для ит=1 ПО КолВоКолонокФайла Цикл
нКолонка = СтрЗаменить(ит, Символы.НПП, "");
ИмяКолонки=ОбластьФайла.ПолучитьОбласть("R1" + "C"+нКолонка).ТекущаяОбласть.Текст;
сообщить("- колонка: "+ИмяКолонки);
МассивИменКолонок.Добавить(ИмяКолонки);
конеццикла;
НачСтрока=0;КонСтрока=0;
НачСтрока = ?(НачСтрока = 0, 2, НачСтрока);
КонСтрока = ?(КонСтрока = 0, КолвоСтрокФайла, КонСтрока);
//перебираем все строки без первой строки
Для нСтрокаТФ = НачСтрока ПО КонСтрока Цикл
нСтрока = СтрЗаменить(нСтрокаТФ, Символы.НПП, "");
СодержимоеСтроки=Новый Массив();
Для нКолонкаТФ = 1 ПО КолВоКолонокФайла Цикл
нКолонка = СтрЗаменить(нКолонкаТФ, Символы.НПП, "");
Область = ОбластьФайла.ПолучитьОбласть("R"+нСтрока+"C"+нКолонка);
ТекущаяОбласть = Область.ТекущаяОбласть;
ЗначениеЯчейки = СокрЛП(ТекущаяОбласть.Текст);
СодержимоеСтроки.Добавить(ЗначениеЯчейки);
конеццикла;
// ОбработатьСписокЗначений в "СодержимоеСтроки"
конеццикла;
конеццикла;
КонецПроцедуры