gifts2017

Печатная форма с возможностью выбора лица для подписи

Опубликовал Александр ягольник (Alex Y) в раздел Печать - Печатные формы документов

Предлагаемая форма позволяет произвольным образом менять физическое лицо для подписи, с указанием должности и доверенности. Для примера используется "Акт об оказании производственных услуг".

Для тех, кто хорошо знаком, как создать внешнюю печатную форму, этот материал может оказаться интересным. Остальным рекомендую изучить «Внешние печатные формы в восьмерке» http://infostart.ru/public/16952/

Для НЕ ПРОГРАММИСТОВ! Хотите свою печатную форму, а программировать не хотите? Нет ничего невозможного. Пишите. Договоримся.

Многие печатные формы в 1С 8 автоматом проставляют ФИО руководителя в разделе Подписи. При этом руководитель берется из Реестра сведений «Ответственные лица организаций». Но в реальных условиях требуется часто подписывать документ заместителю руководителя. Обычно в таких случаях автоматически внесенное значение «пербивается» вручную нужным, что совсем не удобно, особенно, когда документов более десятка в день.

Что делают некоторые программисты? Создают внешнюю печатную форму, в которой «намертво» в макет впечатан заместитель. Если заместителей несколько, то и печатных форм столько же. Понятно, что когда меняется заместитель, приходиться добавлять форму с новым заместителем.

Предлагаемая форма на примере документа «Акт об оказании производственных услуг» позволяет произвольным образом менять физическое лицо для подписи, с указанием должности и доверенности (в некоторых документах требуется доверенность, на основании которой зам может подписывать документы за руководителя).

Печать с произвольним физлицом в разделе Подписи

Первоначально я полагал, что заместитель может быть один. К сожалению в «Ответственные лица организаций» нет возможности указать ответственное лицо «Заместитель», не меняя конфигурацию. Поэтому использовал ответственное лицо «Уполномоченный представитель» вместо заместителя.

Первоначально я полагал, что заместитель может быть один. К сожалению в «Ответственные лица организаций» нет возможности указать ответственное лицо «Заместитель», не меняя конфигурацию. Поэтому использовал ответственное лицо «Уполномоченный представитель» вместо заместителя.

Но когда выяснилось, что заместителей, подписывающих один и тот же тип документа, может быть несколько, пришлось использовать дополнительную форму.

КонфигураторФорма

После активного изучения вопроса «как привинтить форму к печатной форме» в интернете и исходных кодах, использовал следующий вариант:

 

	Функция Печать() Экспорт
		Форма = ПолучитьФорму("ВыборОтветственногоЛица");
		Если Форма.Открыта() тогда
			Форма.Закрыть("Да");
		Иначе
			Тест = Форма.ОткрытьМодально();
			Если (Тест <> "Да") Тогда
				Возврат Неопределено;
			КонецЕсли;
		КонецЕсли;
		Возврат ПечатьАктаОбОказанииУслуг();	
	КонецФункции // Печать

 

Для указания доверенности использовал поле «Комментарий» (Вкладка «Прочее» поле «Дополнительная информация») в справочнике «Физические лица». При этом комментарий должен иметь вначале ключевое слово «ДОВЕРЕННОСТЬ:». По нему определяется, что это не произвольный комментарий, а именно доверенность.

Доверенность

Для сохранения настроек (чтобы не вводить каждый раз ФЛ) добавил реквизиты ФизЛицо, Должность и ВариантОЛ, которые сохраняю при выходе из формы.

Процедура ПриОткрытии()
	ФизЛицо = ВосстановитьЗначение("ФизЛицо");
	Должность = ВосстановитьЗначение("Должность");
	ВариантОЛ = ВосстановитьЗначение("ВариантОЛ");
	АктивностьСписков();
КонецПроцедуры

Процедура ПриЗакрытии()
	СохранитьЗначение("ФизЛицо", ФизЛицо);
	СохранитьЗначение("Должность", Должность);
	СохранитьЗначение("ВариантОЛ", ВариантОЛ);
КонецПроцедуры

Поле ВариантОЛ назначается переключателями «Руководитель», «Заместитель» (привет от «Уполномоченного представителя») и «Другой». При активном «Другой» становятся доступны поля «Физическое лицо» и «Должность».

Когда стал делать аналогичную форму для счета-фактуры, меня ожидал сюрприз. Так как формы ВыборОтветственногоЛица и в Акте и в Счете-Фактуре были идентичны, то 1С сохранил настройки формы по одному адресу. Теперь не нужно было выбирать Ответственное лицо для каждого вида печатной формы! Достаточно один раз указать, и для данного пользователя это значение подхватывалось на всех печатных формах, имеющих форму ВыборОтветственногоЛица.

При переносе логики формирования печати из стандартных модулей, достаточно в Модуле объекта добавить

Функция ОтветственныеЛицаОрганизаций(Организация, ДатаСреза, Исполнитель = Неопределено)  // Переопределенная функция из общих модулей, возвращающая УполномоченныйПредставительДолжность, УполномоченныйПредставительДоверенность, УполномоченныйПредставительФизЛицо

Функция ФИОФизЛица() // Иванов И. И.

Функция ДоверенностьФизЛица() 

Процедура ВернутьПодписиРуководителей(ДанныеДляПечати, Организация, Дата)

А в самой функции, возвращающей ТабличныйДокумент, заменить присвоение ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; на свое, добавив должность и доверенность:

	ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
	ДанныеДляПечати = Новый Структура();
	ВернутьПодписиРуководителей(ДанныеДляПечати, Шапка.Организация, СсылкаНаОбъект.Дата);
	ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);
	ТабДокумент.Вывести(ОбластьМакета);

Следует обратить внимание, что в одних стандартных печатных формах руководитель обозначен как параметр ФИОРуководителя, в других – по-другому. Когда будете писать свой макет, указывайте параметры:

	ФИОРуководителя
	ДолжностьРуководителя
	ДоверенностьРуководителя
	ФИОГлавногоБухгалтера

Желаю успехов в написании своих красивых и удобных внешних печатных форм!

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Печатная форма с выбором физлица для подписи
.epf 20,15Kb
03.11.09
451
.epf 20,15Kb 451 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Igоr Sаulеviсh (gutentag) 03.11.09 21:07
2. serg_121 (SerG_121) 04.11.09 00:55
3. Татьяна (Malaya1971) 04.11.09 14:10
Ставлю плюс не только за идею, но и за подробные рассуждения о том, как она разрабатывалась . Потому что одно дело просто выложить какую-то внешнюю форму, но если тебе нужна была просто идея, то нужно сидеть и додумываться что имел ввиду разработчик. Спасибо за труд
gutentag; +1 Ответить
4. СВЕТА (света1969) 04.11.09 19:12
в бух не идет и прочее нет
5. Александр ягольник (Alex Y) 04.11.09 19:19
To света1969
Постарайтесь не использовать печатную форму механически в любых конфигурациях, отличных от 1С 8.1 УПП.
Поймите принцип и создайте на его основе свою форму.
gutentag; +1 Ответить
6. DarkAn DarkAn (DarkAn) 05.11.09 10:39
У нас в 7,7 для этих целей есть отдельный справочник, где в одном реквизите сотрудник, в другом (текстовом, периодическом) информация о доверенности. При печати документа, в частности счетов фактур и накладных дважды происходит выбор за кого и кто расписывается. Первый за гл. Бух, второй за Генерального :)

Итого корректировки в базе...
- 1 новый справочник
- По одной новой секции в каждый документ в который надо выводить печать с запросом на подпись
- ну и собственно в процедуре Печать() Запрос на выбор пользователей :)
7. Яков Коган (Yashazz) 05.11.09 11:50
Ну и в идеале - хранение картинок с факсимильными подписями для каждого выбираемого сотрудника, и их вставка в бланки...
8. Антон Богданов (Marks007) 05.11.09 15:16
А как при таком подходе узнать кто подписывал документ, например, в том случае если часть документов надо напечатать заново?
9. Александр ягольник (Alex Y) 05.11.09 16:26
To Marks007
Предлагаемый мной вариант - способ избежать ручной правки уже сформированных печатных форм. Т.е. когда перебивают ручками ни о каком учете, кто печатал, речи быть не может.
Если же надо задним числом распечатать документ, оригинал которого утерян, то тут в любом случае должен подписывать новый сотрудник, тот, кто имеет право и есть в данный момент.
Если подписанный оригинал есть, то и копию сделать не составит труда.

Ну а когда речь о том, "кто мог подписать этот документ пол-года назад?", то либо всё печатаем через Уполномоченного (только один Зам в заданный период), либо кроим оригинальную конфу, добавляя в каждый документ подписантов. Как вариант-отдельный справочник с ФИО, должностью, местом подписи (Руководитель, Гл.бух ...) и ссылкой на документ и печатную форму .
10. Игорь Исхаков (Ish_2) 06.11.09 01:57
(9) Вопрос о правильном подходе к созданию ВПФ уже обсуждался. И все -таки, повторюсь.

На мой взгляд , правильным методическим подходом при разработке внешних печатных форм является разработка такой ВПФ , которая может запускаться как из документа так и независимо , т.е иметь реквизит формы СсылкаНаОбъект.

Отладка работы ВПФ осуществляется при независимом запуске (кнопка Открыть) и выбором нужного документа в реквизите формы СсылкаНаОбъект .
По окончании отладки обработка регистрируется как внешняя печатная форма.

valm0unt; Istur; +2 Ответить
11. Игорь Исхаков (Ish_2) 06.11.09 02:07
(9)
Ну а когда речь о том, "кто мог подписать этот документ пол-года назад?"


Может выручить частное решение.Простое , не очень корректное , но при нестрогом учете и разреженном во времени вводе документов - допустимое.
Хранить во внешнем файле таблицу значений с двумя полями :
СсылкаНаУполномеченноеЛицо и СсылкаНаДокумент.
Организация процедуры проста. Вначале читаем таблицу из файла , подставляем ,если есть, нужное значение в реквизит Уполномоченный.
При печати записываем таблицу при помощи команды ЗначениеВФайл().
12. Александр ягольник (Alex Y) 06.11.09 10:15
To Ish_2
Есть замечательная универсальная обработка для отладки в конфигураторе внешних печатных форм с возможностью задания документа/справочника и параметров: http://www.infostart.ru/public/14686/
"Грузить" простенькую форму отладочным модулем не имеет смысла, когда есть такой инструмент.
13. Игорь Исхаков (Ish_2) 06.11.09 13:43
(12) К сожалению , считаю , подход продемонстрированный по указанной
ссылке (poppy), как раз методологически неверным.
Ненужной придумкой .
И самым точным комментарием к теме считаю следующий (German) :

Развил тему на пустом месте, что мешает сделать внешнюю печатную фому с диалогом?
Тоесть запустить диалог и отлаживай сколько хочешь, из диалога так же вызывать Функцию модуля печать.


Прием позволяющий запускать обработку с одной стороны независимо,
с другой стороны из документа , настолько прост , что не заслуживает названия "отладочный модуль" .
14. Poppy (poppy) 07.11.09 23:46
(13) Там есть и другой комментарий от не менее уважаемого специалиста:
3. почему бы чуток не доработать что бы тестировала и обычные обработки.

Напомню, для отладки обычной обработки, в отличии от ВПФ, не требуется добавлять в нее что-то ненужное.
Каждому - свое. Самая короткая дорога - та, которую знаешь.
15. Poppy (poppy) 08.11.09 00:16
(0)
Для указания доверенности использовал поле «Комментарий» (Вкладка «Прочее» поле «Дополнительная информация») в справочнике «Физические лица». При этом комментарий должен иметь вначале ключевое слово «ДОВЕРЕННОСТЬ:». По нему определяется, что это не произвольный комментарий, а именно доверенность.

Для этого можно использовать механизм свойств объектов http://infostart.ru/public/57375/
Свойства также можно использовать и для хранения того, кто подписал (8).

(11) Это к вопросу полезно ли знать механизмы типовых конфигураций http://infostart.ru/public/60216/
16. Игорь Исхаков (Ish_2) 08.11.09 01:05
(14) Спасибо, poppy.
Собрался похихикать над уважаемым специалистом , который произнес , нечто выдающееся :

3. почему бы чуток не доработать что бы тестировала и обычные обработки.


Ан нет. По нику автора этого поста NewNick попадаю к себе в профиль. Poppy , это не я. Это support'у вопрос.
Но "уважаемого специалиста" в свете приведенной цитаты я оценил.
17. Poppy (poppy) 08.11.09 01:38
(16) Ты о чем?
Не поняла тебя в контексте применения слов "хихикать", "уважаемый специалист", "выдающееся" и "оценил специалиста в свете цитаты". Что ты имел в виду?

Кстати, профиль NewNick: http://infostart.ru/profile/9158/
18. Игорь Исхаков (Ish_2) 08.11.09 02:16
Я о том :
1. Что приведенное в указанной цитате предложение мне кажется нелепым.

2. Что клик на нике NewNick ( как автора этого комментария в Вашей теме) приводит в профиль Ish_2 . Отсюда для наблюдателя возможен вывод , что я и есть автор такого комментария.

3. Я попытался откреститься от такого авторства. И не захотел быть "уважаемым специалистом".

19. Poppy (poppy) 08.11.09 15:08
(18)
п.1 Приведенная в (13) цитата не менее нелепа. Но это не делает Германа неуважаемым специалистом.

п.2 Тот клик приводит не в профиль Ish_2, но в профиль того, что кликает. Поэтому, для наблюдателя возможен вывод, что это он автор такого комментария, но не ты.

п.3 Открещивался зря... :D
20. Игорь Исхаков (Ish_2) 08.11.09 17:08
21. sergey LALALA (shaman.nk) 04.02.10 16:13
Спасибо Автору!!! Наего примере усе с первого разо вышло!!!
22. Галина (galagala) 24.12.10 15:36
Платформа 8.2. Проведена конвертация файла в Конфигуратеоре.
Ошибка:

{ВнешняяОбработка.Акт_с_любой_подписью.МодульОбъекта(516)}: Метод объекта не обнаружен (ПолучитьЧастьЗапросаДляВыбораСодержания)
СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("АктОбОказанииПроизводственныхУслуг");

Что делать?
23. Александр ягольник (Alex Y) 10.02.11 11:49
(22) Извините, давно не смотрел комментарии.

При изменении конфигураций функции общих модулей "дрейфуют" в другие модули или меняют имена.
Да и сами исходные печатные формы меняют содержание.

Поэтому совет: не копировать обработку "один к одному", а брать за основу. Заходить в модуль нужного документа, находить процедуру формирования данных для печатной формы и копировать в обработку. Затем менять её по принципам, изложенным в статье.
Тогда у вас будет всегда актуальная внешняя печатная форма.
Аналогично следует поступать и с макетом, если он сильно изменился.

Для НЕ ПРОГРАММИСТОВ! Хотите свою печатную форму, а программировать не хотите? Нет ничего невозможного. Пишите. Договоримся.
24. Андерсен Ковальски (Vovanich) 03.04.11 18:04
Взял за основу приведенный код. Попытался прикрутить к акту выполненных работ(реализация товаров и услуг) в БП-2.0.19.12, выбор отв лица работает и проставляет произвольное лицо, но не могу вытащить доверенность из комментария...значение все время пустое оказывается что может быть?как мне вытянуть из поля доп.Информация номер доверенности или может куда то еще можно прилепить этот номер доверенности?
Поможите пожалуйста. Мне еще по такому типу надо Счет сделать и СчетФактуру. А тупо статичным текстом в макете не очень хотелось бы вбивать.
25. Sas001 (Sas001) 15.09.11 10:21
так нужно просто эту доверенность сделать как регистр сведений и не париться с комментариями, плюс к тому сохраняется история доверенностей, на случай если они меняются. в форме обработки выбора подписанда добавить выбор доверенности, по-моему замечательно должно получиться.
26. Sas001 (Sas001) 15.09.11 11:09
да и вообще все данные о подписях в документе хранить в регистре сведений, это просто замечательная вещь в 8-ке!!!
27. Mike (kouch) 29.10.11 18:02
Статья архиважная и архинужная. Огромная находка для чайников. Спасибо. )))
28. Alexey Pak (Alexey55) 22.11.11 08:37
Огромное спасибо!
статья очень помогла мне)
29. cratos2 (CratosX) 06.12.11 16:59
Создал внешнюю форму, показал буху, что её можно открыть конфигуратором и изменить текст подписи - и копеечку себе заработал, и привнёс свет в этот мир. А если нужно более пяти замов - то у клиента не фирма, а проходной двор.
30. Олег Иванов (oleg_ss) 22.01.12 12:58
Хорошая статья буду использовать метод.
Сейчас актуальна, т.к. пишу внешнюю печатку на реализацию
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа