Коллеги, здравствуйте. Столкнлись с тем, что не получается создать внешнюю печатную форму. Как это проще всего сделать? Вообще когда они нужны или можно без них обойтись? Заранее всем спасибо.
07.03.2024 12:44:26
Мы когда-то так создавали печатную форму «Счет» для документа «Реализация (акты, накладные»). Тогда мы создавали экспортную функцию СведенияОВнешнейОбработке() в модуле объекта. Вторым шагом у нас было создание экспортной процедуры Печать (), с помощью которой подсистема будет инициировать запуск печати из общих модулей подсистемы. Процедура содержит 4 параметра: МассивОбъектов — ссылки на объекты, которые планируются для печати (массив); КоллекцияПечатныхФорм — уже сформированные документы (таблица значений); ОбъектыПечати — список значений, в котором значение — это ссылка на объект, а представление — имя области, в которой был введен объект; ПараметрыВывода — произвольные параметры для печати. В ней формируется нужное количество табличных документов и готовится к печати. В нашем примере мы создадим функцию «СформироватьПечатнуюФорму()», которая будет возвращать табличный документ. Для примера мы предполагаем, что у нас всегда 1 печатная форма, поэтому передаём в функцию первый элемент массива (МассивОбъектов[0]). Ну вот после этого остается сделать непосредственно саму печатную форму в виде табличного документа, которую будет возвращать нужная функция. |
|||
|
|
07.03.2024 20:29:27
Да, только вот надо не забыть после этого всего настроить переменные, куда будут вставлены данные. Для этого на ячейке, где уже есть надпись, нажимаем правой кнопкой мыши и открываем свойства. Найдите пункт «Заполнение» и выберите там значение «Параметр», после чего убедитесь, что надпись в ячейке теперь заключена в угловые скобки. Если вы выберите «Шаблон», то это даст вам возможность указать переменные внутри строки в ячейке с помощью квадратных скобок. А после этого остается только добавить другие области и разместить там параметры. Чтобы вывести данные в печатную форму, в первую очередь нужно добавить функцию «СведенияОВнешнейОбработке()». Именно она подсказывает платформе, что в файле печатная форма и ее нужно крепить к конкретному документу. Текст функции практически не меняется, кроме названия печатных форм и документа, к которому ее крепят. Если забыть поменять в этой функции идентификатор, то 1С не сможет сформировать печатную форму. |
|||
|
|
08.03.2024 19:17:55
Для инициализации печати нужно добавить процедуру, внутри которой находится вызов процедуры из общего модуля, добавляющей эту печатную форму в общий список. В качестве команды выступает процедура «СформироватьПечатнуюФорму» с параметром, в котором находится ссылка на документ, который и нужно распечатать. Затем вы должны получить данные, которые будут выводиться в заранее установленные параметры. С помощью выполнения запроса получается две выборки – для верхней части печатной формы и для вывода строк. Создаем новый табличный док для показа пользователю и устанавливаем стандартные параметры. Поочередно получаем каждую область, заполняем в ней переменные и выводим в табличный документ, который возвращаем пользователю. После завершения сохраните внешнюю обработку и запустите 1С в режиме предприятия. Чтобы подключить созданную печатную форму, зайдите в раздел «Администрирование» - «Печатные формы, отчеты и обработки» - «Дополнительные отчеты и обработки». Нажмите кнопку «Создать» и в диалоге выберите сохраненный файл формата *.EPF. Если все было сделано правильно, останется лишь сохранить, и 1С самостоятельно разместит новую печатную форму. |
|||||
|
|
||||