Guest User

Untitled

a guest
Oct 13th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.63 KB | None | 0 0
  1.  
  2. Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
  3. ТабличныйДокумент = СформироватьПечатнуюФормуТТН(МассивОбъектовНазначения);
  4. УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
  5. КоллекцияПечатныхФорм,
  6. "1-T",
  7. "1-T (Товарно-транспортная накладная) внешняя",
  8. ТабличныйДокумент
  9. );
  10. КонецПроцедуры
  11.  
  12.  
  13. //
  14. // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ РЕГИСТРАЦИИ ОБРАБОТКИ
  15. //
  16.  
  17. // Сервисная экспортная функция. Вызывается в основной программе при регистрации обработки в информационной базе
  18. // Возвращает структуру с параметрами регистрации
  19. //
  20. // Возвращаемое значение:
  21. // Структура с полями:
  22. // Вид - строка, вид обработки, один из возможных: "ДополнительнаяОбработка", "ДополнительныйОтчет",
  23. // "ЗаполнениеОбъекта", "Отчет", "ПечатнаяФорма", "СозданиеСвязанныхОбъектов"
  24. // Назначение - Массив строк имен объектов метаданных в формате:
  25. // <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>].
  26. // Например, "Документ.СчетЗаказ" или "Справочник.*". Параметр имеет смысл только для назначаемых обработок, для глобальных может не задаваться.
  27. // Наименование - строка - Наименование обработки, которым будет заполнено наименование элемента справочника по умолчанию.
  28. // Информация - строка - Краткая информация или описание по обработке.
  29. // Версия - строка - Версия обработки в формате “<старший номер>.<младший номер>” используется при загрузке обработок в информационную базу.
  30. // БезопасныйРежим - булево - Принимает значение Истина или Ложь, в зависимости от того, требуется ли устанавливать или отключать безопасный режим
  31. // исполнения обработок. Если истина, обработка будет запущена в безопасном режиме.
  32. //
  33. //
  34. Функция СведенияОВнешнейОбработке() Экспорт
  35. ОбъектыНазначенияФормы = Новый Массив;
  36. ОбъектыНазначенияФормы.Добавить("Документ.РеализацияТоваровУслуг");
  37. ПараметрыРегистрации = ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы);
  38. ПараметрыРегистрации.Версия = "1.0";
  39. ТаблицаКоманд = ПолучитьТаблицуКоманд();
  40.  
  41. ДобавитьКоманду(ТаблицаКоманд,
  42. "1-T (Товарно-транспортная накладная)", // Представление команды в пользовательском интерфейсе
  43. "1-T", // Уникальный идентификатор команды
  44. );
  45. ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
  46. Возврат ПараметрыРегистрации;
  47. КонецФункции
  48. //
  49. // ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ РЕГИСТРАЦИИ ОБРАБОТКИ
  50. //
  51. // Формирует структуру с параметрами регистрации регистрации обработки в информационной базе
  52. //
  53. // Параметры:
  54. // ОбъектыНазначенияФормы - Массив - Массив строк имен объектов метаданных в формате:
  55. // <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>].
  56. // или строка с именем объекта метаданных
  57. // НаименованиеОбработки - строка - Наименование обработки, которым будет заполнено наименование элемента справочника по умолчанию.
  58. // Необязательно, по умолчанию синоним или представление объекта
  59. // Информация - строка - Краткая информация или описание обработки.
  60. // Необязательно, по умолчанию комментарий объекта
  61. // Версия - строка - Версия обработки в формате “<старший номер>.<младший номер>” используется при загрузке обработок в информационную базу.
  62. //
  63. //
  64. // Возвращаемое значение:
  65. // Структура
  66. //
  67. Функция ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы = Неопределено, НаименованиеОбработки = "", Информация = "", Версия = "1.0")
  68.  
  69. Если ТипЗнч(ОбъектыНазначенияФормы) = Тип("Строка") Тогда
  70. ОбъектНазначенияФормы = ОбъектыНазначенияФормы;
  71. ОбъектыНазначенияФормы = Новый Массив;
  72. ОбъектыНазначенияФормы.Добавить(ОбъектНазначенияФормы);
  73. КонецЕсли;
  74.  
  75. ПараметрыРегистрации = Новый Структура;
  76. ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
  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. //Для таких команд должен содержать строку ПечатьMXL
  125. Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  126.  
  127. Возврат Команды;
  128.  
  129. КонецФункции
  130.  
  131. // Вспомогательная процедура.
  132. //
  133. Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ВызовСерверногоМетода", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
  134.  
  135. НоваяКоманда = ТаблицаКоманд.Добавить();
  136. НоваяКоманда.Представление = Представление;
  137. НоваяКоманда.Идентификатор = Идентификатор;
  138. НоваяКоманда.Использование = Использование;
  139. НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  140. НоваяКоманда.Модификатор = Модификатор;
  141.  
  142. КонецПроцедуры
  143. Функция СформироватьПечатнуюФормуТТН(МассивОбъектов) Экспорт
  144. ТабДок = новый ТабличныйДокумент;
  145. ПараметрыПечати = Новый Структура("ВыводитьУслуги", Истина);
  146. ТекДок = МассивОбъектов[0];
  147. Макет = ПолучитьМакет("ПФ_MXL_ТТН");
  148.  
  149. ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
  150.  
  151. Запрос = новый запрос;
  152. Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
  153. Запрос.Текст = "ВЫБРАТЬ
  154. | РеализацияТоваровУслуг.Контрагент КАК Кон,
  155. | РеализацияТоваровУслуг.Контрагент.Наименование,
  156. | РеализацияТоваровУслуг.АдресДоставки,
  157. | КонтрагентыКонтактнаяИнформация.НомерТелефона
  158. |ИЗ
  159. | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
  160. | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
  161. | ПО РеализацияТоваровУслуг.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
  162. |ГДЕ
  163. | РеализацияТоваровУслуг.Ссылка В(&ТекДок)";
  164. Запрос.УстановитьПараметр("ТекДок",ТекДок);
  165.  
  166. Выборка = Запрос.Выполнить().Выбрать();
  167.  
  168. Пока выборка.Следующий() цикл
  169. ОбластьШапки.Параметры.КонтрагентНаименование = Выборка.КонтрагентНаименование;
  170. Если ЗначениеЗаполнено(Выборка.АдресДоставки) тогда
  171. ОбластьШапки.Параметры.АдресДоставки = Выборка.АдресДоставки
  172. иначе ОбластьШапки.Параметры.АдресДоставки = ВАдресКон(Выборка.Кон);
  173. КонецЕсли;
  174. ОбластьШапки.Параметры.телефон = Выборка.НомерТелефона;
  175. КонецЦикла;
  176.  
  177.  
  178. возврат ТабДок;
  179.  
  180. КонецФункции
  181.  
  182. Функция ВАдресКон(Кон)
  183. Адрес = "";
  184. Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
  185. Запрос = Новый Запрос();
  186. Запрос.УстановитьПараметр("Контрагент", Кон);
  187. Запрос.УстановитьПараметр("Вид", Вид);
  188. Запрос.Текст =
  189. "ВЫБРАТЬ
  190. | Таб.Представление КАК Адрес
  191. |ИЗ
  192. | Справочник.Контрагенты.КонтактнаяИнформация КАК Таб
  193. |ГДЕ
  194. | Таб.Ссылка = &Контрагент
  195. | И Таб.Вид = &Вид";
  196. Выборка = Запрос.Выполнить().Выбрать();
  197. Если Выборка.Следующий() Тогда
  198. Адрес = Выборка.Адрес;
  199. КонецЕсли;
  200. Возврат Адрес;
  201. КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment