- Научиться формировать печатные формы с помощью БСП:
- с выводом QR-кодов,
- с печатью комплекта документов,
- в формате .docx.
- Установить учебную платформу версии 8.3.22 или больше.
- Подготовить информационную базу, полученную по итогу выполнения домашнего задания к занятию 12-1.
- Решите описанные задачи в конфигураторе.
- Протестируйте решение в пользовательском режиме.
- В личном кабинете Нетологии отправьте на проверку один общий файл базы данных (.dt), содержащий решение по всем 3 задачам. Файл прикрепите в раздел «решение» в практическом задании.
По заданию заказчика вы реализуете печатные формы Анкета клиента и Транспортная накладная для документа Доставка.
У документа Доставка в форме документа и форме списка должны выводиться команды на печать Анкеты клиента и Траспортной накладной. При нажатии на команды должны формироваться печатные формы в соответствии с предоставленными макетами. В правом верхнем углу печатной формы должен выводиться QR-код с внутренней ссылкой на документ. Должна быть предусмотрена массовая печать документов.
- Ознакомьтесь с шаблонами печатных форм Анкеты клиента и Товарной накладной.
- Создайте макеты для документа Доставка в соответствии с шаблонами.
- В общем модуле УправлениеПечатьюПереопределяемый в методе ПриОпределенииОбъектовСКомандамиПечати добавьте информацию о документе Доставка.
- В модуле менеджера документа Доставка реализуйте алгоритм вывода команд печати и алгоритм печати. В качестве образца можно использовать алгоритм из документа Заказ покупателя.
- Для вывода QR-кода в печатную форму:
- добавьте в макет в нужную область рисунок, задайте ему подходящее по смыслу имя;
- в алгоритме печати сформируйте QR-код:
ДанныеQRКода = ГенерацияШтрихкода.ДанныеQRКода(СсылкаНаДокумент, 1, 120);
- проверьте, что QR-код сформирован успешно и выведите его в документ:
Если НЕ ТипЗнч(ДанныеQRКода) = Тип("ДвоичныеДанные") Тогда ТекстСообщения = НСтр("ru = 'Не удалось сформировать QR-код. |Технические подробности см. в журнале регистрации.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения); Иначе КартинкаQRКода = Новый Картинка(ДанныеQRКода); Область.Рисунки.ИмяРисунка.Картинка = КартинкаQRКода; КонецЕсли;
- Запустите базу в пользовательском режиме.
- Убедитесь, что на форме документа и на форме списка документа Доставка в панели действий отображаются команды печати.
- Убедитесь, что печатные формы формируются корректно, в том числе формируется QR-код и работает множественная печать.
По заданию заказчика вы реализуете возможность печати Анкеты клиента и Транспортной накладной в виде комплекта документов одной кнопкой.
У документа Доставка в форме документа и форме списка должны выводиться команда Комплект документов. При нажатии на команды должен формироваться комплект документов, состоящий из Анкеты клиента и Транспортной накладной. Должна быть предусмотрена массовая печать документов.
Добавьте команду печати для вывода комплекта документов в модуле мендежера документа Доставка. В качестве образца можно использовать команду вывода комплекта из документа Заказ покупателя.
- Запустите базу в пользовательском режиме.
- Убедитесь, что на форме документа и на форме списка документа Доставка в панели действий отображается команда печати комплекта.
- Убедитесь, что печатные формы формируются корректно.
По заданию заказчика вы реализуете возможность печати Договора на доставку в формате .docx.
У документа Доставка в форме документа и форме списка должны выводиться команда Договор на доставку. При нажатии на команды должна формироваться печатная форма в формате .docx средствами БСП.
- Ознакомьтесь с шаблоном печатной формы Договор на доставку.
- Подготовьте на основе шаблона печатной формы макет для печати средствами БСП. Определите области и параметры.
- Добавьте в конфигурацию реквизиты, необходимые для заполнения полей печатной формы. Для части полей, если они на ваш взгляд нужны только для печатной формы и вряд ли будут использоваться для других функций, можно использовать подсистему Свойства (Использовать данную подсистему не обязательно, можно добавлять реквитзиты непосредственно в конфигурацию). То есть брать данные из соответствующего регистра или табличной части.
- В модуле менеджера реализуйте алгоритм для вывода команды для печати Договора на доставку.
- В процедуре Печать определите блок для печати в .docx, он будет отличаться от печати в mxl:
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ДоговорDOCX"); Если ПечатнаяФорма <> Неопределено Тогда ОфисныеДокументы = НапечататьДоговорDOCX(МассивОбъектов); ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Договор (MS Word)'"); ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы; КонецЕсли;
- Реализуйте функцию для печати договора:
Функция НапечататьДоговорDOCX(МассивОбъектов) // Создаём пустое соответствие для размещения печатных форм OpenXМL — результат функции ОфисныеДокументы = Новый Соответствие; // Готовим макет для формирования печатной формы OpenXML МакетДокумента = УправлениеПечатью.МакетПечатнойФормы("ПутьКМакету"); Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено); // Создаём структуру областей формируемой печатной формы OpenXМL ОписаниеОбластей = Новый Структура; УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Шапка", "Общая"); // Получаем данные для печати из базы данных // Функцию ДанныеДляПечатиДоговора необходимо разработать самостоятельно ДанныеДляПечати = ДанныеДляПечатиДоговора(МассивОбъектов); Для Каждого ДанныеДокумента Из ДанныеДляПечати Цикл // Готовим печатную форму в формате офисного документа ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет); Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Шапка"]); УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеДокумента); АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма); ОфисныеДокументы.Вставить(АдресХранилищаПечатнойФормы, Строка(ДанныеДокумента.Ссылка)); УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма); КонецЦикла; УправлениеПечатью.ОчиститьСсылки(Макет); Возврат ОфисныеДокументы; КонецФункции
Минимально, в договоре должны быть заполнены - Дата договора, Отправитель (Организация из документа), Перевозчик (Контрагент), их ИНН и КПП, а так же юридический и почтовый адрес
- Запустите базу в пользовательском режиме.
- Убедитесь, что на форме документа и на форме списка документа Доставка в панели действий отображается команда печати Договора.
- Убедитесь, что печатная форма формируется корректно.
- Зачёт — выполнены все задания, в выполненных заданиях нет противоречий и нарушения логики.
- На доработку — задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
Любые вопросы по решению задач задавайте в чате учебной группы.
Примерное время выполнения: 45–240 минут