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

Сохранять печатные формы сразу вместе с папками.

Автор Farid Gasimli, 29 сен 2017, 15:06

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

Farid Gasimli

Добрый день!
Хочу сохранять печатную форму сразу вместе с папками.
Т.е., допустим есть у меня печатная форма Счет№1.pdf я его сохраняю в папку Счета. Но прежде чем сохранить этот Счет№1 в папку счета. Я в папке Счета создаю еще одну дополнительную папку Счета№1, потом после того как я сохранил эту форму в папки Счета я в ручную перекидываю его в папку Счета№1. Таким образом я создаю по одной папке и сортирую эти печатные формы в эти папки. Это занимает у меня много времени. Как избавиться от этого.
Возможно ли такое, что бы печатная форма pdf сохранялась сразу с папками вместе. При сохранение образовалась папка где и содержится печатная форма pdf.
1С:Предприятие 8.3 (8.3.10.2561)

Спасибо!

AIFrame

Очень хочется спросить, зачем такое городить, но можно просто создать свою процедуру сохранения (выбора файла, если точнее).
Выбрал папку без подпапки = наименованию -> Создаем папку
ИмяФайла: E:\123.pdf
ПутьДоФайла: E:\
Создаем каталог: E:\Азаза
ИмяФайла\СоздатьКаталог: E:\Азаза\Азаза.pdf
ИмяФайла\ИТОГ: E:\Азаза\Азаза.pdf


Выбрал папку где есть подпапка = наименованию -> НЕ создаем папку
ИмяФайла: E:\Азаза\123.pdf
ПутьДоФайла: E:\Азаза\
ИмяФайла\ИТОГ: E:\Азаза\Азаза.pdf


Процедурка
Процедура КомандаСохранитьСПапкой()

Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

// Сюда можешь подставить свое. Я подставил "Азаза"
НаименованиеДокумента = "Азаза";
//НаименованиеДокумента = "Счет№" + Ссылка.Номер;

Текст = "ru = ""Текст""; en = ""Text""";
Фильтр = НСтр(Текст)+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
ПутьДоФайла = ДиалогОткрытияФайла.Каталог;
Сообщить("ИмяФайла: " + ИмяФайла);
Сообщить("ПутьДоФайла: " + ПутьДоФайла);
Иначе
Возврат;
КонецЕсли;
Если Найти(ИмяФайла, ("\" + НаименованиеДокумента + "\")) = 0 Тогда // Нет Папки. Надо создать
Сообщить("Создаем каталог: " + ПутьДоФайла + НаименованиеДокумента);
СоздатьКаталог(ПутьДоФайла + НаименованиеДокумента);
ИмяФайла = "" + ПутьДоФайла +  НаименованиеДокумента + "\" + НаименованиеДокумента + ".pdf";
Сообщить("ИмяФайла\СоздатьКаталог: " + ИмяФайла);
Иначе
ИмяФайла = "" + ПутьДоФайла +  НаименованиеДокумента + ".pdf";
КонецЕсли;
Сообщить("ИмяФайла\ИТОГ: " + ИмяФайла);

// Тут ты уже производишь запись ТЧ. С формы посмотри наименование ТЧ (например, ДокументРезультат), в которой твой счет нарисован
ЭлементыФормы.ДокументРезультат.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.PDF);
КонецПроцедуры


Farid Gasimli

Спасибо Вам.
Но мне ен совсем понятно где все это делать ?
Цитата: AIFrame от 29 сен 2017, 16:36Выбрал папку без подпапки = наименованию -> Создаем папку
Где выбрать?
Я в эти подпапки собираю и другую информацию о заказе.

Добавлено: 29 сен 2017, 20:10


AIFrame, Если Вам не сложно прошу помочь с решением данного вопроса.

AIFrame

Цитата: Farid Gasimli от 29 сен 2017, 19:42где все это делать ?
В конфигураторе.
Либо на форме кнопку с командой нарисовать, чтобы сохранять ПФ без вывода. Потребуется навык.
Либо создать внешнюю ПФ и в ней нарисовать эту кнопку. Также потребуется навык, но клепание внешних ПФ куда проще и предпочтительнее, чем внесение лишних изменений в конфигурацию.
ЦитироватьГде выбрать?
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
Если ДиалогОткрытияФайла.Выбрать() Тогда
        ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
        ПутьДоФайла = ДиалогОткрытияФайла.Каталог;
        Сообщить("ИмяФайла: " + ИмяФайла);
        Сообщить("ПутьДоФайла: " + ПутьДоФайла);
Иначе
        Сообщить("Файл не выбран!");
        Возврат;
КонецЕсли;

Этот кусок кода запустит процедуру выбора файла для сохранения. Типа "Сохранить как".

Если вы думали, что вашу задачу можно решить без написания кода, то у меня для вас плохие новости.
Если сами не сможете - позовите погромиста. В принципе, процедуру для сохранения я уже написал, ее вам только внедрить. Ну или сами разбирайтесь.

Farid Gasimli


Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск