1С внешняя печатная форма с выбором параметров

Содержание
  1. Обработка для внешней печатной формы
  2. Форма тестов
  3. Форма настроек
  4. Скачать файлы
  5. Специальные предложения
  6. См. также
  7. Процедура ПриКомпоновкеРезультата 298
  8. 1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо
  9. Вам нравятся запросы в 1С? 14
  10. 1С:Ассемблер. Немного летнего веселья! 315
  11. Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо
  12. Простые примеры сложных отчетов на СКД 276
  13. Безопасная работа с транзакциями во встроенном языке 191
  14. Программы для исполнения 488-ФЗ: Маркировка товаров Промо
  15. Акт о передаче в производство (вводе в эксплуатацию) малоценных предметов к документу Требование-накладная 0
  16. Баг или фича? Неожиданное поведение платформы 172
  17. Подборка решений для взаимодействия со ФГИС «Меркурий» Промо
  18. HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX 172
  19. Работа с публикациями "Инфостарт" 14
  20. Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо
  21. Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 66
  22. Работа с данными выбора 43
  23. Подборка программ для взаимодействия с ЕГАИС Промо
  24. HTTP Сервисы: Путь к своему сервису. Часть 1 290
  25. ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105
  26. Новогодние скидки на авторское ПО Промо
  27. Полезные примеры составления схемы компоновки данных #2 183
  28. БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному 242
  29. INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо
  30. Как выполнить отчет на СКД через COM и получить данные отчета? 86
  31. Работа со схемой запроса 176
  32. Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо
  33. Заполняем по шаблону (по умолчанию) 70
  34. Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов 124
  35. Базовый курс по разработке мобильных 1C-приложений для Andro >Промо
  36. Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула 8
Программирование системы 10.04.2018 07:51 8402

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

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

Обработка для внешней печатной формы

Обработка содержит две формы: ФормаТестов, ФормаНастроек.

В функции СведенияОВнешнейОбработке() для свойства "Использование" нужно установить значение "ВызовКлиентскогоМетода". Это означает, что при запуске печатной формы из 1С Предприятия, будет автоматически запускаться экспортная функция Печать() ИЗ ОСНОВНОЙ ФОРМЫ ОБРАБОТКИ, при этом форма не открывается.

Форма тестов

Так как в свойствах команды было указано "ВызовКлиентскогоМетода", то экспортная функция Печать(), должна быть расположена в модуле основной формы обработки (в данном случае ФормаТестов), сама форма открыта не будет. Но для отладки, печатная форма будет запускаться через главное меню Файл->Открыть. Поэтому предусмотрим на форме тестов команду для вызова экспортной функции Печать().

Форма настроек

На форме настроек расположим несколько полей ввода. Зададим обработчик действия для кнопки "ПродолжитьПечать".

Еще нужно добавить 2 параметра формы: ИдентификаторКоманды, МассивОбъектов, которые передаются при открытии формы. Эти параметры должны быть с признаком Ключевой параметр.

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

1. Владислав 13.09.2018 11:14 <ВнешняяОбработка.ВнешняяОбработка1.Форма.ФормаНастроек.Форма(17)>: Поле объекта не обнаружено (ИдентификаторКоманды)
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(Параметры.ИдентификаторКоманды);

Подскажите, в чем ошибка?

2. Admin 04.10.2018 10:20 Возможно в форме настроек не добавлен параметр ИдентификаторКоманды типа "строка" с признаком Ключевой параметр.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

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

Итак, что мы делаем:

1. Создаем новую внешнюю обработку и указываем сведения в модуле объекта:

Также в модуле объекта пишем две процедуры:

2. Переходим к созданию основной формы обработки, она нам понадобится только для исполнения процедур:

  • Добавим параметры к форме, обязательно в свойствах параметров указать "Ключевой параметр", после этого параметры выделятся жирным шрифтом

  • В модуле основной формы пишем следующий код:
  • Создаем еще одну форму, и назовем ее "ФормаВвода", разместим на ней реквизит "НазваниеПечатнойФормы":

  • И на команду "Печать" добавим следующий код:

Данная печатная форма тестировалась в конфигурации 1с Бухгалтерия предприятия 3.0 (8.3.10.2561).

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

Специальные предложения

См. также

Процедура ПриКомпоновкеРезультата 298

26.07.2019 16941 7 vasilev2015 54

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

Вам нравятся запросы в 1С? 14

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

03.07.2019 11979 1 m-rv 79

1С:Ассемблер. Немного летнего веселья! 315

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

21.06.2019 16978 53 Evil Beaver 116

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

Простые примеры сложных отчетов на СКД 276

Подписи в отчете. Особенности соединения наборов: как соединить несоединяемое. Остатки на дату и обороты по месяцам в одном отчете. Курс валюты на каждую дату без группировок и соединений в запросе. Отчет с произвольными колонками и с произвольной последовательностью. "Неадекватный отчет".

12.06.2019 16756 15 Hatson 22

Безопасная работа с транзакциями во встроенном языке 191

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

25.03.2019 18634 8 tormozit 44

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Акт о передаче в производство (вводе в эксплуатацию) малоценных предметов к документу Требование-накладная 0

Дополнительная печатная форма "Акт о передаче в производство (вводе в эксплуатацию) малоценных предметов " к документу "Требование накладная". БП 3.0

27.02.2019 1946 1 xxl_1 0

Баг или фича? Неожиданное поведение платформы 172

Рассмотрим несколько случаев неожиданного поведения платформы 1С, а также что с этим можно cделать.

18.02.2019 14472 32 YPermitin 88

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX 172

Тестируем возможности HTML в новой версии 8.3.14 платформы на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX.

29.01.2019 16728 66 Synoecium 37

Работа с публикациями "Инфостарт" 14

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

13.09.2018 11186 10 RocKeR_13 16

Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо

Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком – советами по переносу и рекомендациями настройки программ.

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 66

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

09.08.2018 17924 23 informa1555 26

Работа с данными выбора 43

В управляемом интерфейсе заложена мощная возможность описывать связи реквизитов формы через параметры. Установка параметров связей позволяет ограничить выбор данных так, чтобы целостность данных была обеспечена на этапе ввода. Однако без дополнительного программирования задать можно только самые простые связи. Такие условия связи, как зависимость от реквизита через точку или зависимость через дополнительное отношение, заданное в регистре сведений – уже задать без программирования не получится.

17.07.2018 25587 15 kalyaka 15

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) – автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

HTTP Сервисы: Путь к своему сервису. Часть 1 290

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

15.07.2018 45625 17 dsdred 24

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

01.06.2018 21360 86 m-rv 57

Новогодние скидки на авторское ПО Промо

В преддверии праздника в Маркетплейсе на Инфостарт действует скидка на все платные авторские программы. Размер скидок начинается от 10%. Советуем не откладывать покупки, многие наши партнеры повышают цены на свои продукты именно в начале нового года.

Полезные примеры составления схемы компоновки данных #2 183

Еще один набор примеров как решить частные задачи в СКД

22.05.2018 21366 10 SITR-utyos 13

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному 242

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

10.05.2018 30682 28 dsdred 34

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия – управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия – 5000 рублей. Цена действительна до 26.12.2019.

Как выполнить отчет на СКД через COM и получить данные отчета? 86

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

08.05.2018 19583 10 wowik 3

Работа со схемой запроса 176

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

24.04.2018 31120 75 kalyaka 34

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

Заполняем по шаблону (по умолчанию) 70

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

08.02.2018 19264 20 mvxyz 17

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов 124

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

01.02.2018 27017 62 rpgshnik 46

Базовый курс по разработке мобильных 1C-приложений для Andro >Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула 8

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

29.12.2017 25498 21 agent00mouse 0

Статья отображает частное мнение автора по данному вопросу и не претендует на истину в последней инстанции. Поэтому если кто-то может предложить иные способы решения данной проблемы, можете писать их в комментах)

Видеоверсию данной статьи можете посмотреть тут: http://youtu.be/9JlR-2rNW6o

Поставим задачу: вывести счет на оплату покупателя внешний с дополнительным комментарием.

Первый метод.Вывод табличного документа.

Данный метод можно назвать довольно топорным, но зато быстрым и не требующим каких-то особых дополнительных движений. Мы просто получаем табличный документ счета, и выводим его на экран.

Для описания этого метода возьмем обработку СчетНаОплатуПокупателюВнешний.e pf из предыдущей моей статьи. Добавим реквизит обработки: Комментарий, тип строка(100).

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

Также у формы создадим параметр «ОбъектыНазначения» тип«Произвольный» (сделайте его ключевым)

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

Теперь перейдем в модуль формы и создадим на сервере Функцию ПечатьСерверная .

&НаСервере
Функция ПечатьСерверная ()

КонецФункции
&НаКлиенте
Процедура Печать ( Команда )

В функции ПечатьСерверная , создадим переменную МассивДокументов , в которую запишем параметр ОбъектыНазаначения .

МассивДокументов = Параметры . ОбъектыНазначения ;

Получим объект обработки.

ЭтотОбъектОбработка = РеквизитФормыВЗначение ("Объект");

Теперь перейдем в модуль обработки. И внесем кое какие изменения в уже написанный код.

Первым шагом, в функции СведенияОВнешнейОбработке() , в вызове процедуре ДобавитьКоманду исправим четвертый параметр – Использование,на « ОткрытиеФормы ». Я не буду пояснять что значит данный параметр, кому непонятно можете посмотреть предыдущую статью (ссылка). Также я поменяю второй параметр, что бы удобнее было отличать формы.

ДобавитьКоманду ( Команды ,"Счет на оплату (внешняя печатная формас выводом формы)",
"СчетНаОплатуВнешний",
"ОткрытиеФормы",
Ложь,
"ПечатьMXL");

Теперь перейдем в процедуру Печать, сделаем функцией, и оставим только первый параметр МассивОбъектов

Функция Печать ( МассивОбъектов ) Экспорт
ПараметрыВывода . ДоступнаПечатьПоКомплектно = Истина ;

Если УправлениеПечатью . НужноПечататьМакет ( КоллекцияПечатныхФорм , "СчетНаОплатуВнешний") Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );
УправлениеПечатью . ВывестиТабличныйДокументВКоллекцию ( КоллекцияПечатныхФорм , "СчетНаОплатуВнешний", "Счет на оплату",
ПечатьСчетаНаОплату ( ТаблицаСведенийСчетНаОплату , ОбъектыПечати ),,"ПФ_MXL_СчетЗаказ");
КонецЕсли;

ОбщегоНазначенияБП . ЗаполнитьДополнительныеПараметрыПечати ( МассивОбъектов , КоллекцияПечатныхФорм , ОбъектыПечати , ПараметрыВывода );
КонецФункции

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

Должен получиться следующий код:

Функция Печать ( МассивОбъектов ) Экспорт

ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );

ТабДок = ПечатьСчетаНаОплату ( ТаблицаСведенийСчетНаОплату , ОбъектыПечати );

Поскольку параметр объекты печати является списком значений,содержащим распечатываемые документ(справочники), то создадим данный список, и заполним его объектами из массива и возвратим табличный документ.

Функция Печать ( МассивОбъектов ) Экспорт

ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );

ОбъектыПечати = Новый СписокЗначений ;
ОбъектыПечати . ЗагрузитьЗначения ( МассивОбъектов );

ТабДок = ПечатьСчетаНаОплату ( ТаблицаСведенийСчетНаОплату , ОбъектыПечати );
Возврат ТабДок ;
КонецФункции

Теперь изменим макет, добавив комментарий в подвал счета.

Осталось в функции ПечатьСчетаНаОплату у соответствующей области макета соответствующему параметру присвоить реквизит обработки Комментарий .

ОбластьМакета . Параметры . Комментарий = Комментарий ;

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

Заканчиваем работу с модулем обработки и переходим в модуль формы. В функцию ПечатьСерверная()

В этой функции мы уже получили объект обработки, теперь вызовем экспортную функции объекта Печать() , которая возвращает табличный документ. В данную функцию мы передадим МассивОбъектов . Пусть функция ПечатьСерверная() возвращает табличный документ, который был создан функций Печать() .

ТабДок = ЭтотОбъектОбработка . Печать ( МассивДокументов );
Возврат ТабДок ;
КонецФункции

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

Сохраняем печатную форму и добавляем в дополнительные отчеты и обработки конфигурации.

Перейдем в документ, выберем данную печатную форму.

Выйдет форма, в которой мы заполним поле комментарий.

Нажимаем печать и выходит табличный документ.

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

То изучайте вторую и третью часть этой статьи.

Второй метод. Использованиедополнительных сведений документа.

У всех конфигурации, разработанных при использованииБСП, почти у каждого документа есть интерфейсдополнительных сведений, в которые пользователь может вносить любую информацию(причем даже тогда, когда документ закрыт на редактирование). В эти сведения можно записывать дополнительнуюинформацию, которая требуется в печатной форме. Сейчас мы в демо конфигурации1С Бухгалтерия предприятия 3.0 Базовая создадим новое дополнительное сведение для документа СчетНаОплатуПокупателю , назовемего КомментарийДополнительный , тип Строка(100).

Для этого заходим в список счетов на оплату покупателю инажимаем кнопку дополнительные сведения

Откроется форма Дополнительных сведений, пока она пустая,т.к. нет ни каких сведений привязанных к данному документу.

Что бы создать их заходим в Все действия – Изменить составдополнительных сведений.

Откроется форма дополнительных сведений, в которой нажимаемна кнопку Создать , после появится форма нового дополнительного сведения.

Пишем наименование КомментарийДополнительный, тип значениявыбираем строка. И записываем новое дополнительное сведение.

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

Теперь нам осталось узнать под каким именем данноедополнительное сведение сохранилось в плане видов характеристик « Дополнительные реквизиты и сведения ».

Зайдем в него через меню «Все функции».

Название выделенное на рисунке и есть полное название вновьсозданного дополнительного сведения «КомментарийДополнительный (Счет на оплатупокупателю)» . Запомните его илисохраните куда-нибудь.

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

Как и в предыдущей части, за основу мы будем брать обработкуиз моей предыдущей статьи.

Исправим в процедуре сведения СведенияОВнешнейОбработке() наименование параметра регистрации и представление команды, что бы можно былоотличить нашу новую обработку.

Функция СведенияОВнешнейОбработке () экспорт

ПараметрыРегистрации = Новый Структура ;
ПараметрыРегистрации . Вставить ("Вид", "ПечатнаяФорма");
ПараметрыРегистрации . Вставить ("Назначение", ПолучитьНазначениеОбработки ());
ПараметрыРегистрации . Вставить ("Наименование", "Счет на оплату ВНЕШНИЙДОП СВЕДЕНИЯ");
ПараметрыРегистрации . Вставить ("Версия", "1.0");
ПараметрыРегистрации . Вставить ("Информация", "Счет на оплату (внешняяпечатная форма)");
ПараметрыРегистрации . Вставить ("БезопасныйРежим",Истина);

ДобавитьКоманду ( Команды ,"Счет на оплату (внешняя печатная формас исп. доп. сведений)",
"СчетНаОплатуВнешний",
"ВызовСерверногоМетода",
Ложь,
"ПечатьMXL");

ПараметрыРегистрации . Вставить ("Команды", Команды );
Возврат ПараметрыРегистрации ;

Теперь создадим функцию, которая получает по ссылке надокумент, и по ссылке на доп сведение значения. Кто не знает, поясню, чтозначения доп сведений в БСП хранятся в регистре сведений «ДополнительныеСведения»

Где в измерении Объект хранится ссылка на документ, визмерении Свойство – ссылка на план видов характеристик Дополнительные сведенияи реквизиты, а в ресурсе Значение – значение данного сведения для данногодокумента.

Посмотрите на состав регистра в нашем случае.

Поэтому создадим функцию в которую будем передавать массивдокументов и массив дополнительных сведений, а возвращать она будетсоответствующую выгрузку запроса.

Функция ПолучитьДопСведения ( Знач МассивДокументов , Знач МассивДопСведений )

Запрос = Новый Запрос ;
Запрос . Текст = "ВЫБРАТЬ
| ДополнительныеСведения.Объект КАК Документ,
| ДополнительныеСведения.Свойство КАК ДопСведение,
| ДополнительныеСведения.Значение
|ИЗ
| РегистрСведений.ДополнительныеСведения КАКДополнительныеСведения
|ГДЕ
| ДополнительныеСведения.Объект В(&Объект)
| И ДополнительныеСведения.СвойствоВ(&Свойство)" ;
Запрос . УстановитьПараметр ("Объект", МассивДокументов );
Запрос . УстановитьПараметр ("Свойство", МассивДопСведений );

Возврат запрос . Выполнить (). Выгрузить ();

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

МассивДопСведений = Новый Массив ;

МассивДопСведений . Добавить ( ПланыВидовХарактеристик . ДополнительныеРеквизитыИСведения . НайтиПоНаименованию ("КомментарийДополнительный (Счет наоплату покупателю)

ТаблицаДопСвойств = ПолучитьДопСведения ( МассивОбъектов , МассивДопСведений );

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

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

Функция ПечатьСчетаНаОплату ( СведенияСчетаНаОплату , ОбъектыПечати , ТаблицаДопСвойств , СПечатью = Ложь) Экспорт

Если УправлениеПечатью . НужноПечататьМакет ( КоллекцияПечатныхФорм , "СчетНаОплатуВнешний") Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );
УправлениеПечатью . ВывестиТабличныйДокументВКоллекцию ( КоллекцияПечатныхФорм , "СчетНаОплатуВнешний", "Счет на оплату",
ПечатьСчетаНаОплату ( ТаблицаСведенийСчетНаОплату , ОбъектыПечати , ТаблицаДопСвойств ),,"ПФ_MXL_СчетЗаказ");
КонецЕсли;

Теперь добавим в макет новый параметр «Комментарий»

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

ОбластьМакета = Макет . ПолучитьОбласть ("ПодвалСчета");

ОбластьМакета . Параметры . ФИОРуководителя = СведенияОДокументе . РуководительФИО ;
ОбластьМакета . Параметры . ФИОБухгалтера = СведенияОДокументе . ГлавныйБухгалтерФИО ;
//Получим значение допсвойство для данного документа внесем изменения в этот участок кода
//конецизменений
ЗаполнитьЗначенияСвойств ( ОбластьМакета . Параметры , СведенияОДокументе );

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

//Получимзначение доп свойства для данного документа

ДопСведение = ПланыВидовХарактеристик . ДополнительныеРеквизитыИСведения . НайтиПоНаименованию ("КомментарийДополнительный (Счет наоплату покупателю)");
//

После этого создаем структуру с полями Документ иДопСведение, в которую вставим ссылку на наш документ и ссылку на найденноедополнительное сведение.

НоваяСтруктура = Новый Структура ;
НоваяСтруктура . Вставить ("Документ", СведенияОДокументе . Документ );
НоваяСтруктура . Вставить ("ДопСведение", ДопСведение );

Ищем в таблице значений ТаблицаДопСвойств строки по данномуотбору.

МассивЗначения = ТаблицаДопСвойств . НайтиСтроки ( НоваяСтруктура );

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

Если МассивЗначения . Количество () <> 0 тогда

ЗначениеДопСведения = МассивЗначения [0]. Значение ;

ОбластьМакета . Параметры . Комментарий = ЗначениеДопСведения ;
КонецЕсли;

Осталось сохранить обработку, добавить ее в дополнительныепечатные формы и посмотреть как выйдет наш счет.

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

Наименование Файл Версия Размер
Читайте также:  Телефоны с маленьким sar
Оцените статью
Добавить комментарий

Adblock detector