Функция ЗагрузитьУслуги_ИзВремФайла_вТЗ(Знач ИмяВременногоФайла)
Текст = Новый ЧтениеТекста;
Текст.Открыть(ИмяВременногоФайла, КодировкаТекста.ANSI);
ТекСтрока
= Текст.ПрочитатьСтроку();
ВремяНачала
= ТекущаяДата();
НомерСтроки
= 1;
//=============================
//Наименование колонок файла
//=============================
//Код услуги
//Наименование услуги
//Код поставщика услуги
//Поставщик услуги
//Тип услуги
//Код типа услуги
тзУсл =
Новый ТаблицаЗначений;//Коды поставщиков услуг
тзУсл.Колонки.Добавить("КодУслуги");//0
тзУсл.Колонки.Добавить("НаименованиеУслуги");//1
тзУсл.Колонки.Добавить("КодПоставщикаУслуги");//2
тзУсл.Колонки.Добавить("ПоставщикУслуги");//3
тзУсл.Колонки.Добавить("ТипУслуги");//4
тзУсл.Колонки.Добавить("КодТипаУслуги");//5
Пока ТекСтрока
<> Неопределено Цикл
ТекСтрока
= Текст.ПрочитатьСтроку();
НомерСтроки
= НомерСтроки + 1;
МассивСтроки
= СтрРазделить(ТекСтрока,
";");
Если МассивСтроки.Количество() < 6 Тогда
Сообщить("Строка:
" + НомерСтроки + " - Число колонок в
строке: " + МассивСтроки.Количество());
Продолжить;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(МассивСтроки[0])
Тогда
Продолжить;
КонецЕсли;
СтрокаТЗ
= тзУсл.Добавить();
СтрокаТЗ.КодУслуги
= МассивСтроки[0];
СтрокаТЗ.НаименованиеУслуги
= МассивСтроки[1];
СтрокаТЗ.КодПоставщикаУслуги
= МассивСтроки[2];
СтрокаТЗ.ПоставщикУслуги
= МассивСтроки[3];
СтрокаТЗ.ТипУслуги
= МассивСтроки[4];
СтрокаТЗ.КодТипаУслуги
= МассивСтроки[5];
КонецЦикла;//ТЗ
ВремяОкончания
= ТекущаяДата();
Сообщить("Загрузка услуг,
мин: " + (ВремяОкончания - ВремяНачала)/60
+ Символы.ПС +
"Прочитано строк: " + НомерСтроки);
Если ЗначениеЗаполнено(тзУсл) Тогда
Возврат тзУсл;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Процедура
ЗагрузитьУслуги_НаСервере(Знач ДвоичныеДанныеФайла)
ИмяВремФайлаНаСервере
= ПолучитьИмяВременногоФайла("csv");
ДвоичныеДанныеФайла.Записать(ИмяВремФайлаНаСервере);
тзУслуги
= ЗагрузитьУслуги_ИзВремФайла_вТЗ(ИмяВремФайлаНаСервере);
Если ЗначениеЗаполнено(тзУслуги)
Тогда
ДобавитьУслугиИПоставщиковИзТЗ(тзУслуги);
КонецЕсли;
УдалитьФайлы(ИмяВремФайлаНаСервере);
КонецПроцедуры
&НаКлиенте
Процедура
ЗагрузкаУслугИПоставщиков(Команда)
Если НЕ ЗначениеЗаполнено(ЭтотОбъект.ФайлСУслугами) И
НЕ ЗначениеЗаполнено(ЭтотОбъект.ПоставщикУслугУК) Тогда
Сообщить("Не
заполнены обязательные поля!");
Возврат;
КонецЕсли;
//При переходе с клиента на сервер
//или имя файл Иксель
не виден
//или имя временного файла другое
дд =
Новый ДвоичныеДанные(ЭтотОбъект.ФайлСУслугами);
ЗагрузитьУслуги_НаСервере(дд);
КонецПроцедуры
|