Имя: Пароль:
1C
1С v8
Проблема с выгрузкой в DBF
0 Filkkore
 
20.07.20
10:08
БП 3.0

Код:

&НаКлиенте
Процедура КнопкаСоздатьФайл(Команда)
    
    СоздатьФайл();
    
КонецПроцедуры

&НаКлиенте
Процедура СоздатьФайл()
    
    БД = Новый xBase;
    БД.Кодировка = КодировкаXBase.ANSI;
    
    БД.поля.Добавить("DataVH","D");
    БД.поля.Добавить("NomerVH","S","15");
    БД.поля.Добавить("Data","D");
    БД.поля.Добавить("Nomer","S","15");
    БД.поля.Добавить("KodOrg","S","20");
    БД.поля.Добавить("KodKontr","S","15");
    БД.поля.Добавить("KotDog","S","15");
    БД.поля.Добавить("Koment","S","200");
    БД.поля.Добавить("KodTov","S","15");
    БД.поля.Добавить("Kolvo","N","15","2");
    БД.поля.Добавить("Cena","N","15","2");
    БД.поля.Добавить("Sum","N","15","2");
    БД.поля.Добавить("NDS","S","5");
    БД.поля.Добавить("SumNDS","N","15","2");
    
    Путь = "C:\Vigr\VIGR.DBF";
    БД.СоздатьФайл(Путь);
    БД.Записать();

    Выборка = Запрос();

    Пока Выборка.Следующий() Цикл

        БД.Добавить();

        БД.DataVH = Выборка.ДатаВходящий;
        БД.NomerVH = Выборка.НомерВходящий;
        БД.Data = Выборка.Дата;
        БД.Nomer = Выборка.Номер;
        БД.KodOrg = Выборка.КодОрганизации;
        БД.KodKontr = Выборка.КодКонтрагента;
        БД.KotDog = Выборка.КодДоговора;
        БД.Koment = Выборка.Комментарий;
        БД.KodTov = Выборка.КодТовара;
        БД.Kolvo = Выборка.Количество;
        БД.Cena = Выборка.Цена;
        БД.Sum = Выборка.Сумма;
        БД.NDS = Выборка.СтавкаНДС;
        БД.SumNDS = Выборка.СуммаНДС;
    
    КонецЦикла;
    
    БД.ЗакрытьФайл();
    
КонецПроцедуры

&НаСервере
Функция Запрос()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПоступлениеТоваровУслугТовары.Ссылка.ДатаВходящегоДокумента КАК ДатаВходящий,
        |    ПоступлениеТоваровУслугТовары.Ссылка.НомерВходящегоДокумента КАК НомерВходящий,
        |    ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата,
        |    ПоступлениеТоваровУслугТовары.Ссылка.Номер КАК Номер,
        |    ПоступлениеТоваровУслугТовары.Ссылка.Организация.Код КАК КодОрганизации,
        |    ПоступлениеТоваровУслугТовары.Ссылка.Контрагент.Код КАК КодКонтрагента,
        |    ПоступлениеТоваровУслугТовары.Ссылка.ДоговорКонтрагента.Код КАК КодДоговора,
        |    ПоступлениеТоваровУслугТовары.Ссылка.Комментарий КАК Комментарий,
        |    ПоступлениеТоваровУслугТовары.Номенклатура.Код КАК КодТовара,
        |    ПоступлениеТоваровУслугТовары.Количество КАК Количество,
        |    ПоступлениеТоваровУслугТовары.Цена КАК Цена,
        |    ПоступлениеТоваровУслугТовары.Сумма КАК Сумма,
        |    ПоступлениеТоваровУслугТовары.СтавкаНДС КАК СтавкаНДС,
        |    ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Возврат Выборка;
    
КонецФункции



Выдаёт ошибку:

"{ВнешняяОбработка.ВыгрузкаВDBF.Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Запрос)
    Выборка = Запрос();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса'

по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса'"

Впервые работаю с этим, потому понятия не имею, в чём заключается проблема. Помогите, кто сталкивался...
1 Йохохо
 
20.07.20
10:14
Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса'
выборка как и ТЗ просто так не ходит с сервера на клиент
https://helpf.pro/faq82/view/1605.html
2 Garykom
 
гуру
20.07.20
10:14
(0) ошибка в попытке передать с сервера на клиент результат функции

ты или dbf на сервере делай а потом возвращай ее на клиента через хранилище

или передавай назад не "Запрос.Выполнить().Выбрать()" а нечто более простое
например структуры в массиве
3 Filkkore
 
20.07.20
10:16
(1) (2) Спасибо, сейчас попробую
4 D_E_S_131
 
20.07.20
10:37
Я бы еще обратил внимание на название функции "Запрос()". Совсем слов жалко, что к системным наименованиям обращаемся?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn