Guest User

Untitled

a guest
Oct 13th, 2015
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.64 KB | None | 0 0
  1. Функция СведенияОВнешнейОбработке() Экспорт
  2. ПараметрыРегистрации = Новый Структура;
  3. МассивНазначений = Новый Массив;
  4. МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
  5.  
  6. ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта,
  7. //ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
  8.  
  9.  
  10. ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
  11. ПараметрыРегистрации.Вставить("Наименование", "ПересчетТоваров внешняя"); //имя под которым обработка
  12. // будет зарегестрирована в справочнике внешних обработок
  13. ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
  14. ПараметрыРегистрации.Вставить("Версия", "1.0");
  15. ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу Пересчет товаров");
  16.  
  17. ТаблицаКоманд = ПолучитьТаблицуКоманд();
  18.  
  19.  
  20. ДобавитьКоманду(ТаблицаКоманд, "Пересчет товаров внешняя", "ЗаданиеПересчетТоваров1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
  21. ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
  22.  
  23. Возврат ПараметрыРегистрации;
  24. КонецФункции
  25.  
  26. Функция ПолучитьТаблицуКоманд()
  27. Команды = Новый ТаблицаЗначений;
  28. Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание
  29. //печ.формы для пользователя
  30.  
  31. Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
  32. Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
  33. Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  34. Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  35. Возврат Команды;
  36. КонецФункции
  37.  
  38. Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  39.  
  40. НоваяКоманда = ТаблицаКоманд.Добавить();
  41. НоваяКоманда.Представление = Представление;
  42. НоваяКоманда.Идентификатор = Идентификатор;
  43. НоваяКоманда.Использование = Использование;
  44. НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  45. НоваяКоманда.Модификатор = Модификатор;
  46.  
  47. КонецПроцедуры
  48.  
  49. Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
  50.  
  51. // Если например в печатную форму необходимо вставить Организацию, тогда
  52. Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
  53. ПараметрыПечати = Новый Структура;
  54. //ПараметрыПечати.Вставить("Организация",Организация);
  55. // Если например в печатную форму необходимо вставить Организацию, тогда
  56.  
  57.  
  58.  
  59. Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаданиеПересчетТоваров1") Тогда
  60. УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаданиеПересчетТоваров1", "Пересчет товаров внешняя1", СформироватьПечатнуюФормуТТН(МассивОбъектов[0], ОбъектыПечати,ПараметрыПечати));
  61. КонецЕсли;
  62.  
  63. КонецПроцедуры // Печать()
  64.  
  65.  
  66.  
  67. Функция СформироватьПечатнуюФормуТТН(Об,ОбъектыПечати,ПараметрыПечати) Экспорт
  68. ТабДок = новый ТабличныйДокумент;
  69. ПараметрыПечати = Новый Структура("ВыводитьУслуги", Истина);
  70. //ТекДок = МассивОбъектов[0];
  71. Макет = ПолучитьМакет("ЗаданиеПересчетТоваров1");
  72. ВыводитьГрадацииКачества = Ложь;//ПараметрыПечати.ВыводитьГрадацииКачества;
  73. ВыводитьРезультатыПересчета = Ложь;//ПараметрыПечати.ВыводитьРезультатыПересчета;
  74.  
  75. ТекДок = Новый ТабличныйДокумент;
  76. ТекДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_1";
  77.  
  78. ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
  79.  
  80. Запрос = новый запрос;
  81. //Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
  82. Запрос.Текст = "ВЫБРАТЬ
  83. | РеализацияТоваровУслуг.Контрагент КАК Кон,
  84. | РеализацияТоваровУслуг.Контрагент.Наименование,
  85. | РеализацияТоваровУслуг.АдресДоставки,
  86. | КонтрагентыКонтактнаяИнформация.НомерТелефона
  87. |ИЗ
  88. | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
  89. | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
  90. | ПО РеализацияТоваровУслуг.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
  91. |ГДЕ
  92. | РеализацияТоваровУслуг.Ссылка В(&ТекДок)";
  93. Запрос.УстановитьПараметр("ТекДок",Об);
  94.  
  95. Выборка = Запрос.Выполнить().Выбрать();
  96.  
  97. Пока выборка.Следующий() цикл
  98. ОбластьШапки.Параметры.КонтрагентНаименование = Выборка.КонтрагентНаименование;
  99. Если ЗначениеЗаполнено(Выборка.АдресДоставки) тогда
  100. ОбластьШапки.Параметры.АдресДоставки = Выборка.АдресДоставки
  101. иначе ОбластьШапки.Параметры.АдресДоставки = ВАдресКон(Выборка.Кон);
  102. КонецЕсли;
  103. ОбластьШапки.Параметры.телефон = Выборка.НомерТелефона;
  104. КонецЦикла;
  105.  
  106.  
  107. возврат ТабДок;
  108.  
  109. КонецФункции
  110.  
  111. Функция ВАдресКон(Кон)
  112. Адрес = "";
  113. Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
  114. Запрос = Новый Запрос();
  115. Запрос.УстановитьПараметр("Контрагент", Кон);
  116. Запрос.УстановитьПараметр("Вид", Вид);
  117. Запрос.Текст =
  118. "ВЫБРАТЬ
  119. | Таб.Представление КАК Адрес
  120. |ИЗ
  121. | Справочник.Контрагенты.КонтактнаяИнформация КАК Таб
  122. |ГДЕ
  123. | Таб.Ссылка = &Контрагент
  124. | И Таб.Вид = &Вид";
  125. Выборка = Запрос.Выполнить().Выбрать();
  126. Если Выборка.Следующий() Тогда
  127. Адрес = Выборка.Адрес;
  128. КонецЕсли;
  129. Возврат Адрес;
  130. КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment