В предыдущей статье мы с вами создали внешнюю печатную форму, которая заполняла параметры авторегистрации при добавлении ее в справочник внешних обработок. У меня данная методика успешно работала больше года, но все равно с каждой обработкой или печатной формой я высылал пользователю еще и файл инструкции, в котором описывалось пошагово, что и где нужно делать, чтобы данная внешняя печатная форма заработала. Оставалось чувство какой-то незавершённости, недоделанности обработок. Все знают, что в конфигурациях есть такое понятие как регламентированные отчеты. Так вот когда 1с-ка выпускает обновление к регламентированному отчету, то пользователю нужно только открыть отчёт через файл - открыть и ответить утвердительно на вопрос об обновлении регламентированного отчета.
Хотелось бы добавить в свои внешние отчеты такой же функционал. После недолгих изысканий решение было найдено. Создаем форму обработки, и в процедуре ПриОткрытии() нужно прописать следующий код:
ОбъектВПФ = Справочники.ВнешниеОбработки.СоздатьЭлемент(); ОбъектВПФ.Наименование = "Имя Внешней Печатной Формы"; ОбъектВПФ.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма; Принадлежность = ОбъектВПФ.Принадлежность; НоваяСтрока = Принадлежность.Добавить(); НоваяСтрока.ПредставлениеОбъекта = "Документы.Доверенность"; НоваяСтрока.СсылкаОбъекта ="Документы.Доверенность"; НоваяСтрока.ПредставлениеНастроекОбработки = "<Задать параметры>"; Файл = Новый Файл(ИспользуемоеИмяФайла); ОбъектВПФ.ХранилищеВнешнейОбработки = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИспользуемоеИмяФайла)); ОбъектВПФ.КомментарийКФайлуИсточнику = "Исходный файл: " + Файл.Имя + Символы.ПС + "размер:" + Файл.Размер() + " байт; изменен:" + Файл.ПолучитьВремяИзменения() + "; сохранен в ИБ:" + ТекущаяДата(); ОбъектВПФ.Комментарий = "001"; ОбъектВПФ.Записать();
Если вы сохраните этот код в процедуре ПриОткрытии() во внешней обработке то после открытия данного файла в 1с, или перетаскивания обработки на уже открытую конфигурацию он автоматически добавится к внешним печатным формам.
Прекрасно, мы получили авторегистрируемую внешнюю печатную форму, прописываем то, что нам надо и вперед за орденами. А что будет при втором открытии данной обработки? К уже существующей записи добавиться новая запись, и еще, и еще. По-моему это очень плохо, решение есть и довольно простое: в каждом элементе справочника есть реквизит «Комментарий,» который мы можем использовать для своих нужд. В поле комментарий мы будем добавлять версию внешней печатной формы или версию внешней обработки, а искать мы будем по уникальному наименовании объекта. Поэтому имена должны быть уникальные, а не «обработка 1»,» обработка2». Для того чтобы не возникало ситуаций когда вы написали внешнюю печатную форму типа «Авансовый отчет новый» я рекомендую добавлять в конце названия имя автора это и реклама и залог уникальности наименования. Ну и конечно проверка версии обновлять, только если версия добавляемой обработки больше той, что зарегистрирована в базе. У меня есть файл – шаблон для внешних отчетов, который я при создании нового отчета открываю и редактирую. Наверно и вам следует поступить также.
Перед публикацией статьи решил посмотреть, что на эту тему написано в интернете наткнулся на множество статей по мотивам моей прошлой статьи http://1clancer.ru/article/vneshnie_pechatnye_formy._avtoregistratsiya_v_baze_dannykh_1061 и только на инфостарте предлагается какой-то шаблон обработки, к сожалению, скачать и ознакомиться с ним мне не позволяет низкий рейтинг на инфостарте – зарегистрировался давно, но там практически не бываю. На этом все.