Имя: Пароль:
1C
1С v8
Ошибка при загрузки данных из xls
0 Шурик_1985
 
10.05.12
16:08
Всем привет!
Ребята столкнулся с такой задачей в практике первые, думаю Вы укажите правильный путь.
Хотел загрузить данные из xls в справочник Номенклатура. Для этого надыбал ЗагрузкаДанныхИзТабличногоДокумента настроил все параметры, на файловом режиме работает все отлично. А вот на серверном, не хочет, вылазить вот такая ошибка: [COLOR=#FF0033][B]"Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ОбменДаннымиОбменУправлениеНебольшойФирмойБухалтерия20ПередЗаписью()"[/B][/COLOR]
Конфигурация УНФ
1С 8.2.15.294

Буду очень признателен за любую инфо, а то не знаю уже что делать. 
1 Vovan1975
 
10.05.12
16:13
бугагага
2 Шурик_1985
 
10.05.12
16:16
Vovan1975 не понял???????а можно на русском ?:)
3 ДенисЧ
 
10.05.12
16:20
Дык.... Мутабельное значение на сервер не надо передавать... Вот и ошибка не будет вылезать...
4 Vovan1975
 
10.05.12
16:20
на русском? Пожалуйста - как уже достали тупорылые долбоклюи неспособные пользоваться поиском даже по форуму. Кто вас таких убогих нанимает?
5 palpetrovich
 
10.05.12
16:20
6 Шурик_1985
 
11.05.12
05:56
Vovan1975 слушай батан не нарывайся!
7 Luhtas
 
11.05.12
06:06
(0)
Вот пример, недавно сам делал:

&НаКлиенте
Процедура ЗагрузитьИзExcel(Команда)
   ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   
   ДиалогВыбораФайла.Заголовок = "Прочитать табличный документ из файла";
   ДиалогВыбораФайла.Фильтр    = "Лист Excel (*.xls)|*.xls|";
   Если ДиалогВыбораФайла.Выбрать() Тогда
       ТабличныйДокумент = Элементы.Номенклатура;
       ФайлНаДиске = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
       Если нРег(ФайлНаДиске.Расширение) = ".xls" Тогда
           ТЗ=ПрочитатьТабличныйДокументИзExcel(ДиалогВыбораФайла.ПолноеИмяФайла, );
       Иначе
           Сообщить("Нужно выбрать файл с раширением "".xls""");
       КонецЕсли;
       
       Если Вопрос("Перед заполнением табличная часть будет очищена. Продолжить", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
           ЗагрузитьТЧ(ТЗ);
       КонецЕсли;
       
   КонецЕсли;

КонецПроцедуры


Функция ПрочитатьТабличныйДокументИзExcel(ИмяФайла, НомерЛистаExcel = 1)
       xlLastCell = 11;
       НомерНачальнойСтроки = 1;
       ВыбФайл = Новый Файл(ИмяФайла);
       Если НЕ ВыбФайл.Существует() Тогда
           Сообщить("Файл не существует!");
           Возврат Ложь;
       КонецЕсли;
       
       Попытка
           Excel = Новый COMОбъект("Excel.Application");
           Excel.WorkBooks.Open(ИмяФайла);
           //Состояние("Обработка файла Microsoft Excel...");
           ExcelЛист = Excel.Sheets(НомерЛистаExcel);
       Исключение
           Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
           Возврат ложь;
           
       КонецПопытки;
       
       Объект.Номенклатура.Очистить();
       
   ТЗ = Новый ТаблицаЗначений;
   Для ии = 1 По Excel.Cells.SpecialCells(11).Column Цикл
       
       Попытка
           Если ии < 10 Тогда
               ТЗ.Колонки.Добавить("Кол00"+Строка(ии), ,Excel.ActiveSheet.Cells(1,ии).Value);
           Иначе
               ТЗ.Колонки.Добавить("Кол0"+Строка(ии), ,Excel.ActiveSheet.Cells(1,ии).Value);
           КонецЕсли;
       Исключение
           Сообщить("Не удалось добавить колонку");
       КонецПопытки;
       
   КонецЦикла;
       
   КолКолонок = ии - 1;
   
   КоличествоСтрок = Excel.Cells.SpecialCells(11).Row;
   
   Если НомерНачальнойСтроки < 1 Тогда
       НомерНачальнойСтроки = 1
   КонецЕсли;
 
   Для ии = НомерНачальнойСтроки По КоличествоСтрок  Цикл
       стр = ТЗ.Добавить();
       Для кол = 1 По КолКолонок Цикл
           стр[кол-1] = Формат(Excel.ActiveSheet.Cells(ии,кол).Value,"ЧГ=0");
       КонецЦикла;
       //Состояние("Загружено из XLS: "+Строка(ии)+ " из "+Строка(КоличествоСтрок));
   КонецЦикла;
   
   Excel.Quit();

   Возврат ТЗ;

КонецФункции // ()
8 Шурик_1985
 
11.05.12
06:08
Luhtas Спасибо. будем зубрить :)