fbpx
  • slide microsft
  • slide aida64
  • Разгон, изменение и прошивка BIOS видеокарт Nvidia
  • Новый Unreal Tournament 4 будет распространяться бесплатно
  • Старый новый
  • Огромное облачное хранилище Yunpan 360 на 36Тб
  • Нововведения в новой мобильной ОС Android 4.3
  • Запуск VMWare ESXi Customizer на несовместимой ОС
  • Сброс пароля пользователя на MacOS
  • OneWeb - глобальный проект интернет доступа
  • Dj Tro - For my sole love [2002]
  • Скрипт для выгрузки базы 1С в DT
  • Pinnacle и телепатический модуль
  • Zalman начала процедуру банкротства
  • Lineage OS не будет предоставлять пользователям root-права
  • Релиз KDE 4.8
  • Новый 3D алгоритм симуляции воды
  • Увеличить ТИЦ
  • Dirt Rally будет работает на Linux
  • Грядущий новый формат изображений от Google
  • Автоматический вход в Windows без ввода пароля
  • Что означают тесты в AIDA64
  • Домашний медиа-сервер своими руками. Часть 1
  • NVIDIA представила технологию симуляции и рендеринга реалистичной травы - TurfEffects
  • Тормозит приложение почта (mail) на iMac
  • Функция хеширования (конвертирования) строки в MD5 для 1С
  • Сервис VirusTotal и его возможности
  • Свои подсказки для передаваемых параметров
  • Падение сервера 1С после переименования компьютера
июнь27

Создание внешней печатной формы по стандарту БСП (тонкий клиент)

Троцкий Юрий

Создание внешней печатной формы по стандарту БСП (тонкий клиент)

Создание внешней печатной формы для тонкого клиента

тонкий клиент

 

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

Если вы хотите создать внешнюю печатную форму для тонкого клиента, подключить его родными средствами конфигурации и при этом не городить самому дополнительный код для ее вывода, для конфигураций, построенных на Библиотеке Стандартных Подсистем (БСП), например таких как УПП 2.0, БП 3.0, УТ 11, УНФ - ниже приведен пример.

  1. Создаем внешнюю обработку
  2. В Макетах создаем "НашМакет" 
  3. Дальше тот самый особенный момент - в модуле объекта создаем следующие процедуры и функции:
Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя"); //Указываем объект куда будет подключена внешняя печатная форма

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Спецификация");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Спецификация");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "НазваниеНашейПечатнойФормы", "НазваниеНашейПечатнойФормы", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); //Пишем как будет отображаться название нашей печатной формы в предприятии
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции

 

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции

 

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

 

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "НашМакет", "НашМакет", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); //Смотрим внимательно на НашМакет
КонецПроцедуры 

 

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_НашМакет"; //Смотрим внимательно на название НашМакет
МакетОбработки = ПолучитьМакет("НашМакет");  //Тут пишем имя своего макета
//шапка как пример
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ОбластьШапка.Параметры.ДатаДокумента = Формат(СсылкаНаДокумент.Дата,"ДФ=dd.MM.yyyy");
ОбластьШапка.Параметры.получатель = СсылкаНаДокумент.Контрагент;
ОбластьШапка.Параметры.телефон = ПолучитьКОнтактнуюинформацию(СсылкаНаДокумент.Контрагент,"Телефон");
ОбластьШапка.Параметры.адрес = ?(ЗначениеЗаполнено(ПолучитьКОнтактнуюинформацию(СсылкаНаДокумент.Контрагент,"Факт. адрес")),ПолучитьКОнтактнуюинформацию(СсылкаНаДокумент.Контрагент,"Факт. адрес"),ПолучитьКОнтактнуюинформацию(СсылкаНаДокумент.Контрагент,"Юр. адрес"));;
ОбластьШапка.Параметры.ВалютаДокумента = СсылкаНаДокумент.ВалютаДокумента;
ТабличныйДокумент.Вывести(ОбластьШапка);
//И далее заполняем свой макет
Возврат ТабличныйДокумент; 
КонецФункции

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

 

На этом все.

P.S. Так-же мы предоставлям надежное обланое хранилище для ваших баз 1С. Подробнее...

Оставить комментарий

Пожалуйста, войдите, чтобы комментировать.