Имя: Пароль:
1C
1С v8
Выгрузка для сайта в CSV формате.
,
0 sapravka
 
11.03.14
20:31
Здравствуйте.
Если что не так - прошу сильно не ругать.
Делаю обработку в УТ 10.3 для выгрузки на сайт.
Запросом выбрал необходимые параметры (которые отбираются по параметрам формы):
В каждой строке столбцы: Наименование, артикул, склад и т.д.

http://волгалаб.рф/1c/105.jpg

В процедуре написал:

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

    Разделитель = ";";
    
    
    Текст = Новый ЗаписьТекста;
        
    Для каждого строки из ТаблицаЗначений Цикл
        ЗаписьТекста = строки.Артикул + Разделитель + строки.Количество + Разделитель +    строки.Цена;
    КонецЦикла;
    
        
    ПолноеИмяФайла=Путь+ ".csv";
    Текст = Новый ЗаписьТекста;
    Текст.Открыть(ПолноеИмяФайла,КодировкаТекста.ANSI);
    Текст.ЗаписатьСтроку(Текст);
    Текст.Закрыть();
    Сообщить ("Записан файл "+ПолноеИмяФайла);
    
    
КонецПроцедуры

Но в файл выгружается только ЗаписьТекста, а необходимы дынные не выгружаются.

Убедительно прошу, подскажите!
1 shuhard
 
11.03.14
20:34
(0)[Убедительно прошу]
не убедил
попробуй ещё раз
2 KarpovDeniska
 
11.03.14
20:35
Текст.ЗаписатьСтроку(ЗаписьТекста );
3 KarpovDeniska
 
11.03.14
20:38
в цикл вставь
4 sapravka
 
11.03.14
20:39
(2) написал так:

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

    Разделитель = ";";
    
    
    Текст = Новый ЗаписьТекста;
        
    Для каждого строки из ТаблицаЗначений Цикл
        ЗаписьТекста = строки.Артикул + Разделитель + строки.Количество + Разделитель +    строки.Цена;
    КонецЦикла;
    
        
    ПолноеИмяФайла=Путь+ ".csv";
    Текст = Новый ЗаписьТекста;
    Текст.Открыть(ПолноеИмяФайла,КодировкаТекста.ANSI);
    Текст.ЗаписатьСтроку(ЗаписьТекста );
    Текст.Закрыть();
    Сообщить ("Записан файл "+ПолноеИмяФайла);
    
    
КонецПроцедуры

Но теперь почему то заполнило (выгрузило) только одну строку, а другие не выгрузило
5 echo77
 
11.03.14
20:40
Заменить:
Текст = Новый ЗаписьТекста;

На:
Текст = Новый ТекстовыйДокумент;
6 ДенисЧ
 
11.03.14
20:40
Текст.ЗаписатьСтроку(Текст);

Мда... Это пять...
7 echo77
 
11.03.14
20:40
(3) В цикле сделай, йопта :-)
8 KarpovDeniska
 
11.03.14
20:42
ПолноеИмяФайла=Путь+ ".csv";
    Текст = Новый ЗаписьТекста(ПолноеИмяФайла,КодировкаТекста.ANSI);
        
    Для каждого строки из ТаблицаЗначений Цикл
        ЗаписьТекста = строки.Артикул + Разделитель + строки.Количество + Разделитель +    строки.Цена;
Текст.ЗаписатьСтроку(ЗаписьТекста );
    КонецЦикла;
    
        
    
  
    Текст.Закрыть();
    Сообщить ("Записан файл "+ПолноеИмяФайла);
9 sapravka
 
11.03.14
20:48
8) Спасибо, заработало!!!
А разрешите еще один вопрос:
Хотелось бы что бы последний открытый путь и название файла сохранялось при новом открытии, а не приходилось бы  каждый раз выбирать путь и указывать имя файла!!!

Для других параметров я написал:

Процедура ПриОткрытии()
    НаДату = ТекущаяДата();
    Склад = Справочники.Склады.НайтиПоКоду("000000001");
    ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000003");
КонецПроцедуры

А что для пути и имени файла необходимо прописать?
10 Михаил Козлов
 
11.03.14
20:53
(9) Для формы обработки установите флаг "Сохранять значения" и "Восстанавливать при открытии" и укажите, какие значения сохранять.
11 Aleksey
 
11.03.14
20:53
Глобальный контекст.СохранитьЗначение (Global context.SaveValue)
Глобальный контекст (Global context)
СохранитьЗначение (SaveValue)
Синтаксис:

СохранитьЗначение(<Имя>, <Значение>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Имя, с которым сохраняется значение, используется для идентификации сохраняемых значений.
<Значение> (обязательный)

Тип: Произвольный.
Сохраняемое значение.
Описание:

Сохраняет значение для использования не только в текущем, но и в последующих сеансах работы с программой. Значение хранится индивидуально для каждой пары информационная база - пользователь. Например, можно сохранять значения по умолчанию, используемые данным пользователем.

Доступность:

Толстый клиент.
Пример:

СохранитьЗначение("СрокИсполненияЗаказа", СрокИсполнения);
СохранитьЗначение("СкладПоУмолчанию", МестоХранения);
12 sapravka
 
11.03.14
23:16
Когда жестко прописал - то открывает указанный путь:

Процедура ПриОткрытии()
    
    Путь = "C:\333\12345.csv";    

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

А вот когда  для формы обработки установил флаг "Сохранять значения" и "Восстанавливать при открытии" а так же указал какие значения сохранять:
http://волгалаб.рф/1c/106.jpg
Почему то эти значения не сохраняются.

А насчет СохранитьЗначение:

Написал так:

Процедура ПриОткрытии()
    
    СохранитьЗначение("Путь ", Путь);

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

Тоже не сохраняет ...

Подскажите пожалуйста, как установить значение, что бы путь и имя файла сохранялся, а не надо его было жестко прописывать в обработке?
13 Злопчинский
 
11.03.14
23:31
да блин.. можность платформы растет, в вопросы - не меняются...
Закон Брукера: Даже маленькая практика стоит большой теории.