Алгоритм построения печатных форм в 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    1756    stopa85    12    

33

Алгоритм симплекс-метода для решения задачи раскроя

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

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

19.10.2023    4426    user1959478    50    

34

Регулярные выражения на 1С

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

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

1 стартмани

09.06.2023    7466    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

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

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

1 стартмани

21.03.2022    7856    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

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

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4448    fishca    13    

36

Интересная задача на Yandex cup 2021

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

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8843    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

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

31.08.2021    7809    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 31.03.13 15:00 Сейчас в теме
Работа с типовыми, от релиза к релизу, все проще и проще. Скоро будет отдельный экзамен на спеца, что бы добавить реквизит в типовую, отдельный(более сложный), что бы добавить печатную форму в документ.
2. maraton1185 147 31.03.13 21:49 Сейчас в теме
Эта статья рассчитана на начинающих. Вряд ли подобные вопросы включат в экзамен спеца) А по поводу работы с типовыми, всё зависит от задачи. Где-то по-проще, как здесь, а где-то есть над чем подумать.
7. webester 26 09.04.13 03:28 Сейчас в теме
(2)Я говорю такими темпами, печатная форма выводящая реквизиты документа и табличной части будет в ближайшее время весить под пару мегабайт и содержать тысячи строк кода. По моему налицо явный перегиб.
3. vec435 15 04.04.13 09:21 Сейчас в теме
плюс за наводки по анализу кода.пригодится для любой задачи.что-то подобное реализовал для себя на 1С
4. maraton1185 147 04.04.13 09:44 Сейчас в теме
(3) vec435, скажите, а как такое можно реализовать в 1С?
5. vec435 15 04.04.13 10:35 Сейчас в теме
той же выгрузкой текстов модулей и их обработкой
Прикрепленные файлы:
6. buval 65 05.04.13 01:54 Сейчас в теме
Мне статья пригодилась, как начинающего программиста в УФ
8. webester 26 09.04.13 13:29 Сейчас в теме
(6)вам тоже понравилось что код картинками?
9. buval 65 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/ не открывается. Где еще можно взять этот плагин? В поисковике смотрела, больше не нашла
Оставьте свое сообщение