Имя: Пароль:
1C
1С v8
v8: Ошибка преобразования данных XDTO
0 Vebsea
 
16.06.14
23:52
Есть 2 процедуры:
Процедура Выбор_файла(Команда)
    Файл = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Файл.Заголовок = "Выберите файл";
    Файл.ПолноеИмяФайла = "";
    Файл.Фильтр = "EXCEL (*.xls;.xlsx)|*.xls;*.xlsx";
    Файл.МножественныйВыбор = Ложь;
    Если Файл.Выбрать() Тогда
        EXC=Новый COMОбъект("Excel.Application");
        Book=EXC.WorkBooks.Open(Файл.ПолноеИмяФайла);
        Лист=Book.WorkSheets(1);
        Кол_во_строк=Лист.Cells(1,1).SpecialCells(11).Row;
        Для а=2 по Кол_во_строк ЦИКЛ
            Контрагент=Лист.Cells(а,2).Value;
            Товар=Лист.Cells(а,4).Value;
            Количество=Лист.Cells(а,5).Value;
            Документ=СозданиеДокумента(1,1,Контрагент,Товар,Количество);
            Если Лист.Cells(а+1,1).Value="" ТОГДА
                а=а+1;
                Пока Лист.Cells(а,1).Value="" Цикл
                    Документ=СозданиеДокумента(0,Документ,1,Поиск_и_создание_товара(Лист.Cells(а,4).Value),Лист.Cells(а,5).Value);
                    а=а+1;
                КонецЦикла;
            КонецЕсли;
            Документ.Записать();
        КонецЦикла;
        EXC.Application.Quit();
    КонецЕсли;    
КонецПроцедуры
&НаСервере
Функция СозданиеДокумента(Создание,Документ,контрагент,товар,количество)
    Если Создание=1 ТОГДА
        Документ=Документы.Приход.СоздатьДокумент();
        Документ.Контрагент=Поиск_и_создание_Контрагента(контрагент);
        Документ.Дата=ТекущаяДата();
    КонецЕсли;
    стр=Документ.Товары.Добавить();
    стр.Товар=Поиск_и_создание_товара(товар);
    стр.Количество=количество;
    //Документ.Записать();
    Возврат Документ;
КонецФункции

{Обработка.Импорт_в_приход.Форма.Форма.Форма(18)}: Ошибка при вызове метода контекста (СозданиеДокумента)
            Документ=СозданиеДокумента(1,1,Контрагент,Товар,Количество);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}Ref    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType

Почему? Если делать СозданиеДокумента() процедурой - то параметры передаются.
3 mdocs
 
17.06.14
00:00
сначала раздели людей и коней шифрованных словом документ, потом перенеси всю работу с документобьект на сервер
4 Asmody
 
17.06.14
00:01
(0) ты объект с сервера передаешь. Так нельзя
5 Vebsea
 
17.06.14
00:02
А ссылку на объект?
6 Vebsea
 
17.06.14
00:03
(3) Тогда надо будет эксель переносить куда-то в ТЗ.
7 Asmody
 
17.06.14
00:04
(5) ссылку можно. Но работать с объектами можно только на сервере
8 Asmody
 
17.06.14
00:05
(6) ТЗ нельзя передавать между сервером и клиентом.
9 Vebsea
 
17.06.14
00:06
(7)  Дак мне не работать, мне просто эту-же ссылку потом закинуть обратно, но с другим условием обработки документа. (8)  Совсем никак ТЗ не передать? А массив?
10 Asmody
 
17.06.14
00:12
(9) массив можно.
Еще можно сделать реквизит формы нужного типа и работать с ним. Ключевые слова: ЗначениеВРеквизитФормы и РеквизитФормыВЗначение
11 Vebsea
 
17.06.14
00:12
(10) А реквизит формы будет виден на сервере?
12 Vebsea
 
17.06.14
00:14
(10) Понял, спасибо!
13 Asmody
 
17.06.14
00:14
(11) в контекстных вызовах будет виден
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.