Не определен список получаемых файлов внешняя печатная форма
Изменение встроенных в типовые конфигурации печатных форм — это, вероятно, одна из наиболее распространенных доработок типовых конфигураций. Чтобы каждый раз не изменять саму конфигурацию, компания «1С» создала механизм внешних печатных форм.
Внешняя печатная форма — это обычная внешняя обработка, соответствующая определенным требованиям. Такую обработку можно подключить к какой-либо типовой конфигурации и тем самым добавить новую печатную форму и/или заменить существующую.
Кроме этого, нужно отметить, что создание внешних печатных форм различается для обычного приложения (Бухгалтерия 2.0.*, ЗиУП 2.5.*, УТ 10.3.*) и управляемого приложения (Бухгалтерия 3.0.*, ЗиУП 3.*, УТ 11.*). В статье будут рассмотрены оба варианта.
Также нужно сказать, что вопросы отладки внешних печатных форм и для управляемого и для обычного приложения рассматриваются в отдельной статье.
Внешняя печатная форма в управляемом приложении
Начнем с того, что в настоящее время встречается чаще — с управляемого приложения. В тексте ниже будет приведен пример создания и подключения внешней печатной формы для документа «Приходный кассовый ордер» (Бухгалтерия предприятия, редакция 3.0).
Похожие публикации
-
Рассмотрим как подключить внешнюю форму отчета в ЗУП 3, если.Напоминаем, что срок сдачи П-4 за январь 2021 г. до..В ЗУП 3.1.14.525 / 3.1.18.46 реализована новая печатная форма СЗВ-М.
(2 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Спасибо. Все понятно и доступно!
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Спасибо.
Много полезной информации в доступной форме с ссылкой на законодательство, что очень ценно.
Создание
Как уже было сказано выше, внешняя печатная форма — это просто-напросто внешняя обработка соответствующая некоторым требованиям. Первым требованием является реализация в модуле печатной формы экспортной функции СведенияОВнешнейОбработке().
Итак, создаем новую внешнюю обработку и в модуле объекта этой обработки размещаем примерно такой код:
Код в основном прокомментирован, но некоторые моменты нужно обговорить отдельно. Функция СведенияОВнешнейОбработке() является общей для всех внешних объектов. Вид внешнего объекта указывается в параметре «Вид» (у нас указана «ПечатнаяФорма»).
Большинство параметров не являются обязательными для заполнения. В нашем случае обязательно указать параметры «Вид», «Версия» и «Команды» — это обязательные параметры для всех видов внешних объектов («Команды» необязательны для отчетов). Кроме этого будет полезно указать параметры «Назначение». Но вообще, желательно указывать как можно больше информации — это поможет не запутаться как Вашим клиентам так и Вам самим.
Параметр «БезопасныйРежим» со значением «Истина» накладывает следующие ограничения:
- игнорируется привилегированный режим;
- запрещена работа с COM;
- запрещена загрузка внешних компонент;
- запрещен запуск внешних приложений и команд ОС;
- запрещен доступ к файловой системе (кроме временных файлов);
- запрещен доступ к интернету.
Параметру «БезопасныйРежим» рекомендуется присваивать значение «Истина». Если необходима какая-либо функциональность, запрещаемая безопасным режимом, то можно получить дополнительное разрешения на эту функциональность (как в примере выше).
Кроме функции СведенияОВнешнейОбработке() необходимо реализовать еще одну экспортную функцию — Печать(). Эта функция должна иметь следующие параметры:
Создана внешняя печатная форма (внешняя обработка подсоединена как печатная форма).
Платформа 8.3.15.1778
Бухгалтерия 3.0.75.37
В документе нажимаю печать. Получаю документ как таблицу - печатную форму.
Далее хочу сохранить в папку.
При нажатии на картинку Сохранить стандартный функционал спрашивает в каком формате и запрашивает папку.
Выбираю формат и папку. Жму Сохранить.
В выбранной папке ничего не сохраняется.
Ошибка при этом не выдается.
Если эту обработку вызвать не как печатную форму, а открыть как внешнюю обработку, то все ок.
В чем может быть проблема?
Что сейчас вижу:
Сравниваю две печати, ту, что стандартная и она сохраняет в папке данные.
И написанную, которая не сохраняет.
Разница в том, что у первой стоит в настройках печати признак Печатать=Истина.
У написанной Печатать = Ложь.
Выбирает она этот признак из сохраненных настроек. У стандартной они есть, у написанной их нет и она их создает каждый раз заново.
В настройках написанной стоит количество=0. В стандартной количество =1.
Сейчас, как я понимаю, задача состоит в том, чтобы влезь как-то в эти настройки печати, которые в общих модулях присваиваются, но при этом не исправлять общие модули.
Может можно как-то в настройках печатной формы определить настройки печати?
(4)Посмотрите описание функции "ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке()", в ней есть параметр "БезопасныйРежим"
(5)
Посмотрю описание функции, но я не поняла, при чем здесь безопасный режим.
У меня стоит в параметрах печатной формы
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
Итак, нашла следующую проблему, из-за чего скорее всего не сохраняется документ.
В Коллекцию печатных форм теперь в модуле объекта нужно добавлять офисные документы. Я вот так добавила:
КоллекцияПечатныхФорм.Колонки.Добавить("ОфисныеДокументы", Новый ОписаниеТипов("Строка"));
В общем модуле "ПечатьДокументов" есть строка:
НоваяНастройкаПечатнойФормы.ОфисныеДокументы = ?(ПустаяСтрока(ОписаниеПечатнойФормы.ОфисныеДокументы), "", ОбщегоНазначения.ЗначениеВСтрокуXML(ОписаниеПечатнойФормы.ОфисныеДокументы));
Как я понимаю, в коллекции ОфисныеДокументы должно быть заполнено из функции
ОбщийМодуль.РаботаСФайламиСлужебный
Процедура ЗаполнитьСписокТипамиФайлов(Список) Экспорт
Список.Добавить("Изображения", НСтр("ru = 'Изображения (JPG, JPEG, PNG . )'"));
Список.Добавить("ОфисныеДокументы", НСтр("ru = 'Офисные документы (DOC, DOCX, XLS . )'"));
КонецПроцедуры
Но они не заполняются.
Может их как-то заполнить прямо в модуле объекта печатной формы?
Зарплата и управление персоналом, редакция 3.0 (3.0.22.225)
Делаю внешнюю печатную форму для документа "Изменение графика работы списком". Только вот при подключении печатки она не видит документ, и после, когда пытаюсь руками выбрать документ, то он не отображается в списке.
Может кто сталкивался с данным вопросом. Что нужно сделать, чтобы печатная форма подключилась именно к этому документу?
С остальными все в порядке (по крайней мере с кадровыми приказами, отпусками).
(2) ну возможность выбора все таки есть. Я это писала к тому, что ни программно зарегистрировать печатную форму на конкретный документ, ни выбрать сам документ нельзя, т.к. его просто напросто нет в самом списке доступных документов.
И в процедуре все нормально, т.к. на другие документы она прекрасно регистрируется.
Мне интересно, может кто сталкивался с таким, когда нужно подключить печатку к документу, которого изначально нет в списке доступных. Может на что-то в самом документе внимание обратить?
(0) Посмотри общую команду ДополнительныеПечатныеФормыОбъекта и добавь в тип параметра команды свой документ
(11) Что рассказать? Что, если в типе параметра команды не будет нужного документа, то внешнюю печатную форму они ему не добавят?
+13, если это так - это конечно мощно сделали, спасибо разработчикам!
а если все таки не так, то девушка потеряла шанс научиться правильно делать.
(13) Если у тебя докумепнт не умеет пользоваться внешними обработками, то ты в обработке хоть подпись Путина, хоть визитку Яроша оставляй.
+16 и почему типовой документ может не уметь ими пользоваться, если в конфе сидит механизм подключения этих обработок?
(18) если это намек пожаловаться - то мне пофиг.
мы пока эту хрень еще не внедряем, я для себя хочу выяснить что и как.
Интересная беседа из-за одного вопроса.
Галочку в команде поставила, все заработало. Вопрос возник из-за того, что реально такая ситуация в первый раз случилась. Теперь буду знать.
По поводу регистрации самой печатной формы. Как уже писала ранее, печатная форма прекрасно регистрируется как без указания документа, так и с указанием. Дело было не в ней. Уж что, что, а внешние формы я научилась делать так как надо, особенно под управляемые :)
Дело было как раз в том, что сама программа не давала выбрать нужный документ для регистрации печатки на него. Но проблема решалась парой кликов :)
Еще раз, благодарю за помощь. Клиенты довольны :)
Полный путь к макету должен быть в формате "Документ.ИмяДокумента.ИмяМакетаПФ". Было просто "ИмяМакетаПФ". Раньше, похоже, система этого не секла, сейчас выдает ошибку.
Fedor1970; Светлый ум; sorry_z; user647083_kev_78_78; ammorf; ea_len; Hoppius; VAAngelov; Swetlana; + 9 – Ответить
(1) Можно написать что угодно и достаточно одной точки, например, "Фигня.ТрудовойДоговор" прекрасно работает. А все изза того что производится поиск в РегистрСведений.ПользовательскиеМакетыПечати, в котором измерениями являются : Объект = Фигня, ИмяМакета = ТрудовойДоговор. После того как программа не нашла аналогов вашей Фигне в этом регистре, она открывает ваш макет ТрудовойДоговор.
позвать того , кто обновлял
если в вашем внешнем макете ( печатной форме) таблица называлась Общая
но после обновления разрботчики ее назвали Общие
как думаете ? - подхватит печатную форму ?
(2) По делу есть что то? Обновления типовые, никто ничего не менял. Путь к макету берется из ВПФ. Видимо изменились требования к нему.
Полный путь к макету должен быть в формате "Документ.ИмяДокумента.ИмяМакетаПФ". Было просто "ИмяМакетаПФ". Раньше, похоже, система этого не секла, сейчас выдает ошибку.
Fedor1970; Светлый ум; sorry_z; user647083_kev_78_78; ammorf; ea_len; Hoppius; VAAngelov; Swetlana; + 9 – Ответить
В передаваемых параметрах (шестой) к процедуре ВывестиТабличныйДокументВКоллекцию нужен полный путь до печатной формы.
(6) не совсем понял, внешняя печатная форма расположена в этойже самой внешней обработки, что нужно сдлать чтобы система не ругалась. В приведенном выше примере сылается на нахождение формы в документе.
Так же вопрос, если одна печатная форма (новая, расположена в самой обработке) используется на два документа? то данную функцию нельзя универсально использовать? нужно вместо одной обработки сделать две?
(8)
Полный путь указывается именно к документу, для которого создается внешняя печатная форма.
А если ВПФ создается для нескольких типов документов, то достаточно в полном пути прописать один из них. Все равно будет работать, я проверял.
Я поступил следующим образом.
Добавил в расширение УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию с функцией Перед
Теперь печатные формы переделывать не потребуется.
Добавьте в расширение процедуру общего модуля УправлениеПечатьюМультиязычность &Вместо("ЯзыкиМакета").
//и будет вам счастье:) не надо будет трогать ни одну форму
Твоим способом заработает, НО ПРИ ЭТОМ СТАНДАРТНЫЕ ПФ перестанут работать.
НУЖНО ПРОСТО В ОБРАБОТКУ ПРОПИСАТЬ полный муть на макет, например :
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорПодрядаСБК") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"ДоговорПодрядаСБК", "ДоговорПодрядаСБК",
ПечатьДоговора(МассивОбъектов, ОбъектыПечати),,
" Документ.ДоговорРаботыУслуги.ПФ_MXL_ДыговорПодряда ");
В большинстве случаев это значит, что неправильно определяется параметр СсылкаНаОбъект в модуле объекта внешней печатной формы. Разберем ситуацию на конкретном примере.
В Организации была доработана печать Счета-фактуры выданного . Для этого программист написал внешнюю обработку СчетФактура_1.07.2017 и подключил ее в 1С: раздел Администрирование — Настройки программы — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки .
При формировании новой печатной формы PDF появляется ошибка Печатная форма недоступна.
Пошаговая инструкция исправления ошибки.
Шаг 1. Открыть Конфигуратор 1С.
Запустите базу в режиме Конфигуратор . PDF По кнопке Файл — Открыть откройте внешнюю обработку.
Шаг 2. Перейти в модуль объекта обработки.
По кнопке Действия — Открыть модуль объекта перейдите в программный код.
Шаг 3. Поиск ошибки.
Найдите и исправьте ссылки типа СсылкаНаОбъект в параметрах функций и процедур на МассивОбъектов .
Шаг 4. Исправление ошибки.
Замените в модуле объекта внешней обработки параметр СсылкаНаОбъект на МассивОбъектов .
Сохраните измененную внешнюю обработку по кнопке Файл — Сохранить .
Шаг 5. Обновление внешней обработки в программе.
Войдите в раздел Администрирование — Настройки программы — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки . По кнопке Обновить из файла загрузите обновленную печатную форму.
Сформируйте новую печатную форму из документа Счет-фактура выданный .
Ошибка Печатная форма недоступна в 1С 8.3 больше появляться не будет.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Содержание
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Читайте также: