8.х выгрузка в текстовый файл не получается

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем bannov, 8 фев 2011.

  1. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    1С 8.1 УПП

    Пишу выгрузку в текстовый файл. Очень много данных нужно выдернуть. Не получается указать нужную длину полей. Например, длина поля Фамилия должна быть 20 и тип строковый. Пример кода:

    Код:
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    |	ФИОФизЛицСрезПоследних.Фамилия КАК Фамилия,
    |	ФИОФизЛицСрезПоследних.Имя КАК Имя,
    |	ФИОФизЛицСрезПоследних.Отчество КАК Отчество,
    |	ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    |	ГражданствоФизЛицСрезПоследних.Страна КАК Страна,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид КАК ВидДокумента,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК СерияДокумента,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК НомерДокумента,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи КАК ДатаВыдачи,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК КемВыдан,
    |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения КАК КодПодразделения,
    |	КонтактнаяИнформация.Поле2 как КодРегиона,
    |	КонтактнаяИнформация.Поле3 как Район,
    |	КонтактнаяИнформация.Поле4 как Город,
    |	КонтактнаяИнформация.Поле5 как ТипНасПункта,
    |	КонтактнаяИнформация.Поле6 как НазваниеУлицы,
    |	КонтактнаяИнформация.Поле7 как Дом,
    |	КонтактнаяИнформация.Поле8 как Корпус,
    |	КонтактнаяИнформация.Поле9 как Квартира,
    |	КонтактнаяИнформация.Поле1 как ПочтовыйИндекс,
    |    КонтактнаяИнформация.Вид как Вид,
    |    КонтактнаяИнформация.Представление как Представление,
    |	ФизическиеЛица.Ссылка как Ссылка
    |ИЗ
    |	РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
    |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних
    |			ПО ФизическиеЛица.Ссылка = ГражданствоФизЛицСрезПоследних.ФизЛицо.Ссылка
    |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
    |			ПО ФизическиеЛица.Ссылка = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо.Ссылка
    |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |			ПО ФизическиеЛица.Ссылка = КонтактнаяИнформация.Объект
    |		ПО ФИОФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
    |ГДЕ
    |	ФизическиеЛица.Ссылка = &Ссылка
    |	И КонтактнаяИнформация.Вид = &Вид
    |	И КонтактнаяИнформация.Тип = &Тип";
    Запрос.УстановитьПараметр("Ссылка",Сотрудник);
    Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица);
    Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес);
    Результат = Запрос.Выполнить();
    Текст = Новый ТекстовыйДокумент;
    Текст.ДобавитьСтроку("CUS0004");
    
    ТекГод = Год(ТекущаяДата());
    ТекМесяц = Месяц(ТекущаяДата());
    ТекДень = День(ТекущаяДата());
    Выборка = Результат.Выбрать();  
    Пока Выборка.Следующий() Цикл
    Если Выборка.Страна = Справочники.КлассификаторСтранМира.НайтиПоКоду("643") Тогда 
    СтранаФизЛица = "Р";
    Иначе СтранаФизЛица = "Б";
    КонецЕсли;
    Если Выборка.ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС10 Тогда
    ТипДокумента = "|";
    ИначеЕсли Выборка.ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС21 Тогда
    ТипДокумента = "Ф";
    ИначеЕсли Выборка.ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС12 Тогда
    ТипДокумента = "Ж";
    ИначеЕсли Выборка.ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС14 Тогда
    ТипДокумента = "Е";
    Иначе ТипДокумента = "Ъ";
    КонецЕсли;
    
    Если ВерхнийРегистр Тогда
    Текст.ДобавитьСтроку(Врег(Выборка.Фамилия+"'"+Выборка.Имя+"'"+Выборка.Отчество+"'"+Формат(Выборка.ДатаРождения,"ДФ=dd.MM.yyyy")+"'"+
    СтранаФизЛица+"'"+ТипДокумента+"'"+Выборка.СерияДокумента+"'"+Выборка.НомерДокумента+"'"+Формат(Выборка.ДатаВыдачи,"ДФ=dd.MM.yyyy")+"'"+
    Выборка.КемВыдан+"'"+Выборка.КодПодразделения+"'"+Выборка.Район+"'"+Выборка.Город+"'"+Выборка.ТипНасПункта+"'"+Выборка.НазваниеУлицы+"'"+
    Выборка.Дом+"'"+Выборка.Корпус+"'"+Выборка.Квартира+"'"+Выборка.ПочтовыйИндекс+"'"+"2"+"'"+Телефон(Выборка.Ссылка)+"'"));
    Иначе
    Текст.ДобавитьСтроку(Нрег(Выборка.Фамилия+"'"+Выборка.Имя+"'"+Выборка.Отчество+"'"+Формат(Выборка.ДатаРождения,"ДФ=dd.MM.yyyy")+"'"+
    СтранаФизЛица+"'"+ТипДокумента+"'"+Выборка.СерияДокумента+"'"+Выборка.НомерДокумента+"'"+Формат(Выборка.ДатаВыдачи,"ДФ=dd.MM.yyyy")+"'"+
    Выборка.КемВыдан+"'"+Выборка.КодПодразделения+"'"+Выборка.Район+"'"+Выборка.Город+"'"+Выборка.ТипНасПункта+"'"+Выборка.НазваниеУлицы+"'"+
    Выборка.Дом+"'"+Выборка.Корпус+"'"+Выборка.Квартира+"'"+Выборка.ПочтовыйИндекс+"'"+"2"+"'"+Телефон(Выборка.Ссылка)+"'"));
    КонецЕсли;
    
    
    
    Как и где указать длину и тип поля?
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Фамилия КАК Строка(20)) КАК Фамилия,
    
  3. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    Спасибо огромное! :angry:

Поделиться этой страницей