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

Выгрузка печатной формы из 1 С в Ексель

Автор Tgr11, 25 сен 2013, 09:56

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

Tgr11

Доброе утро, подскажите пожалуйста как быть в такой ситуации и как из нее лучше выйти.
Есть печатная форма документа, которую я выгружаю в Ексель, все отлично все выгружается как нужно мне, но есть одно большое НО, проблема в одной колонке ЕдиницаИзмерения, если у материала единица измерения 1 КОНСУЛЬТАЦИЯ , тогда программа при выгрузке делает мне ####, не определяет формат как общий и не переносит текст, если хотя бы в единице измерения 100 м2 окрашиваемой поверхности будет так и одна буква будет попадать на первую строку, то все ОКЕЙ, а если при переносе на первой строке цифра а на второй слово, то все при выгрузке одни ###, подскажите что делать мне в такой ситации?

Tgr11

расширять колонку я не могу, так как единица измерения может быть очень большой, чтобы влезало выражение

LordWizard

Делаем внешнюю печатную форму. А эту ячейку (единицы измерения) формируем со свойствами - "Переносить" и все будет норм.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Tgr11

Цитата: LordWizard от 25 сен 2013, 10:09
Делаем внешнюю печатную форму. А эту ячейку (единицы измерения) формируем со свойствами - "Переносить" и все будет норм.
Не подскажите функцию? если ли функция без задания конкретной ячейки? тогда имеет смысл сделать перенос для всего документа, чтобы не возникало таких ситуаций... вот мой код для большего понимания Структура = Новый Структура("ИмяПапки,ИмяФайла,ПолноеИмя");

Если ВыводитьДиалог Тогда
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Фильтр = "Excel(*.xls)|*.xls";
    Диалог.Расширение = "xls";
Диалог.Заголовок = "Сохраните файл...";
Диалог.ПолноеИмяФайла = ЭтаФорма.Заголовок+".xls";
Если Диалог.Выбрать() Тогда
ИмяПапки = Диалог.Каталог;
ИмяФайла = СтрЗаменить(Диалог.ПолноеИмяФайла,ИмяПапки,"");
Иначе
Возврат Структура;
КонецЕсли;
пФайл = Новый Файл(Диалог.ПолноеИмяФайла);
Иначе
пФайл = Новый Файл(ПолучитьИмяВременногоФайла("xls"));
ИмяПапки = пФайл.Путь;
ИмяФайла = пФайл.ИмяБезРасширения;
КонецЕсли;

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ТабДок.Записать(пФайл.ПолноеИмя, "xls");

Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = 0;
Книга = Excel.WorkBooks.Open(пФайл.ПолноеИмя);
//Установка ориентации
Если ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда
Excel.ActiveSheet.PageSetup.Orientation = 2;
Иначе
Excel.ActiveSheet.PageSetup.Orientation = 1;
КонецЕсли;

//Установка масштаба печати
Excel.ActiveSheet.PageSetup.Zoom = false;
Excel.ActiveSheet.PageSetup.FitToPagesWide = 1;
    Excel.ActiveSheet.PageSetup.FitToPagesTall = false;
Excel.ActiveSheet.PageSetup.LeftMargin   = Excel.CentimetersToPoints(1);
  Excel.ActiveSheet.PageSetup.RightMargin  = Excel.CentimetersToPoints(1);
  Excel.ActiveSheet.PageSetup.TopMargin    = Excel.CentimetersToPoints(0.9);
  Excel.ActiveSheet.PageSetup.BottomMargin = Excel.CentimetersToPoints(0.9);
//нижний колонтитул размер
    Excel.ActiveSheet.PageSetup.FooterMargin  = Excel.CentimetersToPoints(0.4);//0.1
Excel.ActiveSheet.PageSetup.HeaderMargin  = Excel.CentimetersToPoints(0.4);
//номер страницы  по середине центральный нижний колонтитул
Excel.ActiveSheet.PageSetup.CenterFooter = "стр. &P ";
Книга.Save();
Книга.Close();
Excel.Quit();

Структура.ИмяПапки = "";
Структура.ИмяФайла = "";
Размер = 0;
ТекДата60 = ТекущаяДата() + 60;
Пока ТекущаяДата() < ТекДата60  Цикл
Если пФайл.Существует() Тогда
Размер = пФайл.Размер();
КонецЕсли;
Если Не Размер = 0 Тогда
Структура.ИмяПапки = ИмяПапки;
Структура.ИмяФайла = ИмяФайла;
Прервать;
КонецЕсли;
КонецЦикла;

Возврат Структура;

Dethmontt

В ячейке "единицы измерения" твоего "ЭлементыФормы.ПолеТабличногоДокумента" ПКМ - свойства ячейки - Переносить
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tgr11

Цитата: Dethmontt от 25 сен 2013, 10:25
В ячейке "единицы измерения" твоего "ЭлементыФормы.ПолеТабличногоДокумента" ПКМ - свойства ячейки - Переносить
Сделано, я обьяснила как раз ситуацию связанную с переносом слов.
Если на первой строке будет, Цифра и Буква , то все выгружается так как надо, но если перенос был первая строка цифра а вторая буква, то в выгрузке одни ####

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tgr11


Dethmontt

Вопрос? А файл - сохранить как. Имеет точно такое же поведение?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tgr11

Цитата: Dethmontt от 25 сен 2013, 10:43
Вопрос? А файл - сохранить как. Имеет точно такое же поведение?
да
Добавлено: 25 сен 2013, 10:48


В самом макете все переносится и в форме все переносится и все выглядит красиво, как открываешь ексель зачастую ###, как с этим бороться не пойму((причем только такая ситуация при сохранении в ексель, в doc,htm и так далее все нормально

Теги:

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

Рейтинг@Mail.ru

Поиск