gifts2017

Технология ввода и сохранения нетиповых реквизитов печатных форм документов

Опубликовал Maxim Goncharov (maxx) в раздел Печать - Печатные формы документов

У меня очень часто в работе встречаются пожелания пользователей по доработке печатных форм, в которых нужно заполнять непредусмотренные в конфигурации поля. Из-за таких мелочей "влазить" в конфигурацию не хочется с одной стороны, с другой стороны надо сделать, чтобы операторам было удобно вводить и распечатывать формы. Поэтому начал делать внешние печатные формы и сохранять недостающие данные в свойствах документов. В результате получилась некая технология (стандарт, подход) по созданию таких печатных форм.

  Итак, операторам понадобилось более полное заполнение или существующих печатных форм или абсолютно новых. Например, нужно к документу "Реализация товаров" помимо ТОРГ -12, печатать заполненную полностью транспортную накладную, парочку сертификатов, договор и т.п и во всех этих печатных формах много реквизитов, которых нет в типовой.

  Тут встало несколько задач, которые нужно решить:

   1) сохранять дополнительные реквизиты печатных форм документов, которых нет в типовых конфигурациях. Сохранить это где-то в базе;

   2) ввод этих данных для операторов должен быть удобным , т.к. зачастую менеджер относится к не продвинутым в 1С пользователям. Под удобством обычно понимается скорость выписки  правильно заполненной печатной формы;

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

   4) сделать какой-нибудь сервис по первочному заполнению реквизитов, чтобы , если реквизитов очень много, уже они были полностью чем-нибудь заполнены (по умолчанию).

  Основная идея:всем должна заниматься внешняя печатная форма и не тревожить пользователя.

  Всё это делал под Бухгалтерию 2.0, но подход должен заработать и в других конфигурациях. К документам подключаем дополнительные печатные формы.

 

 подключение дополнительной печатной формы

Начинаем решать задачи:

   1.) Сохранять дополнительные реквизиты печатных форм будем в свойствах документов (дополнительные сведения). Действительно у каждого документа можно сохранять любое количество свойств.

 дополнительные сведения документа

   2.) Чтобы операторам не думал какие свойства нужно заполнять, не дай боже ему дать создавать эти свойства, открываем ему отдельную красивую форму для заполнения реквизитов. 

 

открытие своей формы для заполнения реквизитов

  3.) При открытии печатная форма анализирует наличие нужных свойств у документа (процедура ПрочитатьСвойства). Если свойств таких нет ещё у документа, то они перед печатью будут создаваться. При этом, чтобы свойства одного документа не неперемешивались со свойствам другого документа, будем создавать в плане видов характеристик "НазначенияСвойствКатегорийОбъектов"  назначение свойств в описанием конкретного вида документа. Названия свойств придумываем длинные, пронумерованные, определяем типы свойств. Этим всем у меня занимается процедура  ЗаписатьСвойство, которая вызывается когда операторо нажимает кнопку для формирования печатной формы.

описание свойств печатной формы

Создание и сохранения свойства

 4) Последнее. Реквизиты могут быть практически одинаковыми. Напримерм, у меня в M11 члены комиссии, но один кто-нибудь всё время меняется. Поэтому сделаем, чтобы реквизиты у новых документы для печатной формы уже были заполнены. У себя сделал, что реквизиты берутся из самого позднего проведенного такого же вида документа по той же организации, но можно придумать и другой алгоритм, подходящий на предприятии.

 

В результате получаем внешнюю печатную форму, которая самостоятельно начинает работать в конфигурации сразу после подключения.

Далее взяв за основу такую печатную форму очень легко сделать другую, скопировав 3-4 процедуры.

В качестве примеров выкладываю, работающие пару лет печатные формы М11 (акт списания для требования накладной), М4 (Авансовый отчет с выбором принял-сдал).

 

 

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

Наименование Файл Версия Размер Кол. Скачив.
M11 (Передача в эксплутацию накладная c подписями).epf
.epf 16,69Kb
06.12.13
20
.epf 16,69Kb 20 Скачать
М4_АвансовыйОтчетСВыборомПринялСдал.epf
.epf 14,30Kb
06.12.13
21
.epf 14,30Kb 21 Скачать

См. также

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

Комментарии

1. Юрий Щербаков (ufo58) 07.12.13 14:21
За идею и реализацию - однозначно плюс
Один недостаток - избыточность сохраняемой информации
Если говорить (например) о ТТН, "нестандартных" реквизитов для редактирования ... более 15.
Большуя часть можно заполнить по-умолчанию (или взять из документа).
Если устраивает по-умолчанию или "подредактировали", все-равно сохраняем?
У сотни документов в неделю - это какого же размера будет регистр сведений через год?
Brook; v_den_v; cleaner_it; +3 Ответить 1
2. Maxim Goncharov (maxx) 07.12.13 19:17
(1) размер базы эта другая тема, никто не мешает чистить свойства старых документов.
3. Юрий Щербаков (ufo58) 08.12.13 10:05
т.е. немного подумать об оптимизации - "в лом"?
а придется, рано или поздно
если учесть, что в регистре "Значение свойств" хранятся значения и для номенулатуры, и для конирагентов, и для пользователей (настройки) .... да мало ли чего там нет ...
идея хороша .... оптимизируй
4. Вадим Назаров (NazarovV) 17.12.13 12:04
Красивое решение!) Автору плюс за идею!)
5. Геннадий Пиганов (Totoro) 17.12.13 12:13
Те свойства, которые единые для всех документов лучше хранить не в доп свойствах каждого документа, а в регистре/справочнике "СохраненныеНастройки" (есть почти во всех типовых для обычных формы). Этот же вариант подходит и для данных в табличных частях.
Единственный минус - контроль ссылочной целостности.
6. Maxim Goncharov (maxx) 17.12.13 12:47
(5)
Те свойства, которые единые для всех документов лучше хранить не в доп. свойствах каждого документа

А лучше вообще прописывать жестким текстом в макеты и не сохранять ничего.
7. Геннадий Пиганов (Totoro) 17.12.13 12:50
(6) В макетах менял нельзя, в справочнике можно. Понятно, что не лучше?
8. Maxim Goncharov (maxx) 17.12.13 13:14
(7)
В макетах менял нельзя, в справочнике можно.

У меня в справочнике "Организации" опять же в свойствах хранится много общих значений, типа номер доверенности, на основании чего действуют (Устав), исполнительный директор и т.п. Эти свойства и используются в печатных формах.
9. Геннадий Пиганов (Totoro) 17.12.13 13:30
(8) Я рад :) Значит все таки не лучше чем "А лучше вообще прописывать жестким текстом в макеты и не сохранять ничего"?
10. Maxim Goncharov (maxx) 17.12.13 14:13
(9)Оптимизация хранения свойств, я считаю другая тема.

Почему бы тогда не обсудить хранение одинаковых свойств номенклатуры не в каждой карточке, а например, у Номенклатурной группы или у Группы номенклатуры.
11. Геннадий Пиганов (Totoro) 17.12.13 14:25
(10) Можно и там хранить, только нужно чтобы гарантированно элемент не был удален или его свойства сам пользователь случайно не изменил. Сам же сказал, что общие реквизиты в организации хранишь. Это все таки лучше, чем в каждом документе.
А вот типовой справочник/регистр "СохраненныеНастройки" позволяет сохранять все это не мешая пользователю, без возможности изменения пользователем и гарантированно при любых условиях заполнения. За исключением минуса ссылочной целостности. У тебя может быть минус - неодобство использования свойств пользователем по прямому назначению или если нужно для строк ТЧ данные хранить.
И причем здесь "А лучше вообще прописывать жестким текстом в макеты и не сохранять ничего." я так и не понял ...
12. Maxim Goncharov (maxx) 17.12.13 14:30
(11)И причем здесь
"А лучше вообще прописывать жестким текстом в макеты и не сохранять ничего." я так и не понял ...
а до этого ты писал "
Те свойства, которые единые для всех документов лучше хранить не в доп свойствах каждого документа"


Если свойства для всех документов едины, значит это константы для предприятия, которые во внешних печатных формах можно просто прописать в макет. Если будут меняться раз в год, то можно быстро и макет поменять.
13. Геннадий Пиганов (Totoro) 17.12.13 14:47
(12) Понятно. Но это могут быть не обязательно константы. Например, та же комиссия для списания, которая выбирается пользователем и едина для всех документом. То, что ты хранишь в организации.
14. Марина Гинко (_qqq) 17.12.13 16:01
У нас тоже часто используются дополнительные сведения документов и справочников. Бывает надо сохранить номер ТТН для каких-то РТиУ, например.
Но открывать и даже создавать дополнительные свойства при использовании печатных форм - , по-моему, лишнее.
15. Юрий Щербаков (ufo58) 18.12.13 10:29
лишнее ... жестко прописанное ...
пример:
Реализация (Торг12, ТТН), СчФ, Перемещение (ТТН, Торг 13) ... список можно продолжать
У покупателей "извращения". Одному хочется в строке Основание (в СчФ напр.) видеть договор, другому платежный документ, третьему заказ. А кому-то вообще сочетание .... порою, трудно предсказуемое.
Наложить сюда Организации, разных подписантов, разных грузополучателей и даже пользователей
Причем вариант грузополучателя у одного контрагента меняется (в случае Корпоративного клиента, например, когда платит один а получают .... несколько других) .... да еще на разные адреса доставки.
Опять-же список можно продолжать ...
Основные реквизиты заполняются в документе. Это к вопросу "жесткого прописания".
Пересечение реквизитов документов (и прошу заметить "переходящие связи" реквизитов в них (в документах)) ....
Не повторяющиеся, даже индивидуальные данные в разных документах ....
И .... список получается, мало того, что внушительный, так еще и "динамический".
Учесть заполнение "по-умолчанию", для организации, для контрагента, для подразделения или филиала в конце-концов .... это относится к "жесткому прописанию". В регистрах, константах или справочниках - не суть.
"Групповые" ("связанные"), индивидуальные настройки документов ... записать в свойствах документа - милое дело. Вот тут самое место этого метода.
А прописывать в каждом типе документов ВСЕ вариации .... брр. Мне лично хватило прописать реквизиты ТТН в Реализации и Перемещении. А их около десятка. Причем, от документа к документу заполняются не все.
Ладно себя, базу жалко.
16. Сисой Сисой (Сисой) 18.12.13 11:57
Мне кажется, что проще добавить пару справочников/РС, возможно добавивив новый тип в ПВХ свойств.
Да, вносим изменения в типовую, да, не работает для базовых версий, но зато правильнее и надежнее.
Например, можно отдельно хранить варианты списка подписей, а в свойства документа загонять только ссылку на вариант.
Почему не нравится вариант автора. Свойства и характеристики документа могут быть нужны пользователям не только для печатных форм, но и для отборов, они отображаются в отчетах на СКД и заполнять их, и продираться потом через многочисленные 02_Затребовал_ТребованиеНакладная будет тяжко.
К тому же хранить данные комиссий в настолько ненормализованном виде не по феншую как-то.
17. Maxim Goncharov (maxx) 18.12.13 14:40
(16)
Да, вносим изменения в типовую, да, не работает для базовых версий, но зато правильнее и надежнее.

А как говорить бухгалтерам базовых версий, да у меня есть печатная форма но перейдите на ПРОФ (+ 7000 рублей) и подпишитесь на ИТС для обновлений (от 12 т.р. в год), в общем печатная форма в тысяч 20. А ещё мне нужно к вам приехать или подключиться (а это тоже бывает проблема), чтобы это печатная форма заработала, т.к. сами вы не обновите. Но потом обновляться будете, звоните мне, а то снесёте всё и работать уже не будет. КЛАССНО. Когда у вас на обслуживание будет хотя бы 10 таких предприятий, то вопрос сам по себе отпадёт.

ПРАВИЛЬНЕЕ И НАДЕЖНЕЕ - вообще не понял, где написано добавить реквизиты в документ что это правильно и это надежнее.

Свойства и характеристики документа могут быть нужны пользователям не только для печатных форм, но и для отборов, они отображаются в отчетах на СКД и заполнять их, и продираться потом через многочисленные 02_Затребовал_ТребованиеНакладная будет тяжко.

Присвойте названиям свойства букву "я" в начале типа "я_02_Затребовал_ТребованиеНакладная" и в СКД они будут всегда в конце не мешать.

18. Maxim Goncharov (maxx) 18.12.13 14:42
(15) Что же вам так базу жалко !

Кинуть обработку по очистке свойств документа за любой период (старые документы), даже с выбором наборов свойств к удалению (начинающие на "_")?
19. Сисой Сисой (Сисой) 18.12.13 15:49
(17) Для базовых соглашусь, Вы правы. Хотя на мой взгляд, ориентироваться на клиентов, купивших базовую, себе дороже. Франч отказать в поддержке не может, а вот фри вместо 10 базовых найдет одно небазовое и поимеет с этого больше (в т.ч. и с обновлений :-)).
20. Сисой Сисой (Сисой) 18.12.13 15:54
(17) >> ПРАВИЛЬНЕЕ И НАДЕЖНЕЕ - вообще не понял, где написано добавить реквизиты в документ что это правильно и это надежнее.

Ни в коем случае не реквизиты! Только отдельные таблицы или РС со ссылками на документы.
А вот почему так лучше делать - да потому что таким образом можно добавлять доп. реквизиты даже в табличную часть документа. Через свойства этого не сделаешь.
21. Maxim Goncharov (maxx) 18.12.13 16:24
(20) Думаю универсальных решений нет, нужно выбирать то, что подходит в ситуации.

Помню сдавал экзамен Специалист по конфигурирование зарплаты 8. Надо было сделать расчет льготных обедов для сотрудников. Всё сделал, всё считалось, создал новый документ "Расчет льготных обедов" вся логика была в модуле это документа. Когда препод увидел, у него волосы дыбом встали и говорит: "Вы зачем тут всё переписали, надо было в общим модуле всё сделать". Я ему говорю, что мол ведь всё работает и обновлять можно простым объединением и сравнением... вообщем поставил он мне два, через месяц приехал и сделал как просили "влез в типовую" и обновлять теперь геморой.

Думаю всё ситуации зависит.

22. Денис Пайвин (Dens11) 20.12.13 09:27
(21) maxx, Ну на экзамене от вас требуют умения разобраться с типовым функционалом и изменить его, а на практике действуют другие принципы возможность разобраться с типовым и добавить свое снаружи так чтобы не порушить базу после обновления.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа