fbpx
  • slide microsft
  • slide aida64
  • Активация Windows 8 v.2
  • Увеличить ТИЦ
  • C Днем Системного Администратора !
  • Ролик про Крым
  • Семь мифов о сисадминах
  • Игрушка вертолет Angry Birds
  • Немного о глобальных аватарах
  • Установка драйвера ATI Radeon 9000 на Windows 7
  • Сравнение графики PC и PS4 на новом движке Unreal Engine 4
  • Бездонный телефон
  • Уникальный игровой сервис OnLive
  • Что такое интернет
  • Неожиданный предмет внутри коробки с монитором AOC F22+
  • Поднимаем FPS в играх в Windows 10
  • Pinnacle и телепатический модуль
  • Бесплатное безграничное облачное хранилище Hive
  • Создание своего Ubuntu Live CD
  • Windows 8.1 вышла в свет
  • Увеличение размера виртуального и системного диска в Windows Server без остановки VMWare
  • Активация Windows 8
  • Дергается курсор мышки в Windows 7. Решение
  • С Днем системного администратора !!!
  • Динамическая толщина бумаги
  • Создание загрузочной/установочной USB-Флешки c Linux
  • Ошибка 0x8000000000000002. Решение.
  • online эмулятор Windows 1.01
  • Скрипт для выгрузки базы 1С в DT
Jun27

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

Троцкий Юрий

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

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

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

 

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

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

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

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

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

 

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

 

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

 

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

 

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

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

 

На этом все.

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

Leave a comment

Please login to leave a comment.