Алгоритм построения печатных форм в 1С: Управление торговлей 11. Часть 1.

29.03.13

Разработка - Математика и алгоритмы

В этой статье будет рассмотрен алгоритм построения печатных форм в типовой конфигурации 1С: Управление торговлей, редакция 11. Целью является наглядно показать применяемый в типовой алгоритм, чтобы помочь начинающим программистам в добавлении новых печатных форм или изменении существующих. Рассматриваются встроенные печатные формы. Алгоритм добавления внешних печатных форм и требования к ним будут рассмотрены в части 2.

Как и в предыдущей статье (//infostart.ru/public/179398/), для анализа конфигурации я буду использовать ментальные карты. А именно: редактор ментальных карт xMind (www.xmind.net) и, собственно для анализа конфигурации, плагин к нему «Анализатор кода 1С» (www.codeanalyzer.ru). 

Начнём с формулировки задачи. Используем типовую конфигурацию УТ 11.0.7.19.

Зайдём в конфигурацию под администратором. Перейдём в раздел «Продажи» и выберем на панели навигации команду «Документы продажи». Откроется список документов. 

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

Отмечу, что такое же меню отображается в форме документа «Реализация товаров и услуг».

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


Откроем форму документа. Посмотрим на список параметризуемых объектом глобальных команд. Видим, что помимо команд документа, используются команды обработок «ПечатьОбщихФорм», «ПечатьТранспортнойНакладной» и других. У всех этих команд в качестве параметра присутствует ДокументСсылка.РеализацияТоваровУслуг и в группе указано меню «Печать» командной панели формы. 

Также, если мы посмотрим на доступность этих команд по ролям, то увидим, что для роли «ПолныеПрава» (которая назначена администратору) право «Просмотр» установлено.

Два этих фактора определяют тот факт, что команды появляются в подменю печати командной панели формы документа.

Теперь разберёмся с обработчиками. Сначала обобщим рассматриваемые команды печати:

Откроем обработчик любой из этих команд. Увидим схожий вызов УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(…)

Если проанализировать все вызовы этой процедуры, то увидим, что она вызывается практически из всех команд конфигурации, отвечающих за печать. В частности, из обработки «ПечатьОбщихФорм» и нашего документа.

При этом, в качестве параметров "ВыполнитьКомандуПечати()" принимает:

И передает их в вызов «ОткрытьФорму("ОбщаяФорма.ПечатьДокументов"...)»

Посмотрим на модуль общей формы «ПечатьДокументов»

В коде ПриСозданииНаСервере(...) есть условие, определяющее, что если есть параметр «ИсточникДанных», то печатаем внешнюю печатную форму, иначе – встроенную.

Посмотрим, что вызывается в «УправлениеПечатьюПереопределяемый.ПечатьПоВнешнемуИсточнику(…)»

Таким образом, по переданному параметру «ИсточникДанных» получается объект внешней обработки и затем, вызывается её метод «Печать». Интересен вызов «ПолучитьОбъектВнешнейОбработки()», который приводит нас к справочнику «ДополнительныеОтчетыИОбработки».

Теперь посмотрим на печать встроенной печатной формы (это если параметр «ИсточникДанных» не был передан).

То есть, получаем менеджер объекта и вызываем его метод «Печать».

Менеджер получается вот так:

Ну что ж, теперь самое время перейти к процедуре модуля менеджера документа  - «Печать».

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

Для общей формы «ПечатьОбщихФорм» модуль менеджера будет выглядеть так:

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

Итак, мы выяснили как формируется список встроенных печатных форм, как происходит формирование и печать этих форм. Так же мы увидели, как происходит печать внешней печатной формы.

О том как добавляются в меню внешние печатные формы и какие требования (и почему) к ним предъявляются будет написано во второй части.

На этом заканчиваю) Легкого кода Вам!) 

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3210    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7620    user1959478    52    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3149    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10935    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4403    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3569    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9051    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 31.03.13 15:00 Сейчас в теме
Работа с типовыми, от релиза к релизу, все проще и проще. Скоро будет отдельный экзамен на спеца, что бы добавить реквизит в типовую, отдельный(более сложный), что бы добавить печатную форму в документ.
2. maraton1185 150 31.03.13 21:49 Сейчас в теме
Эта статья рассчитана на начинающих. Вряд ли подобные вопросы включат в экзамен спеца) А по поводу работы с типовыми, всё зависит от задачи. Где-то по-проще, как здесь, а где-то есть над чем подумать.
7. webester 26 09.04.13 03:28 Сейчас в теме
(2)Я говорю такими темпами, печатная форма выводящая реквизиты документа и табличной части будет в ближайшее время весить под пару мегабайт и содержать тысячи строк кода. По моему налицо явный перегиб.
3. vec435 17 04.04.13 09:21 Сейчас в теме
плюс за наводки по анализу кода.пригодится для любой задачи.что-то подобное реализовал для себя на 1С
4. maraton1185 150 04.04.13 09:44 Сейчас в теме
(3) vec435, скажите, а как такое можно реализовать в 1С?
5. vec435 17 04.04.13 10:35 Сейчас в теме
той же выгрузкой текстов модулей и их обработкой
Прикрепленные файлы:
6. buval 66 05.04.13 01:54 Сейчас в теме
Мне статья пригодилась, как начинающего программиста в УФ
8. webester 26 09.04.13 13:29 Сейчас в теме
(6)вам тоже понравилось что код картинками?
9. buval 66 12.04.13 15:22 Сейчас в теме
(8) webester, Если статья познавательная достаточно картинок. Если прикладная желательно коды текстом, Чтобы можно было копировать и попробовать
10. webester 26 13.04.13 01:42 Сейчас в теме
(9)Да как бы тогда, можно обойтись вообще без кода, рассказав на словах концепцию, что мешало сделать точно такой же красивый код, но текстом, непонятно. Это даже проще, чем скрины добавлять.
Intercititude; +1 Ответить
11. ksvd 27.08.13 12:55 Сейчас в теме
Название намекает на продолжение. Когда вторая часть?
12. sidka89 24.10.13 13:24 Сейчас в теме
автор планирует продолжить тему или все, часть первая и последняя?:)
Sherdrada; +1 Ответить
13. volha-77 19 25.05.15 23:31 Сейчас в теме
сайт http://www.codeanalyzer.ru/ не открывается. Где еще можно взять этот плагин? В поисковике смотрела, больше не нашла
Оставьте свое сообщение