8.х Вывод в Excel данных в заданном формате

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Garnet27, 10 ноя 2015.

  1. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Подскажите, пожалуйста, может быть, кто-то знает. Выгружаю большое количество данных в Excel. Для дальнейшей с ними работы необходимо, чтобы некоторые из ячеек были в текстовом формате. Но в этих ячейках стоят цифры. При открытии файла Excel на этих ячейках стоит зеленый треугольник и ошибка "Число в этой ячейке отформатировано как текст". Как избежать этой надписи? Отключить в настройках проверку, чтоб ее было просто не видно - не подходит. Можно ли убрать ее как-то по-другому? Выгрузиться без этой ошибки? Заранее большое спасибо.
    Даже вручную уже копирую в столбец рядом следующую конструкцию: ""&[номерячейки] - все супер, ошибка уходит. Но формулы в файле не должны быть, делаю - копировать - вставить значение - снова та же ошибка! Замкнутый круг...(((

    Таким образом:

    Для Индекс = 2 По ВсегоСтрок Цикл
    ЯчейкаЛС = Book.WorkSheets(1).Rows.Item(Индекс).Columns(2);
    ТекущееЗначение = ЯчейкаЛС.Text;
    ЯчейкаЛС.NumberFormat = "@";

    ...
    КонецЦикла
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    записывать в ячейку число с апострофом перед ним - тогда ексель будет его воспринимать как строку и не будет ругаться
    --- Объединение сообщений, 10 ноя 2015 ---
    а если сохраняете табличный документ в формате ексель, то сразу в макете задавайте тип ячейки текст
  3. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Апостроф в строке не нужен, увы... Нужно просто число. Или я чего-то не понимаю?
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    апостроф не будет отображаться

    файл ексель как заполняется?
  5. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    выгрузкой из 1с через хранилище значений
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Он в хранилище значений уже заполненный?
    Само заполнение как делается?
  7. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    ТЗ из запроса просто
  8. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    процедурку можете показать?
  9. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Результат = Запрос.Выполнить().Выгрузить();

    ФайлыВыгрузки = Новый Соответствие;

    Макет = ПолучитьМакет("Макет");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

    КодУчастка = Подразделение.КодУчастка;
    ИмяВременногоФайла = "RNG_61_" + КодУчастка + ".xlsx";
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Вывести(Шапка);

    Для каждого Элем Из Результат Цикл


    ОбластьСтрока.Параметры.Заполнить(Элем);


    ТабДок.Вывести(ОбластьСтрока);

    КонецЦикла;


    ТабДок.Записать(КаталогВременныхФайлов() + ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLSX);
    Попытка
    ПотокВыгрузкиДвоичныеДанные = Новый ДвоичныеДанные(КаталогВременныхФайлов() + ИмяВременногоФайла);
    ФайлыВыгрузки.Вставить(ИмяВременногоФайла, ПотокВыгрузкиДвоичныеДанные);
    УдалитьФайлы(ИмяВременногоФайла);
    Исключение
    Сообщить("Ошибка создания файла: " + ОписаниеОшибки());
    КонецПопытки;




    ПоместитьВоВременноеХранилище(ФайлыВыгрузки, АдресХранилища);
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    В этой строке сделайте ручной вывод параметров:
    ОбластьСтрока.Параметры.Заполнить(Элем);
    И там где у вас числа - добавляйте апостроф в начало
  11. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Ага! Вот спасибо. Я попробую.
    --- Объединение сообщений, 10 ноя 2015 ---
    А как апостроф? Допустим ЗначениеВТаблице = "`" + Значение. Так?
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Да, только к одному типу приведите.
  13. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    просто в макете можете выставить тип значения в ячейке в строку и все.
  14. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Стоит там строка... все одно с ошибкой. Сейчас буду пробовать с апострофом
  15. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Ну... поскольку тип значения у меня строка, делаю так:
    Для каждого Элем Из Результат Цикл


    ОбластьСтрока.Параметры.Заполнить(Элем);
    ОбластьСтрока.Параметры.ЛицевойСчет = "`" + Элем.ЛицевойСчет;
    ТабДок.Вывести(ОбластьСтрока);
    КонецЦикла;

    В результате получаем столбик в экселевском файле вида:
    `2342423
    `2354242
    `3449594
    итд
    а нужны просто цифры - строка и без ошибки зеленым треугольником... Я что-то не так делаю?
  16. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А это точно апостроф ?
  17. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Да)))) Теперь точно)))) но... даже с апострофом ошибка... хоть и не видно его, а зелененьким все одно подсвечивается: теперь уже с апострофом...
    --- Объединение сообщений, 10 ноя 2015 ---
    ошибка: "число в ячейке отформатировано как текст или перед ним стоит апостроф".... хитрая морда))))
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Сделайте вывод данных в файл с помощью Excel, там можно массивами выводить данные нужных примитивных типов.
  19. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    большие очень файлы, будет долго выгружать... я потом обрабатываю через Excel. Задаю формат ячейки принудительно текстовый - ругается. Как массивами? Покажете?
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Грядет проверка:D

Поделиться этой страницей