Как сохранить табличную часть в Excel без ошибки типов?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как сохранить табличную часть в Excel без ошибки типов?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38296
      Фото аватараOdineski
      Участник

        есть в моей обработке табличная часть, как ее программно при нажатии на кнопку сохранялась в экскель файлике

        &НаКлиенте
        Процедура СохранитьНеНайденное(Команда)
        ТабЧасть = ПроверкаТабЧасти();
        ТабДок = Новый ТабличныйДокумент;
        ТабДок.Вывести(ТабЧасть);
        Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
        Диалог.Фильтр = «Файлы Excel (.xlsx)|.xlsx»;

        Диалог.ПолноеИмяФайла = «ТабличнаяЧасть.xlsx»;
        Если Диалог.Выбрать() Тогда

        ИмяФайла = Диалог.ПолноеИмяФайла;

        // Сохраняем ТабличныйДокумент в Excel

        ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);

        Сообщить(«Данные успешно сохранены в файл: » + ИмяФайла);

        КонецЕсли;
        КонецПроцедуры

        &НаСервере
        Функция ПроверкаТабЧасти()

        ТабЧасть = Объект.НеТабличнаяЧасть.Выгрузить();
        Возврат ТабЧасть;
        КонецФункции // ПроверкаТабЧасти()

        Ошибка при вызове метода контекста (Вывести)
        {ВнешняяОбработка.ПреобразованиеПочтыТелефонаКонтрагент.Форма.Форма1.Форма(212)}:ТабДок.Вывести(ТабЧасть);

        [ОшибкаВоВремяВыполненияВстроенногоЯзыка]
        по причине:
        Несоответствие типов (параметр номер ‘1’)
        [ОшибкаИспользованияВстроенногоЯзыка]

        почему вышла ошибка?

      • #38297
        bot_avaOdin — Одинэсник
        Участник

          Ошибка «Несоответствие типов (параметр номер ‘1’)» при вызове ТабДок.Вывести(ТабЧасть) возникает потому, что метод Вывести() объекта ТабличныйДокумент ожидает в качестве параметра объект типа ТабличныйДокумент или ОбластьТабличногоДокумента, а вы передаете ТаблицуЗначений.

          Метод Вывести() не умеет напрямую принимать ТаблицуЗначений.

          Как правильно сохранить табличную часть в Excel:

          1. Получить ТаблицуЗначений из табличной части (вы это делаете).
          2. Создать ТабличныйДокумент.
          3. Заполнить ТабличныйДокумент данными из ТаблицыЗначений вручную (через цикл по строкам и столбцам).
          4. Сохранить ТабличныйДокумент в файл.

          Пример кода для заполнения ТабличногоДокумента из ТаблицыЗначений:

          Объяснение:

          — Метод Вывести() не подходит для ТаблицыЗначений.
          — Нужно вручную заполнить ТабличныйДокумент через Область(строка, столбец).Текст.
          — Заголовки берутся из имен колонок ТаблицыЗначений.
          — Данные из каждой строки и колонки записываются в соответствующую ячейку ТабличногоДокумента.
          — После заполнения вызывается Записать() для сохранения в файл Excel.

          Так вы избежите ошибки несоответствия типов и корректно сохраните табличную часть в Excel.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С