|
Вызов отчета 1С из формы обработки 8.3, управляемая форма | ☑ | ||
---|---|---|---|---|
0
Lolipop
15.08.16
✎
15:30
|
Создал обработку, вызываю из модуля формы метод:
ОтчетОбъект = Отчеты.АнализНачисленийИУдержаний.Создать(); Заполняю параметры и отборы: ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", ЭтотОбъект.Объект.ПериодРегистрации); ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецМесяца(ЭтотОбъект.Объект.ПериодРегистрации)); Отбор = ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация"); Отбор.ПравоеЗначение = ЭтотОбъект.Объект.Организация; Вызываю метод отчета ОтчетОбъект.ПриКомпоновкеРезультата(ТабДок, ДанныеРасшифровки, Истина); И выходит ошибка о том, что метод объекта не обнаружен. Метод есть, вызывается метод на сервере. Как вызвать данную процедуру? |
|||
1
Nuobu
15.08.16
✎
15:35
|
ОтчетОбъект.СформироватьОтчет()
|
|||
2
Nuobu
15.08.16
✎
15:36
|
(0) Или дописать "Экспорт".
|
|||
3
Lolipop
15.08.16
✎
15:38
|
(2) Нет такого метода в отчете, есть только "ПриКомпоновкеРезультата".
Не годится. |
|||
4
Evgueni
15.08.16
✎
15:44
|
(3) ПриКомпоновкеРезульта - такой функции не существует. Это виртуальная функция, которую пользователь может переопределить.
|
|||
5
var498
15.08.16
✎
15:45
|
Примерно пол года назад была проблема с программой 1С Альфа авто . Был нужен знающий человек . Мне посоветовали сайт , работники которого занимаются только этим . Мою проблему решили очень быстро . Если заинтересовало можете посмотреть здесь http://www.pro1c-alfa.ru/
|
|||
6
Lolipop
15.08.16
✎
15:46
|
(5) СПАМ!
|
|||
7
Lolipop
15.08.16
✎
15:49
|
(4) Что значит не существует, если она находится в модуле объекта отчета?
Отчет строится только из этой функции. |
|||
8
Горогуля
15.08.16
✎
15:50
|
(7) это обработчик события такой. он сам вызовется, когда надо. а ты же уже погуглил программное формирование отчёта на СКД, правда?
|
|||
9
Evgueni
15.08.16
✎
15:51
|
(7)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Если ИсправитьХарактеристики Тогда СтандартнаяОбработка = Ложь; СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ДеревоПлохСпец = Новый ДеревоЗначений; ПроцессорВывода.УстановитьОбъект(ДеревоПлохСпец); ДеревоПлохСпец = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); ОбработатьСпецификации(ДеревоПлохСпец); ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблНеИсправленные", ДеревоПлохСпец); СхемаКомпоновкиДанных = ПолучитьМакет("НеИсправленныеСпецификации"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки); //Создадим и инициализируем процессор компоновки ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецЕсли; КонецПроцедуры |
|||
10
Evgueni
15.08.16
✎
15:54
|
(7) В С++ есть понятие виртуальной функции, которую ты можешь переопределять. Как пример - ПриОткрытии() она вроде и есть в форме, но вызвать её нельзя. Можно только переопределить эту пустышку написав свой код.
|
|||
11
Evgueni
15.08.16
✎
15:58
|
Я кинул как пример кусок своего кода, где я отчет вывожу в ДеревоЗначений, а потом дерево передаю в другой макет в том же отчете и вывожу уже на экран. И всё чудным образом работает.
|
|||
12
Lolipop
15.08.16
✎
16:14
|
(11) То есть, данную функцию я никак не смогу вызвать из обработки?
Единственное - это в форме отчета идентичную функцию, но уже не обработчик, а именно моя функция? |
|||
13
Evgueni
15.08.16
✎
16:23
|
(12) В отчете в самом модуле отчёта есть только две функции: ОбработкаПроверкиЗаполнения и ПриКомпоновкеРезульта. Автоматически добавляете процедуру ПриКомпоновкеРезультата. Пишете СтандартнаяОбработка = Ложь; Далее придётся вручную прерписать все вызовы всяких там компоновщиков. И вот уже из этой процедуры вызываете свою функцию и делаете что хотите, кроме итеракивного обмена
|
|||
14
Nuobu
15.08.16
✎
16:28
|
(3) Как нету? Я перепутал
ЭтотОбъект.СкомпоноватьРезультат(ЭлементыФормы.ПолеТабличногоДоркумента); |
|||
15
Lolipop
15.08.16
✎
16:33
|
(13) Где добавляю? в модуле отчета?
Мне же нужно из моей функции вызвать процедуру, а не наоборот |
|||
16
Evgueni
15.08.16
✎
16:45
|
А зачем её вызывать?
|
|||
17
Evgueni
15.08.16
✎
16:47
|
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) СхемаКомпоновкиДанных = Документы.ОтчетОКонтролеПродукции.ПолучитьМакет("Макет"); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; НастройкиКомпоновки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ПарметрыДанных = НастройкиКомпоновки.ПараметрыДанных; ПарметрыДанных.УстановитьЗначениеПараметра("Ссылка", ПараметрКоманды[0].Ссылка); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДокумент = ПроцессорВывода.Вывести(ПроцессорКомпоновки); // ТабДок.Показать(); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент); КонецПроцедуры |
|||
18
Lolipop
15.08.16
✎
17:08
|
(16) Чтобы из обработки сформировать отчет и сохранить его в файлик, чтобы потом отослать по почте.
|
|||
19
var498
15.08.16
✎
19:04
|
Примерно пол года назад была проблема с программой 1С Альфа авто . Был нужен знающий человек . Мне посоветовали сайт , работники которого занимаются только этим . Мою проблему решили очень быстро . Если заинтересовало можете посмотреть здесь http://www.pro1c-alfa.ru/
|
|||
20
Mauser
15.08.16
✎
19:08
|
(19) Да пристрелите уже этого армянина
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |