1С почему то решила, что в бухгалтерии нужны подключаемые внешние отчеты, а в ЗиК нет.
А зря. С этим механизмом можно было бы сделать много очень полезных доработок документов без изменения конфигурации. И не только!
Долгое время меня мучила мысль как реализовать этот механизм с минимальными изменениями конфигурации.
Первое решение было дополнительная кнопка на форме, запускающая внешний отчет ("запускалка"), который ищет в определенном месте наличие дополнительных отчетов для этого вида документа.
Но минус этого решения легкая потеря кнопки при обновлении, т.к. в анализе конфигурации изменения видны только в Диалоге, а что именно в нем поменялось непонятно. Приходилось каждый раз при обновлении восстанавливать мои кнопки. Подробнее об этом здесь:
http://www.zik1c.ru/Otchet/Ot4_Integ.shtml
Не так давно привлекло мое внимание статья: //infostart.ru/public/73221/ (venger).
Она натолкнула меня на мысль использовать "перехватчик" чтобы подключить внешние отчеты к документу.
Вот как я это сделал.
0. Сначала подключил "перехватчик" как рассказано в статье venger-а.
1. Добавил новую константу (Константа.КаталогВнешнихФорм), в которой указывается путь к папке с дополнительными отчетами и их "запускалкой". Т.к. дополнительные отчеты в большинстве своем универсальные, то их можно использовать сразу для нескольких баз и доработав один изменения вступят в силу во всех базах.
2. в глобальнике в процедуру глДействия(КонтекстДокумента,СписокДействий) Экспорт добавил запуск "запускалки" (извиняюсь за тавтологию ) - всего 2 строчки.
ИначеЕсли Действие = "Дополнительно" Тогда
ОткрытьФорму("Отчет",КонтекстДокумента,СокрЛП(Константа.КаталогВнешнихФорм)+"\StarterExtForms.ert");
которая запускает мою старую обработку ищущую доп. отчеты для нужного документа.
2. В обработке КлассПерехватСобытийРеализация,
Процедура СобытиеГМ_ПриОткрытии(Конт, ФлагЧтенияНастройки) Экспорт
Попытка
СписокДействий = Конт.СписокДействий;
Если СписокДействий.РазмерСписка() <> 0 Тогда
Конт.СписокДействий.ДобавитьЗначение("----------------------");
КонецЕсли;
Конт.СписокДействий.ДобавитьЗначение("Дополнительно");
Если СписокДействий.РазмерСписка() = 1 Тогда
Конт.СписокДействий.ДобавитьЗначение("----------------------");
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры // СобытиеГМ_ПриОткрытии
Теперь это выглядит как показано на рисунках внизу.
Однако в справочниках нет кнопки ДЕЙСТВИЯ или подобной, поэтому там приходится применять нетиповую кнопку.
Как и для дополнительных возможностей (в меню сервис) мои дополнительные отчеты тоже состоят из самого отчета *.ert и его описания *.efd. Но я расширил немного описание, теперь в нем можно указать пользователя и НазваниеНабораПрав для которых отчет может запускаться, а так же обязательно надо указать из какого объекта метаданных можно запустить этот отчет. Пример описания (*.efd):
Название=Перепровести документ
Пользователь=1С,А_Плюс
Права=Полные права,Кадры
Метаданные=Документ.БольгичныйЛист
Если в метаданных указать Документ.Все, тогда отчет будет запускаться из всех документов.
Перечислю что же можно реализовать через эти подключаемые отчеты/обработки:
Из справочника Сотрудники:
- печать всевозможных отчетов только для текущего сотрудника, например расчетые листки за несколько периодов, отчет по использованным отпускам, посмотреть суммы действующих постоянных надбавок, перейти в общий журнал документов с включенным отбором по текущему сотруднику, перейти в журнал расчетов.
Из документов:
- печать любых дополнительных произвольных неунифицированных форм для текущего документа; можно изменить/сохранить/перепровести документ любого периода с неизменением записей в журнале расчетов; можно написать обработки произвольного (нетипового) заполнения содержимого документа
Из журнала расчетов зарплаты:
- быстрый переход в общий журнал документов с установленным отбором по текущему сотруднику, расчетные листки по текущему сотруднику за несколько периодов, отчет табель отработанного времени, создать перерасчет оплаты по табелю.....
и многое многое другое. Если кому интересно могу в комментарии написать, что уже сделано.
ВНИМАНИЕ! ПРЕДЛАГАЮ (пока) ЖЕЛАЮЩИМ УСТАНОВИТЬ НА ВАШЕЙ БАЗЕ ЭТО РЕШЕНИЕ ПЛЮС ДОПОЛНИТЕЛЬНЫЕ ОТЧЕТЫ/ОБРАБОТКИ ДЛЯ РАСШИРЕНИЯ ВОЗМОЖНОСТЕЙ ЗИК!
ЖЕЛАЮЩИЕ ПИШИТЕ В ЛИЧКУ!