8.х Авто имя при сохранении печатной формы

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем CMS, 24 окт 2012.

  1. TopicStarter Overlay
    CMS
    Offline

    CMS

    Регистрация:
    24 окт 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Собственно вопрос уже задавался http://www.1c-pro.ru/topic37781.html , но тут для имени сохраняемого файла используется имя формы - мне это не подходит. У меня около десятка макетов для одного документа, и мне хотелось бы использовать при сохранении файла именно имя макета(точнее строку из поля Синоним). Может кто подскажет как это дело реализовать?
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    В форме обработки, где нужно создать имя файла :
    Код:
    Синоним = ЭтотОбъект.Метаданные().Макеты.<ИмяМакета>.Синоним
    Можно обойти все макеты (если их несколько)
    Код:
    Для Каждого МакетОбработки Из ЭтотОбъект.Метаданные().Макеты Цикл
    // получим синоним
    Синоним = МакетОбработки.Синоним;
    ...
    КонецЦикла;
    
  3. TopicStarter Overlay
    CMS
    Offline

    CMS

    Регистрация:
    24 окт 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Используя
    Синоним = ЭтотОбъект.Метаданные().Макеты.<ИмяМакета>.Синоним
    Я так понимаю мне требуется указать имя макета? Если так то не вариант! Откуда мне знать который выбрал пользователь
  4. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    в процедуре
    Код:
    Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    при выборе какой макет использовать
    перед вызовом
    Код:
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);
    добавь
    Код:
    ТабДокумент.ИспользуемоеИмяФайла=ЭтотОбъект.Метаданные().Макеты[ИмяМакета].Синоним;
    а потом можно аналогично как по твоей ссылке
    Код:
    Процедура КоманднаяПанельФормыСохранитьВExcel(Кнопка)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.ПолноеИмяФайла = ЭтаФорма.ПечатныйДокумент.ИспользуемоеИмяФайла+" "+ЭтаФорма.Заголовок+[color=black]".xls";
    Диалог.Фильтр = [color=black]"(*.xls)|*.xls";
    Если Диалог.Выбрать() Тогда
    ЭлементыФормы.ПолеТабличногоДокумента.Записать(Диалог.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);
    КонецЕсли;
    
    КонецПроцедуры
    
  5. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    запутано как-то :)

    процедуры печати должны получиться такие

    Код:
    Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    Если ИмяМакета = "........"  Тогда
    ....
    ....
    КонецЕсли;
    
    ТабДокумент.ИспользуемоеИмяФайла=ЭтотОбъект.Метаданные().Макеты[ИмяМакета].Синоним;
    
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);
    КонецПроцедуры // Печать
  6. TopicStarter Overlay
    CMS
    Offline

    CMS

    Регистрация:
    24 окт 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Не сработало :( По прежнему вместо имени макета пишет имя формы, макет называется договор, а пишет заказ покупателя...Может быть это из за того что формы внешние, я просто не особо в 1С!
  7. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    тогда во внешней форме попробуй заполнить реквизит ТабличногоДокумента ИспользуемоеИмяФайла
    Код:
     ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("ЗаказНаряд");
    ТекДок= Ссылка;
    ТабДок.ИспользуемоеИмяФайла="Свое имя файла";
  8. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Смотрите "Сервис - Внешние отчеты обработки - печатные формы", там внешние печатные формы, их можно сохранить на диск, отредактировать как нужно, и заменить в базе на отредактированные (перед этим желательно сохранить оригиналы в безопасное место)

Поделиться этой страницей