Имя: Пароль:
1C
1С v8
Внешний отчет не работает как надо
0 pneumo
 
20.03.12
16:28
1С:Бухгалтерия 8.2 Создаю внешний отчет для выгрузки документов Списание с расчетного счета в текстовый файл для дальнейшей загрузки в 1С. Код следующий:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Путь = "C:\spis.csv";
Текст = Новый ЗаписьТекста(Путь, КодировкаТекста.UTF8);
Выборка = Документы.СписаниеСРасчетногоСчета.Выбрать(Дата(2012, 1, 1));
Пока Выборка.Следующий() Цикл
ПеременнаяДляВывода = Формат(Выборка.Дата,"ДФ=dd.MM.yyyy") + ";" + Строка(Выборка.Номер) + ";" + Строка(Выборка.Контрагент) + ";" + Строка(Выборка.СтатьяДвиженияДенежныхСредств) + ";" + Формат(Выборка.СуммаДокумента, "ЧГ=0; ЧРД=,") + ";";
Сообщить(Строка(Выборка.СтатьяДвиженияДенежныхСредств.Наименование));
Текст.ЗаписатьСтроку(ПеременнаяДляВывода);
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры

Все работает, все пишет, все нормально, единственная проблема пустое место вместо Статьи движения денежных средств, хотя в документах они заполнены. Подскажите как поправить код, чтобы работал. я новичок, не судите строго.
1 Kashemir
 
20.03.12
16:29
Сообщить(Строка(Выборка.СтатьяДвиженияДенежныхСредств.Наименование));
Строка(Выборка.СтатьяДвиженияДенежныхСредств)
2 mikecool
 
20.03.12
16:30
там данные в табличной части, емнип
3 zak555
 
20.03.12
16:30
это банку данные нужны ?
4 КМ155
 
20.03.12
16:30
(0) замени этот ужас на крыльях ночи на запрос
5 pneumo
 
20.03.12
16:35
Да нет не в табличной части.
Нет не для банка.
6 sanja26
 
20.03.12
16:39
расшифровка...
7 zak555
 
20.03.12
16:44
хочу нужен этот текстовый файл ?
8 pneumo
 
20.03.12
16:46
Передача данных для составления БДДС (бюджет движения денежных средств).
9 zak555
 
20.03.12
16:47
аа
ну тогда ты им лучше xml отправляй
10 pneumo
 
20.03.12
16:49
Нет им нужен не xml
11 pneumo
 
20.03.12
16:51
KM155: Не приведешь пример как это сделать с помощью запроса.
12 Umka2008
 
20.03.12
17:43
Да нет не в табличной части.
Нет не для банка.
13 Umka2008
 
20.03.12
17:43
+12 - есть табличная часть, хоть ты ее и не видишь, делай как 2 говорит
14 pneumo
 
20.03.12
20:45
13 Как именно сделать?
15 zzerro
 
20.03.12
22:10
(14) А статья движения денежных средств действительно указывается в табличной части РасшифровкаПлатежа.

Делай запросом, примерно так, сильно не пинайте 1эски рядом нет:

// Выберем запросом данные из списания с расчетного счета
// точнее из табличной части расшифровка платежа
// и сгруппируем по всем полям, мало ли было 2 или более строки в документе

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

Выборка = Запрос.Выполнить().Выбрать();

// ну а дальше почти как у тебя

Путь = "C:\spis.csv";
Текст = Новый ЗаписьТекста(Путь, КодировкаТекста.UTF8);
Пока Выборка.Следующий() Цикл

 ПеременнаяДляВывода = Формат(Выборка.Дата,"ДФ=dd.MM.yyyy") + ";" + Строка(Выборка.Номер) + ";" +
 Выборка.Контрагент + ";" + Выборка.СтатьяДвиженияДенежныхСредств + ";" +
 Формат(Выборка.СуммаДокумента, "ЧГ=0; ЧРД=,") + ";";

 Сообщить(Выборка.СтатьяДвиженияДенежныхСредств);

 Текст.ЗаписатьСтроку(ПеременнаяДляВывода);
КонецЦикла;
Текст.Закрыть();
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn