Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно ли сделать автоматическое обновление отчета? 1с 7.7 конф 7.7.003
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
ZUBR
Здравствуйте! И еще один вопрос. Если у меня открытый отчет на экране и какой-то документ добавился или изменился, есть ли какие-то способы сделать автоматическое обновление отчета, чтобы эти изменения сразу в нем отразились? Спасибо.
Sharzem
ZUBR @ Вчера, 19:29 необходимо зарегистрироваться для просмотра ссылки ,
Можна виконувати постійне оновлення звіту через певний проміжок часу... Постійно потрібно опитувати відкриті в даний час вікна і при активації форми сформованого звіту оновити його якщо сплив потрібний час. Без компоненти Formex та його об'єктів "РасширениеФормы" та "Окна" не обійтися. Це буде таке собі збочення. Простіше натискати кнопочку.
volodya1122
ZUBR @ 19.10.19, 19:29 необходимо зарегистрироваться для просмотра ссылки ,

для чого взагалі потрібне автоматичне оновлення звіту? Думаю це взагалі неправильна постановка задачі. Представте: користувач сформував звіт, переглядає на екрані дані звіту, а тут йому пред очами всі дані помінялись. Можна на макеті звіту зробити кнопку "Обновить" із розшифровкою (як наприклад зроблено в звітах "Продажи" "Партии Товаров")
ZUBR
volodya1122 @ Вчера, 10:01 необходимо зарегистрироваться для просмотра ссылки ,
мені там не зрозуміло, як це зробити. Там якось через глобальний модуль робиться. Не ясно, як. І ще не ясно, як саме створюється секція Кнопки? Там є якісь особливості?
volodya1122
ZUBR @ Вчера, 21:29 необходимо зарегистрироваться для просмотра ссылки ,

Саму кнопку можна і в шапці розмістити. (це або просто клітинку замалювати, або розмістити кнопку малюнком). І ще незнаю як подружаться ОбработкаЯчейкиТаблицы в глобальнім модулі із такою ж в модулі звіту).
Ось що знайшов в інтернеті, так як я цього не використовую
Цитата
Функция обновления отчета используется всеми стандартными отчетами. Если непонятно, как там это устроено, то попробую привести пример попроще. Создаем внешний отчет. В таблице создаем две секции:
1). "Шапка" в одной из ячеек которой присутствует надпись "Обновить", в расшифровке написано РасшифровкаОбновить(1)
2). "Основная" в одной из ячеек которой установлен режим "Выражение" и вписана переменная ПечТекст.

На форме отчета присутствует кнопка с идентификатором кнСформировать, которая запускает процедуру Сформировать и текстовое поле с идентификатором ПечТекст.

При нажатии на кнопку Сформировать появится отчет с текстом "начальное значение". Затем вводим в текстовое поле на форме другой текст и в самом отчете дважды щелкаем на "Обновить".


Далее текст модуля отчета.

Перем Таб;
Перем Расшифровка;

Функция РасшифровкаОбновить(Обновить)
Расшифровка.Установить("Обновить", Обновить);
Возврат Расшифровка;
КонецФункции //РасшифровкаОбновить()

Процедура Сформировать()
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Основная");
Таб.ТолькоПросмотр(1);
Таб.Показать();
//Больше не будем трогать кнопку
Форма.кнСформировать.Доступность(0);
КонецПроцедуры

//Предоределенная процедура, присутствует в глобальном модуле. Т.к. эта процедура прописана
//в данном случае локально, то она перекроет глобальную
Процедура ОбработкаЯчейкиТаблицы(Расшифровка, СтандартнаяОбработка, Таблица,Адрес)
Если Расшифровка.Получить("Обновить")=1 Тогда
Таб.Очистить();
Сформировать();
КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
Расшифровка=СоздатьОбъект("СписокЗначений");
Таб=СоздатьОбъект("Таблица");
ПечТекст="начальное значение";
КонецПроцедуры


P.S. Данный отчет можно сделать как внутренним, так и внешним, но если пользоваться глобальной процедурой ОбработкаЯчейкиТаблицы, то отчет должен быть внутренним.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.