fbpx
  • slide 1C cloud 3
  • slide microsft
  • slide aida64
  • Огромное облачное хранилище Yunpan 360 на 36Тб
  • Microsoft прекращает развитие графического редактора Paint
  • Microsoft предлагает заменить маму смартфоном
  • Новый 3D алгоритм симуляции воды
  • Тормозит приложение почта (mail) на iMac
  • Бесплатное безграничное облачное хранилище Hive
  • Что нас ждет в грядущих драйверах NVidia 300.**
  • Свет увидел ролик грядущего DOOM4
  • Вышла VMware vSphere 6.5
  • С Днем Программиста 2012
  • Обзор игры EVE Online
  • Дергается курсор мышки в Windows 7. Решение
  • Warframe. Или как закалялась сталь.
  • Активация Windows 8 v.2
  • Сравнение графики PC и PS4 на новом движке Unreal Engine 4
  • Apple лишает работоспособности iPhone и iPad после неофициального ремонта
  • Сюжетный трейлер Mortal Kombat X
  • Как начать вести учет в малом бизнесе ?
  • Создание своего Ubuntu Live CD
  • Sandboxie. Работаем в
  • Медленная скорость Интернет/RDP соединения Windows
  • У iPhone больше уязвимостей, чем у всех остальных.
  • С Днем Программиста 2017
  • Использование LiveCD для восстановления пароля суперпользователя root в Linux
  • Активация Windows 8
  • Простая выгрузка/загрузка данных между 1С
  • Новое на сайте tro.net.ua
июнь27

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

Троцкий Юрий

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

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

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

 

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

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

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

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

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

 

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

 

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

 

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

 

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

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

 

На этом все.

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

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

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