1с печатная форма ворд не открывается
Довольно часто пользователи 1С просят разработать печатную формы в формате файлов MS Word. Это обусловлено широкими возможностями форматирования этого типа документа либо удобством его дальнейшего использования и хранения. В этой статье я хочу описать надежный и простой алгоритм создания внешних печатных форм, который я использую для решения поставленных задач. Дополнительным преимуществом этого алгоритма является то, что не требуется вносить изменения в основную конфигурацию. Т.е. используется для конфигураций, находящихся на поддержке без возможности изменения.
Весь принцип реализации строиться на использовании расширения. Причем, добавлять в расширение объекты основной конфигурации практически не нужно. Это очень удобно для дальнейших обновлений конфигураций с расширениями. Возникает вопрос: «А при чем здесь внешняя печатная форма, ведь это расширение?». Дело в том, что расширение легко устанавливается в программу в пользовательском режиме. А если еще ее объекты обособленны от объектов основной конфигурации, то, я думаю, можно называть ее внешней.
Пожалуй, единственным ограничением является наличие в конфигурации Библиотеки стандартных подсистем (далее – БСП). Данный метод «активно» использует механизмы этой библиотеки, поэтому БСП должно быть интегрировано в конфигурацию информационной базы (далее – ИБ). Но здесь особо беспокоиться не нужно, т.к. БСП сейчас присутствует практически во всех типовых конфигурациях.
Перед тем как продемонстрировать пример разработки, предлагаю ознакомиться с чек-листом и представить общую последовательность действий.
1. Чек-лист разработки для создания внешней печатной формы
1.Создать расширение в конфигурации ИБ
2.В расширении добавить новую обработку (далее Обработка)
3.Обработку включить в подсистему ПодключаемыеОтчетыИОбработки
4.Создать шаблон (документ в формате MS Word) с необходимым содержанием и установить параметры
5.В обработку добавить макет и загрузить в него файл шаблона, созданного в пункте 4
6.В обработку добавить форму и в модуле формы создать функцию:
· ВыполнитьКомандуПечати – экспортная, пользовательская
7.В модуле менеджера обработки создать 3 процедуры и 4 функции:
· ПриОпределенииНастроек - экспортная, предопределенная БСП
· ДобавитьКомандыПечати - экспортная, предопределенная БСП
· Печать - экспортная, предопределенная БСП
· ПолучитьДанныеПечати - экспортная, предопределенная БСП
2. Пример разработки в 1С 8.3 Зарплата и управление персоналом
Давайте рассмотрим этот процесс на примере создания печатной формы дополнительного соглашения к трудовому договору в формате файла MS Word. В качестве информационной базы я буду использовать конфигурацию 1C 8.3 Зарплата и управление персоналом версии 3.1.14.183, установленную на платформе 1С:Предприятие 8.3 (8.3.17.1496). В данной конфигурации используется БСП версии 3.1.2.469.
1.Создаем расширение в конфигурации ИБ.
Запускаем 1С:Предприятие в режиме конфигуратора. Открываем список расширений с помощью команды «Расширения конфигурации» пункта меню «Конфигурация» и добавляем новое расширение. После добавления расширения в список, необходимо будет снять флажок «Безопасный режим» как это показано на Рис.1. Если безопасный режим оставить включенным, то при печати нашей формы программа будет «ругаться».
Рис. 1 Расширение конфигурации в 1С 8.3 Зарплата и управление персоналом
2.Добавляем в расширение новую обработку.
Делаем двойной клик по строке списка с нашим расширением и открываем конфигурацию расширения. В дереве конфигурации находим «Обработки» … выделяем … правая клавиша мышки … Добавить. Я назвал обработку «Расш1_ПечатьWord».
3. Включаем обработку в подсистему ПодключаемыеОтчетыИОбработки.
Для этого необходимо добавить в расширение подсистему ПодключаемыеОтчетыИОбработки из основной конфигурации. Переходим в окно основной конфигурации, находим подсистему ПодключаемыеОтчетыИОбработки в дереве, выделяем и через контекстное меню жмем команду «Добавить в расширение» (см. Рис.2)
Рис. 2 Добавление в расширение в 1С 8.3 Зарплата и управление персоналом
Возвращаемся в окно конфигурации расширения, находим добавленную нами подсистему и уже здесь в ее состав добавляем нашу обработку.
4.Создаем шаблон-документ Word с необходимым содержанием и параметрами.
На этом этапе берем шаблон доп. соглашения – документ в формате MS Word c расширением .docx, устанавливаем разделители областей вывода, а в местах, где необходимо подставить значения из базы 1С устанавливаем маркеры параметров.
Разделитель области предназначен для того, чтобы «именовать» части документа-шаблона для дальнейшего вывода средствами встроенного языка 1С. Разделители представляют собой пару - открывающий тэг > в самом начале области документа и закрывающий тэг в самом конце области документа.
В этом примере я не буду рассматривать ситуацию с выводом нескольких областей. В большинстве случаев это и не требуется. Например, для вывода не сложной формы дополнительного соглашения к трудовому договору достаточно весь документ поместить в одну область. Так ее и назовем «ВесьДокумент».
Маркеры параметров выполняют такую же роль, как и параметры стандартных печатных макетов, и имеют следующий формат >
Рис. 3 Документ в формате MS Word
5. Добавляем в обработку макет и загружаем в него файл шаблона.
Добавляем в обработку макет. Тип макета – двоичные данные. Название должно начинаться с префикса ПФ_DOC_ Для этого примера я назвал его «ПФ_DOC_ДопСоглашение».
Далее кликаем по макету печатной формы и открывается форма с кнопкой «Загрузить из файла». Загружаем наш шаблон .docx, созданный ранее(пункт 4).
6. В обработку добавляем форму.
Теперь в нашей обработке «Расш1_ПечатьWord» создаем форму. Форма должна быть основной, поэтому при создании формы важно, чтобы флажок «Назначить форму основной» был установлен.
В модуль формы копируем функцию с Рис.4
Рис. 4 Функция модуля формы в 1С 8.3 Зарплата и управление персоналом
7. В модуле менеджера обработки создадим необходимые процедуры и функции.
На данном этапе все просто. Копируем в модуль менеджера обработки тексты процедур и функций, представленные на листингах ниже. Необходимо лишь заменить отдельные участки (я их подчеркнул красными линиями) в соответствии с конкретной задачей.
Данная процедура является предопределенной БСП, поэтому название нужно сохранить. Изменить можно размещение (подчеркнуто красным). В моем примере команда печати должна располагаться в справочнике сотрудники.
Рис. 5 Команда печати в 1С 8.3 Зарплата и управление персоналом
Данная процедура является предопределенной БСП поэтому название нужно сохранить. Здесь мы описывает команду, которая будет запускать печать нашей формы. Свойство МенеджерПечати определяет нахождение модуля менеджера где располагается процедура Печать. Свойство Обработчик определяет нахождение и название клиентского обработчика команды. В нашем случае он располагается на форме обработки.
Рис. 6 Добавление команды печати в 1С 8.3 Зарплата и управление персоналом
Данная процедура является предопределенной БСП поэтому название нужно сохранить. В переменную ИдентификаторКоманды и ИмяМенеджераПечати устанавливаем имя идентификатора и менеджера печати из процедуры ДобавитьКомандуПечати (пункт 7.2).
Рис. 7 Процедура печати в 1С 8.3 Зарплата и управление персоналом
Данная функция является предопределенной БСП поэтому название нужно сохранить. Аналогично предыдущему шагу, устанавливаем в переменную ИдентификаторКоманды имя идентификатора из процедуры ДобавитьКомандуПечати.
В параметр функции УправлениеПечатью.МакетПечатнойФормы устанавливаем полный путь к макету печатной формы, созданному в пункте 5 нашей статьи.
Рис. 8 Получение данных печати в 1С 8.3 Зарплата и управление персоналом
В этой функции необходимо создать структуру с данными, которыми будет заполняться печатная форма. Ключ структуры – имя параметра шаблона Word >, а значение – значение из базы 1С. Параметр функции СсылкаНаОбъект – ссылка на объект печати. В нашем случае это ссылка на сотрудника.
Рис. 9 Получение данных объекта в 1С 8.3 Зарплата и управление персоналом
Здесь описываем области и устанавливаем типы.
Возможные типы областей:
· Общая – используется однократно.
· СтрокаТаблицы – используется для вывода множества строк;
· Список – используется для вывода множества строк;
Рис. 10 Области макета в 1С 8.3 Зарплата и управление персоналом
Эта функция отвечает за вывод и заполнение областей. В блоке, отмеченном красной линией, нужно описать последовательный вывод областей. Здесь меняем/устанавливаем только название области. В нашем случае «ВесьДокумент»
Рис. 11 Функция напечатать документ в 1С 8.3 Зарплата и управление персоналом
На этом все. Запускаем печать и получаем ожидаемый результат.
Рис. 12 Печать макета документа Word
В заключении хотелось бы добавить, что с помощью одной такой обработки можно реализовать множество различных команд печати документа.
В интернете можно найти множество авторских методик создания внешней печатной формы в формате документа MS Word, однако, методы на основе БСП являются наиболее надежными.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
В большинстве случаев это значит, что неправильно определяется параметр СсылкаНаОбъект в модуле объекта внешней печатной формы. Разберем ситуацию на конкретном примере.
В Организации была доработана печать Счета-фактуры выданного . Для этого программист написал внешнюю обработку СчетФактура_1.07.2017 и подключил ее в 1С: раздел Администрирование — Настройки программы — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки .
При формировании новой печатной формы PDF появляется ошибка Печатная форма недоступна.
Пошаговая инструкция исправления ошибки.
Шаг 1. Открыть Конфигуратор 1С.
Запустите базу в режиме Конфигуратор . PDF По кнопке Файл — Открыть откройте внешнюю обработку.
Шаг 2. Перейти в модуль объекта обработки.
По кнопке Действия — Открыть модуль объекта перейдите в программный код.
Шаг 3. Поиск ошибки.
Найдите и исправьте ссылки типа СсылкаНаОбъект в параметрах функций и процедур на МассивОбъектов .
Шаг 4. Исправление ошибки.
Замените в модуле объекта внешней обработки параметр СсылкаНаОбъект на МассивОбъектов .
Сохраните измененную внешнюю обработку по кнопке Файл — Сохранить .
Шаг 5. Обновление внешней обработки в программе.
Войдите в раздел Администрирование — Настройки программы — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки . По кнопке Обновить из файла загрузите обновленную печатную форму.
Сформируйте новую печатную форму из документа Счет-фактура выданный .
Ошибка Печатная форма недоступна в 1С 8.3 больше появляться не будет.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
Рассмотрим как подключить внешнюю форму отчета в ЗУП 3, если.Напоминаем, что срок сдачи П-4 за январь 2021 г. до..В ЗУП 3.1.14.525 / 3.1.18.46 реализована новая печатная форма СЗВ-М.
(2 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Спасибо. Все понятно и доступно!
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Очень много информации, много непонятно. Очень хорошо, что вебинар именно сейчас. Есть время все обдумать и просчитать. Большое спасибо Марине Аркадьевне.
Содержание
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
В каждой организации могут применяться свои шаблоны кадровых приказов и трудового договора.
Если организации не подходит типовая печатная форма 1С:ЗУП 3, то:
- если требуется изменить состав выводимых данных, то необходимо будет прибегнуть к помощи программиста, чтобы он создал внешнюю печатную форму;
- если требуется изменить только оформление (например, добавить логотип организации или использовать свой шрифт, цвет), тогда можно внести изменения непосредственно в типовой макет в пользовательском режиме.
Пример настройки макета печатной формы приказа о приеме на работу
- дата ознакомления с приказом не выводилась;
- реквизиты трудового договора выводились курсивом.
Для этого необходимо:
- Вывести на печать Приказ о приеме Т-1 из документа Прием на работу ;
- Вверху справа нажать кнопку Еще – Изменить макет ;
- Открывается форма для редактирования печатной формы Приказа о приеме :
- Для того, чтобы изменить шрифт реквизитов трудового договора на курсив, необходимо:
- выделить строку с реквизитами трудового договора;
- на верхней панели нажать кнопку изменения шрифта на курсив:
- Чтобы удалить вывод даты ознакомления с приказом, следует выделить ячейку с выводимой датой и очистить ее. Выделим ячейки, где был вывод даты ознакомления и нажмем кнопку с выводом нижней границы:
В итоге макет приказа будет выглядеть следующим образом:
При выводе Приказа о приеме Т-1 на печать он будет выглядеть следующим образом:
Как вернуть типовой макет печатной формы после настройки
Если после исправления макета потребуется вернуться к типовому варианту, то для этого необходимо выполнить следующие шаги.
Если требуется вообще удалить сделанные изменения, то необходимо нажать кнопку с красным крестиком:
Добавление логотипа в макет печатной формы
Для добавления своего логотипа в макет печатной формы необходимо:
- В макете печатной формы встать на ячейку, в которой будет размещаться логотип.
- Нажать Главное меню – Таблица – Рисунки – Картинка :
- В открывшейся форме Выбор картинки следует нажать кнопку Выбрать из файла и указать путь к картинке на компьютере:
- Чтобы убрать границу вокруг картинки, необходимо ее выделить, нажать правой клавишей мыши и выбрать пункт Свойства . В форме свойств найдите пункт Стиль линии и измените значение на Нет линии :
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Разберемся в причинах возникновения этой ошибки. В большинстве случаев она не связана напрямую с 1С и возникает при переустановке сетевого принтера. Для старых версий 1С 7.7 при первой печати из 1С программа записывала информацию о принтере, на который производилась печать в особый каталог реестра:
- Компьютер\HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Defaults PDF
Поэтому, после замены принтера на новый или переустановке его на другой компьютер, 1С все равно пыталась печатать на старый.
Для новых версий 1С информация о принтере, что использует 1С, берется из каталога реестра:
Правильное «лечение» этой ситуации — правка реестра Windows, где хранятся настройки принтера: прописанный в реестре старый принтер нужно заменить на новый.
Но это может сделать только «подкованный» пользователь. Поэтому прежде чем перейти к корректировке реестра, мы предлагаем выполнить более простую операцию. Выбрать в 1С переустановленный принтер перед запуском печати: кнопка Главное меню — Файл — Печать .
Иногда простого открытия формы печати достаточно, чтобы данные о принтере обновились и дальше печать выполнялась нормально.
Явный выбор принтера можно использовать только в случае, если при просмотре списка доступных принтеров данный принтер показывается. В противном случае придется вернуться к исправлению реестра.
Исправление реестра Windows
В реестре Windows хранится информация о параметрах системы, программ и устройств, которые подключены к компьютеру.
Изменяя реестр, можно нанести системе вред, поэтому, если вам не хватает опыта и знаний, предоставьте выполнение этой операции профессионалу.
Пошаговая инструкция работы с реестром
Шаг 1. Открытие системной утилиты Выполнить.
По кнопке Пуск — Выполнить или комбинации клавиш Win+R запустите системную утилиту Выполнить.
Шаг 2. Запуск встроенного редактора реестра.
В командной строчке наберите команду Regedit и нажмите на кнопку ОК.
Откроется окно редактора реестра.
Шаг 3. Поиск в реестре ветки 1С.
Данные, относящиеся к принтерам будем искать в ветке:
Для этого выберите команду Найти в меню Правка и укажите строку поиска.
Если информация о принтере HP LaserJet 400 MFP M425 dw UPD PS не соответствует действительности, измените ее.
Шаг 4. Корректировка реестра.
Для корректировки реестра вы должны обладать соответствующими правами. Если вы запустили утилиту под системными правами Администратора, то у вас есть возможность редактировать записи реестра. Для этого двойным кликом мышки по строчке в правом окне откройте окно редактирования.
Укажите в поле Значение информацию о новом принтере HP LaserJet 400 MFP M425dn UPD PS и нажмите на кнопку ОК.
Результат операции должен выглядеть так.
Исправление реестра часто помогает решить подобную проблему.
Если вы решите исправлять реестр, помните, что при некорректном выполнении операции это может привести к ошибкам в работе системы. Поэтому предварительно не поленитесь создать резервную копию реестра, чтобы можно было восстановить его, если что-то пойдет не так.
Обращаем внимание, что операционная система Windows и программа 1C постоянно обновляются, поэтому будут возникать новые причины появления этой ошибки у сетевых принтеров и принтеров, установленных на сервере.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Рассмотрим два способа выгрузить данные из программы 1С 8.3 в Word. Эти способы можно использовать в альтернативу стандартных внутренних и внешних печатных форм 1С. Пример обработки, который описывается в статье, можно скачать здесь.
Кстати, в новой версии 1С Бухгалтерия появилась возможность настройки пользовательских шаблонов договоров без программирования.
Выгрузка данных из 1C в шаблон Word (Active document)
Чтобы сформировать документ в формате Word, нужно сначала подготовить шаблон. А точнее, создадим макет с типом «Active document» для примера во внешней обработке:
Затем выбираем объект, например, Microsoft Office Word 97-2003:
Откроется чистый документ Word (причем в конфигураторе).
А в документе Word будем расставлять закладки. С закладками работать приятней и быстрей.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Выбираем режим закладок и расставляем:
Прописываем такую процедуру:
Создание документа Word сразу (Word.Application)
Документ Word можно создать в 1C без использования макета. Напрямую, с помощью COM объекта. Делается это не сложнее.
После запуска кода мы видим вот такую красивую картину:
Ссылка на скачивание обработки — Выгрузка в Word.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Читайте также: