|
Отчет, кнопка сформировать. Вставить свою процедуру | ☑ | ||
---|---|---|---|---|
0
wwwqwert2014
09.10.14
✎
12:38
|
Необходимо при нажатии по кнопке "Сформировать" перезаполнить регистр (актуализировать информацию).
Захожу в Отладка/Остановить в конфигураторе, затем жму на кнопку "Сформировать" в режиме Предприятие и ничего не останавливается. Нужно сделать так, чтобы выполнялась своя процедура при щелчке по этой кнопке. Комплексная автоматизация 1.1 |
|||
1
PR
09.10.14
✎
12:39
|
(0) Хвастаешься?
|
|||
2
lxndr
09.10.14
✎
12:39
|
прикрути свою кнопку
|
|||
3
Chai Nic
09.10.14
✎
12:39
|
Остановить можно только то, что выполняется. Вот если нажал на кнопку, и она запустила какой-то длительный алгоритм - его можно остановить. А в твоём случае надо ставить точку останова на процедуру-обработчик.
|
|||
4
wwwqwert2014
09.10.14
✎
12:41
|
Я не могу найти процедуру-обработчик, который вызывается при нажатии на кнопку Сформировать
|
|||
5
wwwqwert2014
09.10.14
✎
12:41
|
В этом-то и есть проблема
|
|||
6
PR
09.10.14
✎
12:43
|
(4) Ее нет
|
|||
7
PR
09.10.14
✎
12:43
|
ПриКомпоновкеРезультата есть, если СКД
|
|||
8
ИС-2
naïve
09.10.14
✎
12:44
|
(4) а ее и нет. Выполняется стандартное действие Сформировать.
Для СКД код новой кнопки будет примерно таким: ЗаполнитьРегистр() Скомпоновать(ТабДок) Вот только интересно, что случиться с сервером, когда 2 пользователя одновременно нажмут на кнопку... |
|||
9
elCust
09.10.14
✎
12:44
|
(0) Учи матчасть, потом делай. Блин понаберут по объявлению...
|
|||
10
ИС-2
naïve
09.10.14
✎
12:45
|
не, тут другая гениальная задача от руководства - надо отследить сколько раз человек формировал отчет
|
|||
11
shuhard
09.10.14
✎
12:47
|
(4) а отчет то на каком движке построен
- универсальный отчет - СКД - черепашка ? |
|||
12
wwwqwert2014
09.10.14
✎
12:54
|
Ну я создал схему компоновки данных и форму отчета. В модуле формы прописал установку параметров. Все.
|
|||
13
shuhard
09.10.14
✎
12:58
|
(12) угу
вот пример отчета на СКД с выводом картинки Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДокументРезультат.Очистить(); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); //Создадим и инициализируем процессор компоновки ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина); ПроцессорТЗ=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ=Новый ТаблицаЗначений; ПроцессорТЗ.УстановитьОбъект(ТЗ); ПроцессорТЗ.Вывести(ПроцессорКомпоновки); // обход ТЗ, извлечение картинки, формирование отчета Таб = ДокументРезультат; Макет = ПолучитьМакет("МакетСКартинкой"); ОблШапки = Макет.ПолучитьОбласть("Шапка"); ОблШапки.Параметры.ДатаСреза=Формат(МакетКомпоновки.ЗначенияПараметров.ДатаСреза.Значение,"ДЛФ=DD"); Таб.Вывести(ОблШапки); ОблС = Макет.ПолучитьОбласть("Строка"); Ст=1; Для Каждого СтрокаТЗ Из ТЗ Цикл ОблС.Параметры.НомерПоПорядку=Ст; ОблС.Параметры.Номенклатура=СтрокаТЗ.НоменклатураСсылка; ТМЦ=СтрокаТЗ.НоменклатураСсылка; Если ТМЦ.ОсновноеИзображение.Хранилище.Получить() = Неопределено Тогда Вставка = Новый Картинка; Иначе Вставка =ТМЦ.ОсновноеИзображение.Хранилище.Получить(); КонецЕсли; ОблС.Рисунки.Карт.Картинка = Вставка; ОблС.Параметры.Характеристика=СтрокаТЗ.ХарактеристикаНоменклатуры; ОблС.Параметры.ОстатокпоУчету=СтрокаТЗ.КоличествоОстаток; ОблС.Параметры.НоменклатураКод=СтрокаТЗ.НоменклатураКод; Таб.Вывести(ОблС); Ст=Ст+1; КонецЦикла; Таб.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; Таб.АвтоМасштаб = Истина; Таб.ОтображатьСетку = Ложь; |
|||
14
wwwqwert2014
09.10.14
✎
13:02
|
Я все сделал, только я не совсем понимаю как показать изменения программно. У меня есть элементФормы Результат.
Программно я данные поместил в ТабДок. Вот только если я пишу ТабДок.Показать(), то всё некрасиво в отдельном окне выводится. А как мне по-типовому сформировать бы? |
|||
15
lxndr
09.10.14
✎
13:05
|
(14) см (8)
|
|||
16
wwwqwert2014
09.10.14
✎
13:06
|
// Вставить содержимое обработчика.
СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СКД.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); ДокументРезультат = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); //ДокументРезультат.Показать(); СкомпоноватьРезультат(ДокументРезультат); |
|||
17
wwwqwert2014
09.10.14
✎
13:07
|
Функции Скомпоновать() нет в СП
|
|||
18
wwwqwert2014
09.10.14
✎
13:10
|
то что я в(16) написал, не выподит отчет
|
|||
19
lxndr
09.10.14
✎
13:12
|
(17)
ОтчетОбъект.<Имя отчета>.СкомпоноватьРезультат (ReportObject.<Имя отчета>.ComposeResult) ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>) СкомпоноватьРезультат (ComposeResult) Синтаксис: СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>) Параметры: <Результат> (обязательный) Тип: ТабличныйДокумент. Табличный документ, в который будет выводиться результат. <ИнформацияРасшифровки> (необязательный) Переменная, в которую будет записана информация расшифровки. Если не указано - расшифровка заполняться не будет. Описание: Выполняет компоновку. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Пользователь может при помощи комбинации клавиш Ctrl+Break прервать выполнение отчета. При этом будет вызвано исключение. |
|||
20
wwwqwert2014
09.10.14
✎
13:27
|
Я это понял. Как мне отобразить результат в поле для вывода результата?
|
|||
21
tank68
09.10.14
✎
14:16
|
Процедура ВыполнениеОтчета()
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); СхемаКомпоновкиДанных.Параметры.ДатаНачала.Значение = ДатаНачала; СхемаКомпоновкиДанных.Параметры.ДатаОкончания.Значение = ДатаОкончания; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,СхемаКомпоновкиДанных.НастройкиПоУмолчанию); табДок = новый ТабличныйДокумент; ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); табДок.Показать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |