Имя: Пароль:
1C
1С v8
Таблица в таблицу
0 Прохожий
 
26.06.12
10:17
Как проще всего превратить ТЗ в Таблицу?
Сделали
ТЗ = Запрос.Выполнить().Выгрузить();
и теперь нужно превратить в таблицу и показать на экране, а потом передать в:
...
Поцедура ЗаписатьMXLВФормате2007(пТабДок, пИмяФайла, пФорматФайла = 46, ТекстСообщения, Адрес) Экспорт
   
   Если НЕ ЗначениеЗаполнено(пИмяФайла) Тогда Возврат КонецЕсли;
   ОбъектФайл = Новый Файл(пИмяФайла);
   Расширение = СоответствиеРасширений.Получить(пФорматФайла);
   ИмяНовогоФайла = ОбъектФайл.Путь + ОбъектФайл.ИмяБезРасширения + Расширение;
   ИмяВременногоФайла = КаталогВременныхФайлов() + пИмяФайла + ".xls";//КаталогВременныхФайлов() + Лев(Строка(Новый УникальныйИдентификатор), 8) + ".xls";
   пТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS);
   Excel = Новый COMОбъект("Excel.Application");
   Книга = Excel.WorkBooks.Open(ИмяВременногоФайла);
   Лист = Книга.WorkSheets(1);
   Лист.PageSetup.Zoom = Ложь;
   Лист.PageSetup.Orientation  = 1;
   Лист.PageSetup.FitToPagesWide = 1;
   Лист.PageSetup.FitToPagesTall = 100;
   Лист.PageSetup.LeftMargin   = Excel.CentimetersToPoints(0);
   Лист.PageSetup.TopMargin    = Excel.CentimetersToPoints(1);
   Лист.PageSetup.RightMargin  = Excel.CentimetersToPoints(0);
   Лист.PageSetup.BottomMargin = Excel.CentimetersToPoints(1);
   Excel.DisplayAlerts = Ложь;//чтобы EXCEL не спрашивал о перезаписи файла
   Книга.SaveAs(ИмяВременногоФайла);
   Excel.DisplayAlerts = Истина;
   Excel.Visible = Ложь;
   Excel.DisplayAlerts = Ложь;//чтобы EXCEL не спрашивал о перезаписи файла
   Excel.DisplayAlerts = Истина;
   Excel.Quit();
   Excel = Неопределено;
   
КонецПроцедуры // ЗаписатьВФормате2007()
...
Нужно универсальное "красивое" решение одной строчкой независимо от состава колонок ТЗ. Чтобы на Шаблоны не заморачиваться.
1 Ненавижу 1С
 
гуру
26.06.12
10:19
(0) цикл по строкам и по колонкам
не одной строчкой, но универсально
2 quest
 
26.06.12
10:19
Скажи, а разве тебе самому неинтересно решить задачу? Не просить код на форуме а самому напрячь мозг и победить свою лень и ограниченность?
Код получиться у тебя фиговый. Ты удалишь его и напишешь новый. Но это будет твой код, а не подачка с форума
3 Прохожий
 
26.06.12
10:19
(1) Нужен метод платформы. Циклом и я могу...
4 Прохожий
 
26.06.12
10:20
(2) Иди
5 ДенисЧ
 
26.06.12
10:20
(3) А платформенная кнопка "Сделать всё, сразу и правильно" тебе не нужна?
6 Maxus43
 
26.06.12
10:20
Построитель?
7 Alex S D
 
26.06.12
10:21
(2) а сам зачем завел 320 тем?
8 Прохожий
 
26.06.12
10:21
(6) Подробнее...
9 Maxus43
 
26.06.12
10:21
ПостроительОтчета.ИсточникДанных = Новый ИсточникДанных(ТЗ);
ПостроительОтчета.Вывести();
10 Прохожий
 
26.06.12
10:21
(7) Это он грешил. Теперь каится...
11 ДенисЧ
 
26.06.12
10:22
(9) тебя просили одной строчкой, а ты двумя...
12 Maxus43
 
26.06.12
10:22
(11) чорт(
13 Прохожий
 
26.06.12
10:22
(11) Там будет больше двух...
14 Рэйв
 
26.06.12
10:23
ТЗ.ВыбратьСтроку()
:-)
15 Прохожий
 
26.06.12
10:25
(14) И передать в ЗаписатьMXLВФормате2007(пТабДок, пИмяФайла, пФорматФайла = 46, ТекстСообщения, Адрес)
16 Maxus43
 
26.06.12
10:25
(13) что таки надо? 3 будет. ну 4. зато пофиг на колонки, универсальнее НЕКУДА
17 Maxus43
 
26.06.12
10:27
ну или так http://button.dekel.ru/
другого пути нет
18 Ненавижу 1С
 
гуру
26.06.12
10:28
(3) метод платформы? кхм...
а почему в Excel? а нет метода для выгрузки таблицы в рисунок рабочего стола?
19 andrewks
 
26.06.12
10:33
вот одной строчкой:

РаботаСТаблицами.ПревратитьТЗВтаблицу(ТабДок,ТЗ);
20 Прохожий
 
26.06.12
10:43
(16) Строк будет 4, ты победил
...
ТЗ = Запрос.Выполнить().Выгрузить();
ПостроительОтчета = Новый ПостроительОтчета;
Построитель0тчета = Новый ОписаниеИсточникаДанных(ТЗ);
ПостроительОтчета.ИсточникДанных = Построитель0тчета;
ПостроительОтчета.Вывести(пТабДок);
ЗаписатьMXLВФормате2007(пТабДок, "ааа");
...
21 Прохожий
 
26.06.12
10:44
Всем спасибо, работает, значит, восьмерка и без циклов...
22 ДенисЧ
 
26.06.12
10:44
ПостроительОтчета = Новый ПостроительОтчета;
Построитель0тчета = Новый ОписаниеИсточникаДанных(ТЗ);
ПостроительОтчета.ИсточникДанных = Построитель0тчета;

клёво...
23 Прохожий
 
26.06.12
10:52
(22) Я тоже рад..
24 quest
 
27.06.12
00:39
(0) протрезвев понял что обидел тебя. Просто не тот набор слов подобрал. Ты прости. Лично против тебя ничего не имею.
25 Прохожий
 
27.06.12
06:56
(24)Не пей за рулем.