|
Печать макета документа на управляемых формах в менеджере объекта | ☑ | ||
---|---|---|---|---|
0
art93
30.07.15
✎
08:35
|
Подскажите пожалуйста как реализовать? На какой типовой документ глянуть можно?
Вот картинка макета https://cloud.mail.ru/public/9qKD/fLdvMEHqt |
|||
1
asady
30.07.15
✎
08:37
|
(0) франчи начали наконец внутреннюю автоматизацию на 8.3???
|
|||
2
art93
30.07.15
✎
08:38
|
да
В октябре переходим полностью |
|||
3
shpioleg
30.07.15
✎
08:45
|
(0) А что за трудности? Делаешь экспортную процедуру и в нее ссылку на док передаешь.
|
|||
4
ДенисЧ
30.07.15
✎
08:47
|
В любом типовом документе из уг11 или бп3
|
|||
5
art93
30.07.15
✎
09:14
|
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
Если ПравоДоступа("Изменение", Метаданные.Документы.ИнвентаризацияНаличныхДенежныхСредств) Тогда // Акт инвентаризации КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ИНВ15"; КомандаПечати.Представление = НСтр("ru = 'ИНВ-15'"); КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; КонецЕсли; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ИНВ15") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ИНВ15", "ИНВ-15", СформироватьПечатнуюАктаИнвентаризацииНаличныхДенежныхСредств(МассивОбъектов, ОбъектыПечати)); КонецЕсли; КонецПроцедуры Функция СформироватьПечатнуюАктаИнвентаризацииНаличныхДенежныхСредств(МассивОбъектов, ОбъектыПечати) УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИНВ15"; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ИнвентаризацияНаличныхДенежныхСредств.ПФ_MXL_ИНВ15"); ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ДанныеДокумента.Ссылка КАК Ссылка, | ДанныеДокумента.Номер КАК Номер, | ДанныеДокумента.Организация.Префикс КАК Префикс, | ДанныеДокумента.Дата КАК ДатаДокумента, | ДанныеДокумента.Организация КАК Организация, | ДанныеДокумента.Организация.НаименованиеСокращенное КАК ПредставлениеОрганизации, | ДанныеДокумента.Организация.КодПоОКПО КАК ОрганизацияПоОКПО, | ДанныеДокумента.ПоследнийНомерПКО КАК НомерПКО, | ДанныеДокумента.ПоследнийНомерРКО КАК НомерРКО, | ДанныеДокумента.КассоваяКнига.СтруктурноеПодразделение КАК Подразделение, | ТаблицаОтветственныеЛица.КассирНаименование КАК ФИОКассира, | ТаблицаОтветственныеЛица.КассирДолжность КАК КассирДолжность, | ТаблицаОтветственныеЛица.РуководительНаименование КАК ФИОРуководителя, | ТаблицаОтветственныеЛица.РуководительДолжность КАК РуководительДолжность |ИЗ | Документ.ИнвентаризацияНаличныхДенежныхСредств КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица | ПО ДанныеДокумента.Ссылка = ТаблицаОтветственныеЛица.Ссылка |ГДЕ | ДанныеДокумента.Ссылка В(&МассивДокументов) | |УПОРЯДОЧИТЬ ПО | ДатаДокумента, | Номер |; |/////////////////////////////////////////////////////////// | |ВЫБРАТЬ | ТаблицаДокумента.Ссылка КАК Ссылка, | ТаблицаДокумента.Касса.ВалютаДенежныхСредств КАК Валюта, | СУММА(ТаблицаДокумента.СуммаПоФакту) КАК СуммаПоФакту | |ИЗ | Документ.ИнвентаризацияНаличныхДенежныхСредств.Кассы КАК ТаблицаДокумента | |ГДЕ | ТаблицаДокумента.Ссылка В(&МассивДокументов) | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Ссылка, | ТаблицаДокумента.Касса.ВалютаДенежныхСредств |; |/////////////////////////////////////////////////////////// | |ВЫБРАТЬ | ТаблицаДокумента.Ссылка КАК Ссылка, | ТаблицаДокумента.Ссылка.СуммаПоФактуВсего КАК СуммаПоФактуРегл, | ТаблицаДокумента.Ссылка.СуммаПоУчетуВсего КАК СуммаПоУчетуРегл, | ЕСТЬNULL(ДенежныеСредства.СуммаРеглПриход, 0) КАК СуммаИзлишекРегл, | ЕСТЬNULL(ДенежныеСредства.СуммаРеглРасход, 0) КАК СуммаНедостачаРегл | |ИЗ | Документ.ИнвентаризацияНаличныхДенежныхСредств.Кассы КАК ТаблицаДокумента | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ДенежныеСредстваНаличные.Обороты(,, Регистратор) КАК ДенежныеСредства | ПО | ДенежныеСредства.Регистратор = ТаблицаДокумента.Ссылка | |ГДЕ | ТаблицаДокумента.Ссылка В(&МассивДокументов) |;"; Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов); Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", ВалютаРегламентированногоУчета); МассивРезультатов = Запрос.ВыполнитьПакет(); ВыборкаДокументов = МассивРезультатов[0].Выбрать(); ВыборкаРасхождений = МассивРезультатов[1].Выбрать(); ВыборкаИтогов = МассивРезультатов[2].Выбрать(); ПервыйДокумент = Истина; Пока ВыборкаДокументов.Следующий() Цикл Если ПервыйДокумент Тогда ПервыйДокумент = Ложь; Иначе ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(ВыборкаДокументов); ОбластьМакета.Параметры.НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДокументов.Номер); ОбластьМакета.Параметры.ДатаДокумента = Формат(ВыборкаДокументов.ДатаДокумента, "ДФ=dd.MM.yyyy"); ТабличныйДокумент.Вывести(ОбластьМакета); СтруктураПоиска = Новый Структура("Ссылка", ВыборкаДокументов.Ссылка); НомерПоПорядку = 1; Пока ВыборкаРасхождений.НайтиСледующий(СтруктураПоиска) Цикл ОбластьМакета = Макет.ПолучитьОбласть("СтрокаНаличныхДенег"); ОбластьМакета.Параметры.Заполнить(ВыборкаРасхождений); ОбластьМакета.Параметры.НомерПоПорядку = НомерПоПорядку; ОбластьМакета.Параметры.НаименованиеЦенности = НСтр("ru = 'наличных денег'"); ТабличныйДокумент.Вывести(ОбластьМакета); НомерПоПорядку = НомерПоПорядку + 1; КонецЦикла; Для Инд = НомерПоПорядку По 5 Цикл ОбластьМакета = Макет.ПолучитьОбласть("СтрокаНаличныхДенег"); ОбластьМакета.Параметры.НомерПоПорядку = Инд; ТабличныйДокумент.Вывести(ОбластьМакета); КонецЦикла; ВыборкаРасхождений.Сбросить(); ОбластьМакета = Макет.ПолучитьОбласть("Итоги"); ВыборкаИтогов.НайтиСледующий(СтруктураПоиска); ОбластьМакета.Параметры.СуммаПоФактуРубли = Формат(ВыборкаИтогов.СуммаПоФактуРегл, "ЧЦ=15; ЧДЦ=0; ЧН='0'"); КопеекПоФакту = (ВыборкаИтогов.СуммаПоФактуРегл - Цел(ВыборкаИтогов.СуммаПоФактуРегл)) * 100; ОбластьМакета.Параметры.СуммаПоФактуКопейки = Формат(КопеекПоФакту, "ЧЦ=2; ЧДЦ=0; ЧН='00'"); ОбластьМакета.Параметры.СуммаПоУчетуРубли = Формат(ВыборкаИтогов.СуммаПоУчетуРегл, "ЧЦ=15; ЧДЦ=0; ЧН='0'"); КопеекПоУчету = (ВыборкаИтогов.СуммаПоУчетуРегл - Цел(ВыборкаИтогов.СуммаПоУчетуРегл)) * 100; ОбластьМакета.Параметры.СуммаПоУчетуКопейки = Формат(КопеекПоУчету, "ЧЦ=2; ЧДЦ=0; ЧН='00'"); ОбластьМакета.Параметры.СуммаИзлишекРубли = Формат(ВыборкаИтогов.СуммаИзлишекРегл, "ЧЦ=15; ЧДЦ=0; ЧН='0'"); КопеекИзлишек = (ВыборкаИтогов.СуммаИзлишекРегл - Цел(ВыборкаИтогов.СуммаИзлишекРегл)) * 100; ОбластьМакета.Параметры.СуммаИзлишекКопейки = Формат(КопеекИзлишек, "ЧЦ=2; ЧДЦ=0; ЧН='00'"); ОбластьМакета.Параметры.СуммаНедостачаРубли = Формат(ВыборкаИтогов.СуммаНедостачаРегл, "ЧЦ=15; ЧДЦ=0; ЧН='0'"); КопеекНедостача = (ВыборкаИтогов.СуммаНедостачаРегл - Цел(ВыборкаИтогов.СуммаНедостачаРегл)) * 100; ОбластьМакета.Параметры.СуммаНедостачаКопейки = Формат(КопеекНедостача, "ЧЦ=2; ЧДЦ=0; ЧН='00'"); ОбластьМакета.Параметры.СуммаПоФактуРеглПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью( ВыборкаИтогов.СуммаПоФактуРегл, ВалютаРегламентированногоУчета, Ложь); ОбластьМакета.Параметры.СуммаПоУчетуРеглПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью( ВыборкаИтогов.СуммаПоУчетуРегл, ВалютаРегламентированногоУчета, Ложь); ТабличныйДокумент.Вывести(ОбластьМакета); ВыборкаИтогов.Сбросить(); ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(ВыборкаДокументов); ОбластьМакета.Параметры.НомерПКО = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДокументов.НомерПКО); ОбластьМакета.Параметры.НомерРКО = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДокументов.НомерРКО); ТабличныйДокумент.Вывести(ОбластьМакета); ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьМакета = Макет.ПолучитьОбласть("Страница2"); ОбластьМакета.Параметры.Заполнить(ВыборкаДокументов); ТабличныйДокумент.Вывести(ОбластьМакета); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции |
|||
6
art93
30.07.15
✎
09:17
|
Такой пример подойдёт?
в старой проге всё понятно было в модуле объекта: Процедура Печать(ТабДок) Экспорт Если ЭтотОбъект.ЭтоНовый() Тогда ЭтотОбъект.Записать(); КонецЕсли; Телефон = ПолучитьТелефонИзКонтактнойИнформации( Контрагент); Факс = ПолучитьФаксИзКонтактнойИнформации( Контрагент); Адрес = ПолучитьАдресИзКонтактнойИнформации( Контрагент, "Доставки"); Если НЕ ЗначениеЗаполнено(Адрес) Тогда Адрес= ПолучитьАдресИзКонтактнойИнформации(Контрагент,"Фактический"); КонецЕсли; Если НЕ ЗначениеЗаполнено(Адрес) Тогда Адрес= ПолучитьАдресИзКонтактнойИнформации(Контрагент,"Юридический"); КонецЕсли; Макет = Документы.ЗаказНаСопровождение.ПолучитьМакет("Макет"); // Заголовок Область = Макет.ПолучитьОбласть("_1"); Область.Параметры.Номер = Номер; Область.Параметры.Дата = Формат(Дата,"ДФ=dd.MM.yyyy"); Область.Параметры.Контрагент = Контрагент; Область.Параметры.КонтЛицо = СокрЛП(КонтактноеЛицоКонтрагента.Наименование) + ПолучитьТелефонКО(КонтактноеЛицоКонтрагента); Область.Параметры.Телефон = Телефон; Область.Параметры.Факс = Факс; Область.Параметры.Адрес = Адрес; Область.Параметры.Автор = Ответственный.Наименование; Область.Параметры.ДатаПередачи = Формат(ДатаПередачиИсполнителю,"ДФ=dd.MM.yyyy"); Область.Параметры.Исполнитель = Исполнитель; Область.Параметры.СодержаниеЗаказа = СокрЛП(Программа.Наименование)+" "+СодержаниеЗаказа; ТабДок.Вывести(Область); Область = Макет.ПолучитьОбласть("_2"); Область.Параметры.Номер = Номер; Область.Параметры.Дата = Формат(Дата,"ДФ=dd.MM.yyyy"); Область.Параметры.АвторФамилия = Лев(Строка(Ответственный),Найти(Строка(Ответственный)," ")-1); Область.Параметры.Контрагент = Контрагент; Область.Параметры.КонтЛицо = КонтактноеЛицоКонтрагента; Область.Параметры.ТелефонФакс = Телефон+", "+Факс; Область.Параметры.Адрес = Адрес; Область.Параметры.СодержаниеЗаказа = СодержаниеЗаказа; Область.Параметры.Программа = СокрЛП(Программа.Наименование); Область.Параметры.Серия= ""; Область.Параметры.Конфигурация= ""; Область.Параметры.Релиз= ""; Область.Параметры.ПечПоКурсам= ""; Поз= Найти(Исполнитель.Наименование," "); Если Поз > 0 Тогда Область.Параметры.Исполнитель = Сред(Исполнитель.Наименование,1,Поз); Иначе Область.Параметры.Исполнитель = СокрЛП(Исполнитель.Наименование); КонецЕсли; ТабДок.Вывести(Область); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |