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

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

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

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

Gendelf

Да нужно "/", только куда его вписать? и файл всё же перезаписывается... а не создаётся каждый раз (созадёт XLSДокумент.xls)

DenPlus

Цитата: Gendelf от 12 ноя 2010, 14:28
Да нужно "/", только куда его вписать? и файл всё же перезаписывается... а не создаётся каждый раз (созадёт XLSДокумент.xls)


Пока нн=1 Цикл
  Если ФС.СуществуетФайл(ФС.ТекКаталог()+"/"+времИмяФайла)=1 Тогда
     Флаг=Флаг+1;
     времИмяФайла=Сред(времИмяФайла,1,8)+Флаг;
  Иначе
     ИмяФайла=времИмяФайла;
     Прервать;
КонецЕсли;   
КонецЦикла;
Таб.Записать(ФС.ТекКаталог()+"/"+ИмяФайла+Флаг,"XLS");

DenPlus

Сорри. Только пишим не "/", а "\" конечно.

Tatitutu

ФС.УстТекКаталог("C:\Documents and Settings\Admin\Рабочий стол\Avtosalon_work\XLS\");

код
ФС.УстТекКаталог("C:\");
Сообщить(ФС.ТекКаталог());

вернет C:\

плюс, объяви переменную флаг
флаг=1;
ИмяФайла = "Документ"+Строка(Флаг); // Документ1

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

DenPlus

Цитата: Tatitutu от 12 ноя 2010, 16:53
ФС.УстТекКаталог("C:\Documents and Settings\Admin\Рабочий стол\Avtosalon_work\XLS\");
Кстати, да. Тогда отпадет необходимость вставлять "\" в выделенных красных строчках в предыдущем посте.

Tatitutu

и флаг=1;
а то у тебя всегда будет Документ.хls

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

Gendelf

Толи я дурак, толи лыжи не едут (с) Скорее первое  :o
Файл перезаписывается с именем XLSДокумент1
И сохраняет его в стартовый каталог, а не в указанный мной...
флаг=1 // объявлен ранее


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

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

DenPlus

Добрался я наконец до Платформы 77. Буквально 5 минут и ваша проблема будет решена. Сейчас гляну в отладчике.

DenPlus

Цитата: Gendelf от 12 ноя 2010, 20:11
Толи я дурак, толи лыжи не едут (с)   

Ясно. Скорее и то и другое. В общем неблагоданое это дело - писать код 1С в "Блокноте", без отладчика.

По теме.
Понял в чем ошибки. Чтобы было проще понять создайте внешнюю обработку и повесте на кнопку Сформировать:

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

Таб.Записать(ИмяФайла,"XLS");
КонецПроцедуры

Думаю это вам поможет

DenPlus

При каждом нажатии на кнопку Сформировать в каталоге C:\XLS у вас будут создаваться новые файлы:
Документ1, Документ2, Документ3 и т.д.

Теги:

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

Рейтинг@Mail.ru

Поиск