Вывод в Эксель посредством ТабличныйДокумент и ПостроительОтчетов

1. vpivo 19.11.18 17:55 Сейчас в теме
Добрый вечер. Какой-то ступор...
Нагуглил пример
    ТабДок = Новый ТабличныйДокумент;
    Построитель = Новый ПостроительОтчета();
*** Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаОтчета);
    Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок );
    ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX);

При выполнении пишет ошибку на строке *** "Несоответствие типов (Параметр № '1')".
ТаблицаОтчета не пустая, в этой процедуре (код выше и не скопировал) заполняется...
Сама строка точно также пишется в https://its.1c.ru/db/metod8dev#content:2240:hdoc


Подскажите, что не так делаю?
Найденные решения
4. neuro88 19.11.18 21:29 Сейчас в теме
(3) что нам говорит СП?
Синтаксис:

Новый ОписаниеИсточникаДанных(<ИсточникДанных>)
Параметры:

<ИсточникДанных> (обязательный)

Тип: ТаблицаЗначений; РезультатЗапроса; ОбластьЯчеекТабличногоДокумента.


А какой тип Вы туда помещаете? можете в отладчике посмотреть:
ДанныеФормыКоллекция


Самое простое решение - выгрузить в ТЗ:
ТЗ = ТаблицаОтчета.Выгрузить();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 19.11.18 18:01 Сейчас в теме
код создания ТаблицаОтчета можно ?
3. vpivo 19.11.18 19:17 Сейчас в теме
Это Реквизит основной формы внешней обработки. Колонки - строки с ограничением длины и числа. Представленный код в процедуре &НаСервере.
4. neuro88 19.11.18 21:29 Сейчас в теме
(3) что нам говорит СП?
Синтаксис:

Новый ОписаниеИсточникаДанных(<ИсточникДанных>)
Параметры:

<ИсточникДанных> (обязательный)

Тип: ТаблицаЗначений; РезультатЗапроса; ОбластьЯчеекТабличногоДокумента.


А какой тип Вы туда помещаете? можете в отладчике посмотреть:
ДанныеФормыКоллекция


Самое простое решение - выгрузить в ТЗ:
ТЗ = ТаблицаОтчета.Выгрузить();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
5. vpivo 19.11.18 23:29 Сейчас в теме
(4) Я всегда знал, что танцы с бубном и "не верь глазам своим" - другого определения 1С-программированию нет. Жаль картинки не приклеить. Ваш подход сработал. Но ... *** .... пииииии. Я же вижу в конфигураторе, что ТаблицаОтчета - ТАБЛИЦАЗНАЧЕНИЙ, я сам ее делал. А вот отладчик показывает ДАННЫЕФОРМЫКОЛЛЕКЦИЯ! А вот после ТЗ = ТаблицаОтчета.Выгрузить(); сама ТЗ показывается как ТАБЛИЦАЗНАЧЕНИЙ и все работает!!!
Наверное, я многого в 1С-е не понимаю. Трудновато с сертификатом по сиквелу 2005 с 1с-ом справляться.
Спасибо!
6. vpivo 20.11.18 00:01 Сейчас в теме
Все получилось, в файл выгружается,но... Эксель его открывает с предупреждением, что формат файла не соответствует его расширению. Но все-таки открывает и работать можно.
7. Dnki 4 20.11.18 01:07 Сейчас в теме
(6) "не соответствует его расширению"

Так какое расширение у файла? Чему = "ИмяФайла"? Может "xls" вместо "xlsX"?
8. vpivo 20.11.18 09:17 Сейчас в теме
(7) Сформированный файл имеет расширение (добавляется автоматически, я указываю в диалоге только имя) - xlsx. но... Винды не распознают его как файл Эксель - в файловых менеджерах иконка, как у неизвестного типа. На "два щелчка" не открывается, что естественно. В Экселе открывается с предупреждением (выше уже его цитировал) и, в принципе, работает. Но вид таблиц кривой до безобразия. В задаче отчеты не нужны как таковые - так что и так сойдет. Но для себя в следующий раз буду делать через OLE.
9. Dnki 4 20.11.18 09:28 Сейчас в теме
(8)
буду делать через OLE

Не глупи! Это тяжело и лишне. Десятки людей подтвердят, что сотни раз сохраняли свои отчеты в Экселе и они нормально читались.
Я бы советовал:
- сделать на другом компе. Нет иконки - значит настройка ОС сбилась.
- а еще есть вариант. Вместо:
ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX);
Сделать:
ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS97);
и файлу задать имя "XLS"

В конце-концов - глянуть файл редактором. по первым буквам будет видно: это точно Эксель?
Может это одиэсовский MXL, только назван как XLS. Такие Эксель тоже может читать.
10. vpivo 22.11.18 11:35 Сейчас в теме
(9)Спасибо, попробовал. Без проблем сформировался, распознался виндами, открылся экселем, но потребовал приведения в "божеский" вид (длина колонок, высота строк, шрифты и пр.).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот