Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 02:02

сохранение в excel

Автор mila1231, 13 июл 2015, 12:10

0 Пользователей и 1 гость просматривают эту тему.

mila1231

Ребят опять вернулась к тебе сохранения данных в xls, может я не правильно что то делаю, но есть внешний отчёт нужно после формирования нажать на кнопку и сохранить в ексель, так вот всё это нужно для того, чтоб в екселе были нужные мне форматы, т.к при сохранении в этот ексель моего отчёт выдаётся формат общий а мне например нужен строковый. Т.е по сути нужно как-то обратиться к строкам моего табличного документа, но как не соображу, может кто что подскажет.

mixqn

предположу, что придется при помощи VBA бежать по ячейкам уже файла эксель, а не таб. документа 1С и настраивать нужный формат.

mila1231

Цитата: mixqn от 13 июл 2015, 12:31
предположу, что придется при помощи VBA бежать по ячейкам уже файла эксель, а не таб. документа 1С и настраивать нужный формат.
да предположение правильное.... только для меня как пальцем в небо.
возможно кто-то поможет.... на удачу скорее сообщение
нашла приблизительный пример... но не могу разобраться .. у меня внешнийотчёт.. соответственно реквизит ОтчетОбъект.... тут обращение идёт к документсписок.... в общем по сути не могу понять к чему мне образщаться, чтоб выбирать данные... сам отчёт это табличное поле...


Построитель = Новый ПостроительОтчета;
         Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
         выборка = Построитель.Результат.Выбрать();
          СтрокаЛиста = 2;
          Пока выборка.Следующий() Цикл
               Колонка = 1;
               Для каждого стр из ДокументСписок.Колонки цикл
                   Попытка
                    // Установить значение в строке и колонке
                    Если ТипЗнч(выборка[стр.Имя])=Тип("Число") Тогда
                       // Установить формат для типа Число
                       Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00";
                       Лист.Cells(СтрокаЛиста, Колонка).Value =
                         Формат(выборка[стр.Имя],"ЧГ=0");
                    иначе
                        // Для всех других типов установим формат "Текстовый"
                         Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@";
                         Лист.Cells(СтрокаЛиста, Колонка).Value =
                        Строка(выборка[стр.Имя]);
                    КонецЕсли;
                  Исключение
                    // в случае ошибки вывести номер строки и колонки
                    Сообщить("Ошибка установки значения для: " +
                      выборка[стр.Имя]);
                    Сообщить("Стр: " +СтрокаЛиста+ " Кол: " +
                      Колонка+ " Рек: " + стр.Имя);
                  КонецПопытки;
                  Колонка = Колонка + 1;
             КонецЦикла;
             СтрокаЛиста = СтрокаЛиста + 1;
               Состояние("Экспорт из 1С в Excel " + СтрокаЛиста);
          КонецЦикла;
         

mixqn

не вполне понятен вопрос, если честно...
в приведенном фрагменте обращение к ДокументСписок идет как к источнику данных.
вам просто нужно обращаться к своему источнику данных и все - что у вас? запрос? построитель? СКД?

KrivosheevEV

А объясните, пожалуйста, зачем вам нужен именно текстовый формат ячеек в выгруженном в Эксель, отчёте.

Luzer1C

Может всё же устанавливать формат ячеек программно?
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат;
Здесь формат - это число от 0 до 10.
Перечень команд экселя можно посмотреть тут:
http://www.1c-h.ru/?p=238
Халамбалам.

mixqn

Цитата: Luzer1C от 14 июл 2015, 11:48Может всё же устанавливать формат ячеек программно?
не понятно, к чему это?...
тут как бы об этом и идет речь

mila1231

Цитата: mixqn от 14 июл 2015, 10:33
не вполне понятен вопрос, если честно...
в приведенном фрагменте обращение к ДокументСписок идет как к источнику данных.
вам просто нужно обращаться к своему источнику данных и все - что у вас? запрос? построитель? СКД?

Напишу полностью.. изначально внешний отчёт, на форме отчёта два поля ввода, где пользователь выбирает период, дальше  добавлен табличный документ, данные в нем выбираются с помощью запроса из документа. По сути я должна обращаться к табличному документу.. или нет??

KrivosheevEV

Цитата: mila1231 от 14 июл 2015, 12:31
Напишу полностью.. изначально внешний отчёт, на форме отчёта два поля ввода, где пользователь выбирает период, дальше  добавлен табличный документ, данные в нем выбираются с помощью запроса из документа. По сути я должна обращаться к табличному документу.. или нет??

Опишите задачу целиком, полностью.

mila1231

Цитата: KrivosheevEV от 14 июл 2015, 12:35
Цитата: mila1231 от 14 июл 2015, 12:31
Напишу полностью.. изначально внешний отчёт, на форме отчёта два поля ввода, где пользователь выбирает период, дальше  добавлен табличный документ, данные в нем выбираются с помощью запроса из документа. По сути я должна обращаться к табличному документу.. или нет??

Опишите задачу целиком, полностью.

Надеюсь понятно счас сформулирую)),задача целиком такая, сформированный отчёт сохранить в формате xls, при этом изменить формат некоторых ячеек, т.е на данный момент, если просто сохранить отчёт в екселе например через Ctrl + S, те ячейки которые должны быть текстовыми они имеют тип Общие или например сохранённая дата , ячейка не дата, она также общая... вот.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск