Версия для печати темы (https://pro1c.org.ua/index.php?s=623870547d0b4b38d8c00bbd2202b6c3&showtopic=36227)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Печать доверенности

Автор: Constantus 28.03.17, 6:37

Приветствую, форумчане!
БИТ.АППЕТИТ.Управляющий рестораном (1.1.15.9)
1С:Первый БИТ (1С:Предприятие 8.3 (8.3.8.2054))

Потребовалось в документ "РеализациюТоваровИУслуг" добавить возможность печати "Доверенности" (в типовой такой печати нет)

На форме документа "РеализациюТоваровИУслуг" имеется кнопка "Печать" и при нажатии на нее выходит форма печати "Торг-12"

Каким образом мне можно добраться до данной формы, чтобы туда прописать еще одну форму печати "Доверенность"

Автор: Petre 28.03.17, 8:15

Constantus @ Сегодня, 6:37 * ,
Конфигурация не поддерживает механизм внешних печатных форм?

Автор: Constantus 28.03.17, 10:40

Petre @ Сегодня, 11:15 * ,

У меня не внешняя печатная форма. Простой макет, который я могу разместить в Общих Макетах...

Неужели нельзя добавить другой макет или распечатать его другим способом?

Автор: logist 28.03.17, 12:36

Посмотрите как реализована печать имеющейся формы, и сделайте по аналогии.

Автор: Constantus 28.03.17, 12:54

logist @ Сегодня, 15:36 * ,
В модуле Менеджера стоит код

Функция Печать(Ссылка, ИмяПечатнойФормы=Неопределено) Экспорт
    Если ИмяПечатнойФормы = Неопределено Тогда
        Возврат Новый Структура("ТОРГ12", "ТОРГ-12 (Товарная накладная) за покупателя");
    ИначеЕсли ИмяПечатнойФормы = "ТОРГ12" Тогда
        Возврат СформироватьТОРГ12(Ссылка);
    КонецЕсли;
    
КонецФункции


Открывает форму выбора печатных форм и только одну "Торг12"

В том же модуле работает СформироватьТОРГ12(Ссылка);

Никак не могу сообразить как добавить в список свое имя печати, например "Доверенность" и запустить код СформироватьДоверенность()

По отладчику не нашел источник перечня форм печати для данного документа... Как добавить свою печатную форму?

Автор: Petre 28.03.17, 13:14

Цитата(Constantus @ 28.03.17, 10:40) *
У меня не внешняя печатная форма. Простой макет, который я могу разместить в Общих Макетах...

Неужели вы думаете, что, просто добавив "макет", у вас заработает формирование печатной формы?
Если же у вас кроме "макета" есть код его заполнения, то почему не хотите сделать печатную форму по методике дополнительных обработок (если конфигурация на БСП) или внешних печатных форм?

Автор: Constantus 28.03.17, 13:24

Petre @ Сегодня, 16:14 * ,


Т.е., Вы хотите сказать, что мне необходимо сделать обработку, которая сформирует Доверенность.
Потом эту обработку сохранить как внешнюю, сохранив на диске...
Потом зайти в справочник "Дополнительные отчеты и обработки", далее её каким-то образом закрепить за документом "Поступления"?

Если так, то сохранится ли эта печать при миграции приложения?

Есть подробная инструкция как добавить свои печатные формы кроме тех, которые каким-то образом 1с прописали для себя?

Автор: Petre 28.03.17, 14:25

Цитата(Constantus @ 28.03.17, 13:24) *
Есть подробная инструкция как добавить свои печатные формы кроме тех, которые каким-то образом 1с прописали для себя?

Считаю, что информации в помощи из окна справочника "Дополнительные отчеты и обработки" вполне достаточно (во всяком случае, в типовых). Кроме того, можно сказать какой-нибудь пример, которых в этих интернетах тоже хватает.

Автор: logist 28.03.17, 15:01

Цитата(Constantus @ 28.03.17, 13:54) *
Никак не могу сообразить как добавить в список свое имя печати, например "Доверенность" и запустить код СформироватьДоверенность()

Где-то там же есть процедура похожая на "ПолучитьСтруктуруПечатныхФорм" или как-то так, вот в нее надо добавить свою "кнопку", а потом уже в "Печать" ее формирование.

Автор: Constantus 28.03.17, 15:13

logist @ Сегодня, 18:01 * ,

Такой функции нет... есть:

БИТ_ОбщегоНазначения.ПолучитьДеревоМакетовПечати


После ссылается на:

ВнутренниеПечатныеФормы = ПолучитьМенеджер(СсылкаОбъекта).Печать(СсылкаОбъекта);


С этого момента дерево сформировано...

Про какие кнопки идет речь?

// Если ИмяПечатнойФормы=Неопределено, то возвращается список встроенных в конфигурацию макетов для переданной ссылки
//иначе возвращается список встроенных в конфигурацию макетов для переданной ссылки
Функция Печать(Ссылка, ИмяПечатнойФормы=Неопределено) Экспорт
    Если ИмяПечатнойФормы = Неопределено Тогда
        Возврат Новый Структура("ТОРГ12", "ТОРГ-12 (Товарная накладная) за покупателя");
    ИначеЕсли ИмяПечатнойФормы = "ТОРГ12" Тогда
        Возврат СформироватьТОРГ12(Ссылка);
    КонецЕсли;
    
КонецФункции


Автор: Petre 28.03.17, 15:33

Constantus @ Сегодня, 15:13 * ,
Приведите текст функции "Печать()" любого другого документа, в котором список форм состоит из более чем одной.

Если собираетесь все-таки редактировать конфигурацию, то, думаю, вам надо следующее:

Функция Печать(Ссылка, ИмяПечатнойФормы = Неопределено) Экспорт
    Если ИмяПечатнойФормы = Неопределено Тогда
        Возврат Новый Структура("ТОРГ12, Доверенность", "ТОРГ-12 (Товарная накладная) за покупателя", "Доверенность");
    ИначеЕсли ИмяПечатнойФормы = "ТОРГ12" Тогда
        Возврат СформироватьТОРГ12(Ссылка);
    ИначеЕсли ИмяПечатнойФормы = "Доверенность" Тогда
        Возврат СформироватьДоверенность(Ссылка);
    КонецЕсли;
КонецФункции

Автор: Constantus 28.03.17, 15:54

Petre @ Сегодня, 18:33 * ,


Вот это наводка!!!
Попробовал изменить структуру:

Функция Печать(Ссылка, ИмяПечатнойФормы=Неопределено) Экспорт
    Если ИмяПечатнойФормы = Неопределено Тогда
        Возврат Новый Структура("ТОРГ12, ППП", "ТОРГ-12 (Товарная накладная) за покупателя", "рррр");
    ИначеЕсли ИмяПечатнойФормы = "ТОРГ12" Тогда
        Возврат СформироватьТОРГ12(Ссылка);
    ИначеЕсли ИмяПечатнойФормы = "ППП" Тогда
        Возврат СформироватьТОРГ12(Ссылка);
    
    КонецЕсли;
    
КонецФункции


Вроде "ППП" сработало и открыла "Торг12"

Будет работать, если сделать другую СформироватьТОРГ12+ХХХХХХХХХХХХХ(Ссылка)?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua