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

Сохранение печатной формы в файл XLS

Автор Gendelf, 12 ноя 2010, 09:12

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

Gendelf

Нужно при нажатии на кнопку сохранить печатную форму в файл XLS, добился того чтобы форма открылась из другого документа, а что дальше незнаю.... Буду благодарен любой помощи и советам  :mellow:

Tatitutu

ТП.Записать("ВашеНазваниеФайла",'XLS'');


Записать(<?>,);
Write(<?>,);
Синтаксис:
Записать(<ИмяФайла>,<ТипФайла>)
Назначение:
Записать таблицу в файл.
Параметры:
<ИмяФайла> - имя файла.
<ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла:
· отсутствует, 0 или ''MXL'' - формат 1C;
· 1 или ''XLS'' - формат Ms Excel;
· 2 или ''HTM'' или ''HTML'' - формат HTML;
· 3 или ''TXT'' - формат TXT.
Замечание:
Метод может использоваться при работе с таблицей в режиме ввода данных.

*  MAGAZKA - лучшая программа для розничного магазина (с) *

Gendelf

создаёт файл с печатным документом, но нужно каждый раз сформировать новое имя документа

Флаг=Флаг+1;
Таб.Записать("Документ"+Флаг,"XLS");


пытаюсь сделать "Документ1", "Документ2"... чтобы не затирал предыдущее сохранение. Помоги с реализацией  :nhsrm:

DenPlus

Цитата: Gendelf от 12 ноя 2010, 11:04
пытаюсь сделать "Документ1", "Документ2"... чтобы не затирал предыдущее сохранение. Помоги с реализацией  :nhsrm:
//Имена файлов: Документ+флаг
   ФС.УстТекКаталог("<строка с именем текущего каталога>");
   времИмяФайла = ИмяФайла;                       
   нн = 1;
   Пока нн = 1 Цикл
    Если ФС.СуществуетФайл(времИмяФайла) = 1 Тогда
      флаг = флаг+1
      времИмяФайла = Сред(времИмяФайла,1,8)+флаг;
    Иначе
      ИмяФайла = времИмяФайла;
      Прервать;
    КонецЕсли;
   КонецЦикла;   

Gendelf

Цитата: DenPlus от 12 ноя 2010, 12:20
Цитата: Gendelf от 12 ноя 2010, 11:04
пытаюсь сделать "Документ1", "Документ2"... чтобы не затирал предыдущее сохранение. Помоги с реализацией  :nhsrm:
//Имена файлов: Документ+флаг
   ФС.УстТекКаталог("<строка с именем текущего каталога>");
   времИмяФайла = ИмяФайла;                       
   нн = 1;
   Пока нн = 1 Цикл
    Если ФС.СуществуетФайл(времИмяФайла) = 1 Тогда
      флаг = флаг+1
      времИмяФайла = Сред(времИмяФайла,1,8)+флаг;
    Иначе
      ИмяФайла = времИмяФайла;
      Прервать;
    КонецЕсли;
   КонецЦикла;   


не понял ничего)

Gendelf

разобрался немного, но всё же
Сред(времИмяФайла,1,8) - для чего?

DenPlus

Вот вы писали "Документ"+Флаг, значи это вы понимаете.

//Так вот:
ИмяФайла = "Документ"+Флаг;
//Далее по тексту:
//Имена файлов: Документ+флаг
  ФС.УстТекКаталог("<строка с именем текущего каталога>");// установили каталог с которым будем работать
  времИмяФайла = ИмяФайла; //Передали текущее имя файла во временную переменную                      
  нн = 1;
  Пока нн = 1 Цикл // Цикл прервется после того как в рабочем каталоге не будет найдено очередного файла с именем "Документ"+флаг
   Если ФС.СуществуетФайл(времИмяФайла) = 1 Тогда
     флаг = флаг+1//пока проверяем, что файл с таким именем существует, "накручиваем" флаг
     времИмяФайла = Сред(времИмяФайла,1,8)+флаг;
   Иначе
     ИмяФайла = времИмяФайла;// новое имя файла получено - вылетаем из цикла
     Прервать;
   КонецЕсли;
  КонецЦикла;  

DenPlus

Цитата: Gendelf от 12 ноя 2010, 12:34
разобрался немного, но всё же
Сред(времИмяФайла,1,8) - для чего?
Тоже самое что и Лев(значение,8)
(в слове документ - 8 букв)

Gendelf

Мб что не так? но файл создаётся только один (перезаписывается) и в стартовом каталоге (вместо того чтобы создать файл в папке XLS)  :(

ИмяФайла="Документ"+Флаг;
ФС.УстТекКаталог("C:\Documents and Settings\Admin\Рабочий стол\Avtosalon_work\XLS");
времИмяФайла=ИмяФайла;
нн=1;
Пока нн=1 Цикл
Если ФС.СуществуетФайл(времИмяФайла)=1 Тогда
Флаг=Флаг+1;
времИмяФайла=Сред(времИмяФайла,1,8)+Флаг;
Иначе
ИмяФайла=времИмяФайла;
Прервать;
КонецЕсли;
КонецЦикла;                     

Таб.Записать(ИмяФайла+Флаг,"XLS");

DenPlus

[quote author=Gendelf link=topic=5432.msg16497#msg16497 date=1289558168]
Таб.Записать(ИмяФайла+Флаг,"XLS");

[/quote]
Должно быть так:
Таб.Записать(ФС.ТекКаталог()+ИмяФайла,"XLS");

Семерки нет под рукой. Посмотрите в отладчике что возвращает "ФС.ТекКаталог()+ИмяФайла". Допускаю, что м.б. еще "/" надо будет вставить.

Обратите внимание что по задумке записывается не "ИмяФайла+Флаг", а просто ИмяФайла. Оно уже с новой цифрой в конце.

Теги:

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

Рейтинг@Mail.ru

Поиск