Advertisement
Guest User

Untitled

a guest
Mar 25th, 2015
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.51 KB | None | 0 0
  1. Функция СведенияОВнешнейОбработке() Экспорт
  2.  
  3. СведенияОбОбработке = Новый Структура;
  4. // 1. Вид - вид обработки.
  5. // Тип данных - строка, допустимо одно из 6 значений.
  6. // Значения.
  7. // 1) Глобальные - "ДополнительнаяОбработка", "ДополнительныйОтчет"
  8. // 2) Назначаемые - "ЗаполнениеОбъекта", "Отчет", "ПечатнаяФорма" или "СозданиеСвязанныхОбъектов".
  9. СведенияОбОбработке.Вставить("Вид", "ПечатнаяФорма");
  10.  
  11. // 2. Назначение - объект, для которого назначается данная обработка,
  12. // Массив строк имен объектов метаданных.
  13. // Примеры значений массива - "Документ.АвансовыйОтчет" или "Справочник.*", где * - означает все объекта данного вида.
  14. // Для глобальных (не назначаемых) обработок параметр не имеет смысла.
  15. ОбъектыМетаданных = Новый Массив;
  16. ОбъектыМетаданных.Добавить("Документ.РеализацияТоваровУслуг");
  17. СведенияОбОбработке.Вставить("Назначение", ОбъектыМетаданных);
  18.  
  19. // 3. Наименование - название обработки, произвольное наименование
  20. // Тип данных - произвольная строка.
  21. // Данное наименование будет отображаться в списке дополнительных обработок.
  22. СведенияОбОбработке.Вставить("Наименование ", "Печать РасходнойНакладной");
  23.  
  24. // 4. Версия - номер версии обработки
  25. // Тип данных - строка в формате "ХХ.ХХ".
  26. // Обозначает версию данной обработки, данная версия будет отображаться в списке дополнительных отчетов и обработок.
  27. СведенияОбОбработке.Вставить("Версия ", "1.0");
  28.  
  29. // 5. БезопасныйРежим - режим контроля прав пользователя.
  30. // Тип данных - булево.
  31. СведенияОбОбработке.Вставить("БезопасныйРежим", Ложь);
  32.  
  33. // 6. Информация - краткое описание обработки.
  34. // Тип данных - строка.
  35. // Данное описание будет отображаться в списке дополнительных обработок.
  36. СведенияОбОбработке.Вставить("Информация", "Печать Расходной Накладной");
  37.  
  38. // 7. Команды - действия предоставляемые обработкой.
  39. // Тип данных - таблица значений.
  40. // Таблица содержит 5 колонок:
  41. // 1) Представление. Наименование команды в пользовательском интерфейсе;
  42. // 2) Идентификатор. Для печатных форм список макетов, для остальных обработок любая строка, уникальная для данной обработки.
  43. // 3) Использование. Строка, одно из значений -
  44. // - ОткрытиеФормы. Открывает форму обработки.
  45. // - ВызовКлиентскогоМетода. Вызов клиентского экспортного метода модуля формы
  46. // - ВызовСерверногоМетода. Вызов экспортного серверного метода модуля объекта.
  47. // Для внешних печатных форм нужно указывать последнее значение.
  48. // 4) ПоказыватьОповещение. Булево, нужно ли показывать оповещение при начале и окончании действия.
  49. // 5) Модификатор. Для внешних печатных форм должно содержаться значение "ПечатьMXL".
  50. ТаблицаКоманд = ПолучитьТаблицуКоманд();
  51. ДобавитьКоманду(ТаблицаКоманд, "Печать Расходная Накаладная", "ПФ_MXL_РасходнаяНакладная", "ВызовСерверногоМетода", Ложь, "ПечатьMXL" );
  52. СведенияОбОбработке.Вставить("Команды", ТаблицаКоманд);
  53.  
  54. Возврат СведенияОбОбработке;
  55.  
  56. КонецФункции // СведенияОВнешнейОбработке()
  57.  
  58. Функция ПолучитьТаблицуКоманд()
  59.  
  60. ТаблицаКоманд = Новый ТаблицаЗначений;
  61. ТаблицаКоманд.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  62. ТаблицаКоманд.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  63. ТаблицаКоманд.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  64. ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  65. ТаблицаКоманд.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  66.  
  67. Возврат ТаблицаКоманд;
  68.  
  69. КонецФункции
  70.  
  71. Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  72.  
  73. НоваяКоманда = ТаблицаКоманд.Добавить();
  74. НоваяКоманда.Представление = Представление;
  75. НоваяКоманда.Идентификатор = Идентификатор;
  76. НоваяКоманда.Использование = Использование;
  77. НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  78. НоваяКоманда.Модификатор = Модификатор;
  79.  
  80. КонецПроцедуры
  81.  
  82. Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты) Экспорт
  83.  
  84.  
  85.  
  86. КонецПроцедуры
  87.  
  88. Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено) Экспорт
  89.  
  90.  
  91. УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"ПФ_MXL_РасходнаяНакладная", "Заголовок табличного документа", СформироватьПечатнуюФормуРасходнаяНакладная(МассивОбъектов, ОбъектыПечати, Неопределено));
  92.  
  93. //Код на печать в документе //УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"РасходнаяНакладная","Расходная накладная",СформироватьПечатнуюФормуРасходнаяНакладная(МассивОбъектов, ОбъектыПечати, Неопределено),,"Документ.РеализацияТоваровУслуг.ПФ_MXL_РасходнаяНакладная");
  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. МассивПроверки = Новый Массив;
  131. Для Каждого Ссылка Из МассивОбъектов Цикл
  132. МассивПроверки.Добавить(Ссылка);
  133. КонецЦикла;
  134.  
  135. ДеревоОбъектов = ЗапросПоСкладам.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
  136.  
  137. Для Каждого ИспользованиеСерий Из ДеревоОбъектов.Строки Цикл
  138.  
  139. ЗапросПоТоварам = Новый Запрос;
  140. ЗапросПоТоварам.УстановитьПараметр("МассивОбъектов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Ссылка"));
  141. ЗапросПоТоварам.УстановитьПараметр("МассивСкладов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Склад"));
  142.  
  143. Если ИспользованиеСерий.ИспользоватьСерииНоменклатуры Тогда
  144.  
  145. ТекстЗапросаПоТоварам =
  146. "ВЫБРАТЬ
  147. | РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
  148. | РеализацияТоваровУслугТовары.Склад КАК Склад,
  149. | РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
  150. | РеализацияТоваровУслугТовары.Количество КАК Количество,
  151. | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
  152. | РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
  153. | РеализацияТоваровУслугТовары.Упаковка КАК Упаковка,
  154. | """" КАК Серия
  155. |ПОМЕСТИТЬ ТаблицаТоваров
  156. |ИЗ
  157. | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  158. |ГДЕ
  159. | РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
  160. | И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
  161. | И НЕ(РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
  162. | И РеализацияТоваровУслугТовары.СтатусУказанияСерий В (2, 4, 6, 8, 10))
  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. | МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (2, 4, 6, 8, 10)
  199. |;
  200. |
  201. |////////////////////////////////////////////////////////////////////////////////
  202. |ВЫБРАТЬ
  203. | ТаблицаТоваров.Ссылка,
  204. | ТаблицаТоваров.Склад,
  205. | СУММА(ТаблицаТоваров.КоличествоУпаковок) КАК КоличествоУпаковок,
  206. | СУММА(ТаблицаТоваров.Количество) КАК Количество,
  207. | ТаблицаТоваров.Номенклатура,
  208. | ТаблицаТоваров.Характеристика,
  209. | ТаблицаТоваров.Упаковка,
  210. | ВЫБОР
  211. | КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
  212. | ТОГДА NULL
  213. | ИНАЧЕ ТаблицаТоваров.Серия
  214. | КОНЕЦ КАК Серия
  215. |ПОМЕСТИТЬ СуммированнаяТаблицаТоваров
  216. |ИЗ
  217. | ТаблицаТоваров КАК ТаблицаТоваров
  218. |
  219. |СГРУППИРОВАТЬ ПО
  220. | ТаблицаТоваров.Ссылка,
  221. | ТаблицаТоваров.Склад,
  222. | ТаблицаТоваров.Номенклатура,
  223. | ТаблицаТоваров.Характеристика,
  224. | ТаблицаТоваров.Упаковка,
  225. | ВЫБОР
  226. | КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
  227. | ТОГДА NULL
  228. | ИНАЧЕ ТаблицаТоваров.Серия
  229. | КОНЕЦ
  230. |;
  231. |
  232. |////////////////////////////////////////////////////////////////////////////////
  233. |ВЫБРАТЬ
  234. | ТаблицаТоваров.Ссылка КАК Ссылка,
  235. | ТаблицаТоваров.Ссылка.Организация КАК Организация,
  236. | ТаблицаТоваров.Ссылка.Контрагент КАК Контрагент,
  237. | ТаблицаТоваров.Ссылка.Номер КАК Номер,
  238. | ТаблицаТоваров.Ссылка.Дата КАК Дата,
  239. | ТаблицаТоваров.Ссылка.Организация.Префикс КАК Префикс,
  240. | ТаблицаТоваров.Склад КАК Склад,
  241. | ВЫБОР
  242. | КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
  243. | ТОГДА ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения)
  244. | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Упаковка.ЕдиницаИзмерения)
  245. | КОНЕЦ КАК ПредставлениеЕдининицыИзмеренияУпаковки,
  246. | ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
  247. | ТаблицаТоваров.КоличествоУпаковок КАК КоличествоУпаковок,
  248. | ТаблицаТоваров.Количество КАК Количество,
  249. | ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий КАК НастройкаИспользованияСерий,
  250. | ТаблицаТоваров.Номенклатура.Код КАК Код,
  251. | ТаблицаТоваров.Номенклатура.Артикул КАК Артикул,
  252. | ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
  253. | ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
  254. | ТаблицаТоваров.Номенклатура КАК Номенклатура,
  255. | ТаблицаТоваров.Характеристика КАК Характеристика,
  256. | ВЫБОР
  257. | КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка.Коэффициент, 1) = 1
  258. | ТОГДА НЕОПРЕДЕЛЕНО
  259. | ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
  260. | КОНЕЦ КАК Упаковка,
  261. | ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии,
  262. | ВЫБОР
  263. | КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
  264. | И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
  265. | ТОГДА ИСТИНА
  266. | ИНАЧЕ ЛОЖЬ
  267. | КОНЕЦ КАК ЭтоВозвратнаяТара
  268. |ИЗ
  269. | СуммированнаяТаблицаТоваров КАК ТаблицаТоваров
  270. |
  271. |УПОРЯДОЧИТЬ ПО
  272. | Ссылка,
  273. | Склад,
  274. | Номенклатура,
  275. | Характеристика
  276. |ИТОГИ ПО
  277. | Ссылка,
  278. | Склад,
  279. | Номенклатура,
  280. | Характеристика
  281. |;
  282. |
  283. |////////////////////////////////////////////////////////////////////////////////
  284. |ВЫБРАТЬ
  285. | ТаблицаТоваров.Ссылка КАК Ссылка,
  286. | ТаблицаТоваров.Склад КАК Склад,
  287. | ТаблицаТоваров.Номенклатура КАК Номенклатура,
  288. | ТаблицаТоваров.Характеристика КАК Характеристика,
  289. | ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии
  290. |ИЗ
  291. | ТаблицаТоваров КАК ТаблицаТоваров
  292. |ГДЕ
  293. | ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
  294. | И НЕ ТаблицаТоваров.Серия ЕСТЬ NULL
  295. |
  296. |УПОРЯДОЧИТЬ ПО
  297. | Ссылка,
  298. | Склад,
  299. | Номенклатура,
  300. | Характеристика,
  301. | ПредставлениеСерии";
  302.  
  303. ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
  304. РезультатЗапроса = ЗапросПоТоварам.ВыполнитьПакет();
  305. ДанныеПечати = РезультатЗапроса[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  306. ВыборкаПоСериям = РезультатЗапроса[3].Выбрать();
  307.  
  308. Иначе
  309.  
  310. ТекстЗапросаПоТоварам =
  311. "ВЫБРАТЬ
  312. | РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
  313. | РеализацияТоваровУслугТовары.Ссылка.Организация КАК Организация,
  314. | РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
  315. | РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
  316. | РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
  317. | РеализацияТоваровУслугТовары.Ссылка.Организация.Префикс КАК Префикс,
  318. | РеализацияТоваровУслугТовары.Склад КАК Склад,
  319. | ВЫБОР
  320. | КОГДА РеализацияТоваровУслугТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
  321. | ТОГДА ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения)
  322. | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Упаковка.ЕдиницаИзмерения)
  323. | КОНЕЦ КАК ПредставлениеЕдининицыИзмеренияУпаковки,
  324. | ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
  325. | РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
  326. | РеализацияТоваровУслугТовары.Количество КАК Количество,
  327. | РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код,
  328. | РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
  329. | РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
  330. | РеализацияТоваровУслугТовары.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
  331. | """" КАК ПредставлениеСерии,
  332. | ВЫБОР
  333. | КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Коэффициент, 1) = 1
  334. | ТОГДА НЕОПРЕДЕЛЕНО
  335. | ИНАЧЕ РеализацияТоваровУслугТовары.Упаковка.Наименование
  336. | КОНЕЦ КАК Упаковка,
  337. | ВЫБОР
  338. | КОГДА РеализацияТоваровУслугТовары.Ссылка.ВернутьМногооборотнуюТару
  339. | И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
  340. | ТОГДА ИСТИНА
  341. | ИНАЧЕ ЛОЖЬ
  342. | КОНЕЦ КАК ЭтоВозвратнаяТара,
  343. | NULL КАК НастройкаИспользованияСерий,
  344. | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
  345. | РеализацияТоваровУслугТовары.Характеристика КАК Характеристика
  346. |ИЗ
  347. | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  348. |ГДЕ
  349. | РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
  350. | И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
  351. | И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
  352. |
  353. |УПОРЯДОЧИТЬ ПО
  354. | Ссылка,
  355. | Склад,
  356. | РеализацияТоваровУслугТовары.НомерСтроки
  357. |ИТОГИ ПО
  358. | Ссылка,
  359. | Склад,
  360. | Номенклатура,
  361. | Характеристика";
  362.  
  363. ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
  364. ДанныеПечати = ЗапросПоТоварам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  365.  
  366. КонецЕсли;
  367.  
  368.  
  369. ПервыйДокумент = Истина;
  370.  
  371. //Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РеализацияТоваровУслуг.ПФ_MXL_РасходнаяНакладная");
  372. Макет=ПолучитьМакет("ПФ_MXL_РасходнаяНакладная");
  373. ШиринаОтсутствующихОбластей = 0;
  374. Если НЕ ВыводитьКоды Тогда
  375. ШиринаОтсутствующихОбластей = Макет.Область("КолонкаКодов").ШиринаКолонки;
  376. КонецЕсли;
  377.  
  378. Если Не ИспользоватьУпаковки Тогда
  379.  
  380. ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаКоличестваУпаковок").ШиринаКолонки;
  381. ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаПредставленияУпаковок").ШиринаКолонки;
  382.  
  383. КонецЕсли;
  384.  
  385. // Раздвинуть колонку "КолонкаТоваров" на ширину отсутствующих областей
  386. Макет.Область("КолонкаТоваров").ШиринаКолонки = Макет.Область("КолонкаТоваров").ШиринаКолонки + ШиринаОтсутствующихОбластей;
  387.  
  388. РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление");
  389.  
  390. Пока ДанныеПечати.Следующий() Цикл
  391.  
  392. ИндексМассиваПроверки = МассивПроверки.Найти(ДанныеПечати.Ссылка);
  393. Если ИндексМассиваПроверки <> Неопределено Тогда
  394. МассивПроверки.Удалить(ИндексМассиваПроверки);
  395. КонецЕсли;
  396.  
  397. // Для печати комплектов
  398. Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.Найти("Ссылка") <> Неопределено Тогда
  399. КомплектПечатиПоСсылке = КомплектыПечати.Найти(ДанныеПечати.Ссылка,"Ссылка");
  400. Если КомплектПечатиПоСсылке = Неопределено Тогда
  401. КомплектПечатиПоСсылке = КомплектыПечати[0];
  402. КонецЕсли;
  403. Если КомплектПечатиПоСсылке.Экземпляров = 0 Тогда
  404. Продолжить
  405. КонецЕсли;
  406. КонецЕсли;
  407.  
  408. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
  409.  
  410. ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
  411.  
  412. ВыборкаПоСкладам = ДанныеПечати.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  413. Пока ВыборкаПоСкладам.Следующий() Цикл
  414.  
  415. Если Не ПервыйДокумент Тогда
  416. ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
  417. КонецЕсли;
  418.  
  419. ПервыйДокумент = Ложь;
  420.  
  421. Область = Макет.ПолучитьОбласть("Заголовок");
  422. СтруктураДанныхЗаголовок = Новый Структура;
  423. СтруктураДанныхЗаголовок.Вставить("ТекстЗаголовка", НСтр("ru='Расходная накладная'"));
  424. ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Область, ДанныеПечати.Ссылка);
  425. Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
  426. ТабличныйДокумент.Вывести(Область);
  427.  
  428. Область = Макет.ПолучитьОбласть("Шапка");
  429. СтруктураДанныхШапка = Новый Структура;
  430. СтруктураДанныхШапка.Вставить("ПредставлениеРаспоряжения", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, НСтр("ru='Реализация товаров'")));
  431. СтруктураДанныхШапка.Вставить("ПредставлениеСклада", ВыборкаПоСкладам.Склад);
  432. СтруктураДанныхШапка.Вставить("Склад", ВыборкаПоСкладам.Склад);
  433. Область.Параметры.Заполнить(СтруктураДанныхШапка);
  434. ТабличныйДокумент.Вывести(Область);
  435.  
  436. Область = Макет.ПолучитьОбласть("Поставщик");
  437. СтруктураДанныхПоставщик = Новый Структура;
  438. СтруктураДанныхПоставщик.Вставить("ПредставлениеОрганизации",
  439. ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Организация, ВыборкаПоСкладам.Дата),
  440. "ПолноеНаименование"));
  441. СтруктураДанныхПоставщик.Вставить("Организация", ВыборкаПоСкладам.Организация);
  442. Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
  443. ТабличныйДокумент.Вывести(Область);
  444.  
  445. Область = Макет.ПолучитьОбласть("Покупатель");
  446. СтруктураДанныхПокупатель = Новый Структура;
  447. СтруктураДанныхПоставщик.Вставить("ПредставлениеПартнера",
  448. ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Контрагент, ВыборкаПоСкладам.Дата),
  449. "ПолноеНаименование"));
  450. СтруктураДанныхПоставщик.Вставить("Контрагент", ВыборкаПоСкладам.Контрагент);
  451. Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
  452. ТабличныйДокумент.Вывести(Область);
  453.  
  454. Область = Макет.ПолучитьОбласть("ШапкаТаблицы|НачалоСтроки");
  455. ТабличныйДокумент.Вывести(Область);
  456. Если ВыводитьКоды Тогда
  457. Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
  458. СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", КолонкаКодов);
  459. Область.Параметры.Заполнить(СтруктураДанныхКоды);
  460. ТабличныйДокумент.Присоединить(Область);
  461. КонецЕсли;
  462. Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаТоваров");
  463. ТабличныйДокумент.Присоединить(Область);
  464. Если ИспользоватьУпаковки Тогда
  465. Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиУпаковок");
  466. ТабличныйДокумент.Присоединить(Область);
  467. КонецЕсли;
  468. Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиКоличества");
  469. ТабличныйДокумент.Присоединить(Область);
  470.  
  471. ОбластьНачалоСтроки = Макет.ПолучитьОбласть("СтрокаТаблицы|НачалоСтроки");
  472. ОбластьКолонкаКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
  473. ОбластьКолонкаТоваров = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаТоваров");
  474. ОбластьКолонкаУпаковок = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиУпаковок");
  475. ОбластьКолонкаКоличества = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиКоличества");
  476.  
  477. СчетСтрок = 1;
  478.  
  479. ВыборкаПоСсылкамТЧ = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  480.  
  481. Пока ВыборкаПоСсылкамТЧ.Следующий() Цикл
  482.  
  483. ВыборкаПоНоменклатуреТЧ = ВыборкаПоСсылкамТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  484.  
  485. Пока ВыборкаПоНоменклатуреТЧ.Следующий() Цикл
  486.  
  487. ВыборкаПоСтрокамТЧ = ВыборкаПоНоменклатуреТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  488.  
  489. ПерваяСтрока = Истина;
  490. СтрокаУпаковок = "";
  491. СтрокаКоличесткаУпаковок = "";
  492. СтрокаЕдиницИзмерений = "";
  493. СтрокаКоличества = "";
  494.  
  495. Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
  496.  
  497. Если ВыборкаПоСтрокамТЧ.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда
  498.  
  499. Если ПерваяСтрока Тогда
  500.  
  501. СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
  502. ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
  503. СчетСтрок = СчетСтрок + 1;
  504. ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
  505. Если ВыводитьКоды Тогда
  506. СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
  507. ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
  508. ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
  509. КонецЕсли;
  510.  
  511. СтруктураПоиска = Новый Структура;
  512. СтруктураПоиска.Вставить("Ссылка", ВыборкаПоСтрокамТЧ.Ссылка);
  513. СтруктураПоиска.Вставить("Склад", ВыборкаПоСтрокамТЧ.Склад);
  514. СтруктураПоиска.Вставить("Номенклатура", ВыборкаПоСтрокамТЧ.Номенклатура);
  515. СтруктураПоиска.Вставить("Характеристика", ВыборкаПоСтрокамТЧ.Характеристика);
  516.  
  517. СтрокаСерий = "";
  518. Пока ВыборкаПоСериям.НайтиСледующий(СтруктураПоиска) Цикл
  519. СтрокаСерий = СтрокаСерий + ВыборкаПоСериям.ПредставлениеСерии + ", ";
  520. КонецЦикла;
  521.  
  522. Если СтрДлина(СтрокаСерий) <> 0 Тогда
  523. СтрокаСерий = Лев(СтрокаСерий, СтрДлина(СтрокаСерий) - 2);
  524. КонецЕсли;
  525.  
  526. Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
  527. ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
  528. ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
  529. ,
  530. СтрокаСерий,
  531. ,
  532. ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара);
  533.  
  534. СтруктураДанныхТовар = Новый Структура("Товар", Товар);
  535. ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
  536.  
  537. ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
  538.  
  539. ПерваяСтрока = Ложь;
  540.  
  541. КонецЕсли;
  542.  
  543. Если ИспользоватьУпаковки Тогда
  544. СтрокаУпаковок = СтрокаУпаковок + ВыборкаПоСтрокамТЧ.ПредставлениеЕдининицыИзмеренияУпаковки + Символы.ПС;
  545. СтрокаКоличесткаУпаковок = СтрокаКоличесткаУпаковок + ВыборкаПоСтрокамТЧ.КоличествоУпаковок + Символы.ПС;
  546. КонецЕсли;
  547.  
  548. СтрокаЕдиницИзмерений = СтрокаЕдиницИзмерений + ВыборкаПоСтрокамТЧ.ПредставлениеБазовойЕдиницыИзмерения + Символы.ПС;
  549. СтрокаКоличества = СтрокаКоличества + ВыборкаПоСтрокамТЧ.Количество + Символы.ПС;
  550.  
  551. ТоварССериейЭкземпляром = Истина;
  552.  
  553. Иначе
  554.  
  555. СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
  556. ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
  557. СчетСтрок = СчетСтрок + 1;
  558. ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
  559.  
  560. Если ВыводитьКоды Тогда
  561. СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
  562. ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
  563. ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
  564. КонецЕсли;
  565.  
  566. Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
  567. ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
  568. ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
  569. ,
  570. ВыборкаПоСтрокамТЧ.ПредставлениеСерии,
  571. ,
  572. ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара);
  573.  
  574. СтруктураДанныхТовар = Новый Структура("Товар", Товар);
  575. ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
  576.  
  577. ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
  578.  
  579. Если ИспользоватьУпаковки Тогда
  580. ОбластьКолонкаУпаковок.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
  581. ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
  582. КонецЕсли;
  583.  
  584. ОбластьКолонкаКоличества.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
  585. ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
  586.  
  587. ТоварССериейЭкземпляром = Ложь;
  588.  
  589. КонецЕсли;
  590.  
  591. КонецЦикла;
  592.  
  593. Если ТоварССериейЭкземпляром Тогда
  594. Если ИспользоватьУпаковки Тогда
  595. СтруктураДанныхКолонкаУпаковок = Новый Структура;
  596. СтруктураДанныхКолонкаУпаковок.Вставить("КоличествоУпаковок", СтрокаКоличесткаУпаковок);
  597. СтруктураДанныхКолонкаУпаковок.Вставить("ПредставлениеЕдининицыИзмеренияУпаковки", СтрокаУпаковок);
  598. ОбластьКолонкаУпаковок.Параметры.Заполнить(СтруктураДанныхКолонкаУпаковок);
  599. ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
  600. КонецЕсли;
  601.  
  602. СтруктураДанныхКолонкаКоличества = Новый Структура;
  603. СтруктураДанныхКолонкаКоличества.Вставить("Количество", СтрокаКоличества);
  604. СтруктураДанныхКолонкаКоличества.Вставить("ПредставлениеБазовойЕдиницыИзмерения", СтрокаЕдиницИзмерений);
  605. ОбластьКолонкаКоличества.Параметры.Заполнить(СтруктураДанныхКолонкаКоличества);
  606. ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
  607.  
  608. КонецЕсли;
  609.  
  610. КонецЦикла;
  611.  
  612. КонецЦикла;
  613. ////////////////
  614. ////////////////////
  615. ЗапросПоУслугам=Новый Запрос;
  616. ЗапросПоУслугам.УстановитьПараметр("Ссылка", ВыборкаПоСкладам.Ссылка);
  617. ТекстЗапросаПоУслугам =
  618. "ВЫБРАТЬ
  619. | РеализацияТоваровУслугТовары.Склад КАК Склад,
  620. | РеализацияТоваровУслугТовары.Количество КАК Количество,
  621. | РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код,
  622. | РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
  623. | РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
  624. | РеализацияТоваровУслугТовары.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
  625. | РеализацияТоваровУслугТовары.Номенклатура КАК Услуга,
  626. | РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
  627. | РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения КАК БазоваяЕдиница,
  628. | РеализацияТоваровУслугТовары.КоличествоУпаковок,
  629. | ВЫБОР
  630. | КОГДА РеализацияТоваровУслугТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
  631. | ТОГДА ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения)
  632. | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Упаковка.ЕдиницаИзмерения)
  633. | КОНЕЦ КАК УпаковкаПредставление,
  634. | РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
  635. |ИЗ
  636. | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  637. |ГДЕ
  638. | РеализацияТоваровУслугТовары.Ссылка = &Ссылка
  639. | И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга))";
  640.  
  641. ЗапросПоУслугам.Текст = ТекстЗапросаПоУслугам;
  642. ВыборкаПоСтрокамТЧУслуг = ЗапросПоУслугам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  643. ////////////////////
  644.  
  645. //Пока ДанныеПечатиУслуг.Следующий() Цикл
  646. //
  647. //ВыборкаПоСсылкамУслуг=ДанныеПечатиУслуг.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  648. //Пока ВыборкаПоСсылкамУслуг.Следующий() цикл
  649. ////ВыборкаПоСтрокамТЧУслуг = ДанныеПечатиУслуг.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  650. //ВыборкаПоСтрокамТЧУслуг = ВыборкаПоСсылкамУслуг.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  651. Пока ВыборкаПоСтрокамТЧУслуг.СледуЮщий() цикл
  652. СтрокаУпаковок = "";
  653. СтрокаКоличесткаУпаковок = "";
  654. СтрокаЕдиницИзмерений = "";
  655. СтрокаКоличества = "";
  656.  
  657. СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
  658. ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
  659. СчетСтрок = СчетСтрок + 1;
  660. ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
  661. Если ВыводитьКоды Тогда
  662. СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧУслуг[КолонкаКодов]);
  663. ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
  664. ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
  665. КонецЕсли;
  666.  
  667.  
  668. Если СтрДлина(СтрокаСерий) <> 0 Тогда
  669. СтрокаСерий = Лев(СтрокаСерий, СтрДлина(СтрокаСерий) - 2);
  670. КонецЕсли;
  671.  
  672. Товар = ВыборкаПоСтрокамТЧУслуг.Услуга;
  673.  
  674. СтруктураДанныхТовар = Новый Структура("Товар", Товар);
  675. ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
  676.  
  677. ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
  678.  
  679.  
  680. СтрокаКоличества = СтрокаКоличества + ВыборкаПоСтрокамТЧУслуг.Количество + Символы.ПС;
  681.  
  682.  
  683. СтруктураДанныхКолонкаУпаковок = Новый Структура;
  684. //СтруктураДанныхКолонкаУпаковок.Вставить("КоличествоУпаковок", "");
  685. //СтруктураДанныхКолонкаУпаковок.Вставить("ПредставлениеЕдининицыИзмеренияУпаковки", "");
  686. СтруктураДанныхКолонкаУпаковок.Вставить("КоличествоУпаковок", ВыборкаПоСтрокамТЧУслуг.КоличествоУпаковок);
  687. СтруктураДанныхКолонкаУпаковок.Вставить("ПредставлениеЕдининицыИзмеренияУпаковки", ВыборкаПоСтрокамТЧУслуг.УпаковкаПредставление);
  688.  
  689. ОбластьКолонкаУпаковок.Параметры.Заполнить(СтруктураДанныхКолонкаУпаковок);
  690. ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
  691.  
  692. СтруктураДанныхКолонкаКоличества = Новый Структура;
  693. СтруктураДанныхКолонкаКоличества.Вставить("Количество", ВыборкаПоСтрокамТЧУслуг.Количество);
  694. СтруктураДанныхКолонкаКоличества.Вставить("ПредставлениеБазовойЕдиницыИзмерения", ВыборкаПоСтрокамТЧУслуг.БазоваяЕдиница);
  695. ОбластьКолонкаКоличества.Параметры.Заполнить(СтруктураДанныхКолонкаКоличества);
  696. ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
  697. КонецЦикла;
  698. //КонецЦикла;
  699. //КонецЦикла;
  700.  
  701. ////////////////
  702.  
  703.  
  704.  
  705. Область = Макет.ПолучитьОбласть("ПодвалТаблицы|НачалоСтроки");
  706. ТабличныйДокумент.Вывести(Область);
  707. Если ВыводитьКоды Тогда
  708. Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
  709. ТабличныйДокумент.Присоединить(Область);
  710. КонецЕсли;
  711. Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаТоваров");
  712. ТабличныйДокумент.Присоединить(Область);
  713. Если ИспользоватьУпаковки Тогда
  714. Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиУпаковок");
  715. ТабличныйДокумент.Присоединить(Область);
  716. КонецЕсли;
  717. Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиКоличества");
  718. ТабличныйДокумент.Присоединить(Область);
  719.  
  720. Область = Макет.ПолучитьОбласть("Подписи");
  721. ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'");
  722. ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", СчетСтрок-1);
  723. СтруктураДанныхИтоговаяСтрока = Новый Структура;
  724. СтруктураДанныхЗаголовок.Вставить("ИтоговаяСтрока", ТекстИтоговойСтроки);
  725. Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
  726. ТабличныйДокумент.Вывести(Область);
  727.  
  728. КонецЦикла;
  729.  
  730. // Выведем нужное количество экземпляров (при печати комплектов)
  731. Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.Найти("Ссылка") <> Неопределено И КомплектПечатиПоСсылке.Экземпляров > 1 Тогда
  732. ОбластьКопирования = ТабличныйДокумент.ПолучитьОбласть(НомерСтрокиНачало,,ТабличныйДокумент.ВысотаТаблицы);
  733. Для Итератор = 2 По КомплектПечатиПоСсылке.Экземпляров Цикл
  734. ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
  735. ТабличныйДокумент.Вывести(ОбластьКопирования);
  736. КонецЦикла;
  737. КонецЕсли;
  738.  
  739. УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
  740.  
  741. КонецЦикла;
  742.  
  743. КонецЦикла;
  744.  
  745. Для Каждого Ссылка Из МассивПроверки Цикл
  746. Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
  747. НСтр("ru = 'В документе %1 отсутствуют товары. Печать расходной накладной не требуется.'"),
  748. Ссылка);
  749.  
  750. ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
  751. Текст,
  752. Ссылка);
  753. КонецЦикла;
  754.  
  755. ТабличныйДокумент.АвтоМасштаб = Истина;
  756.  
  757. Если ПривилегированныйРежим() Тогда
  758. УстановитьПривилегированныйРежим(Ложь);
  759. КонецЕсли;
  760.  
  761. Возврат ТабличныйДокумент;
  762.  
  763. КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement