Наткнулся на такую странную вещь. Формирую отчет. Командой Т.Показать() вывожу на экран. Затем убираю его. Затем снова нажимаю кнопку "Сформировать". А в процедуре Сформировать() и есть команда Т=СоздатьОбъект("Таблица"). При выводе на экран в окне отчета уже два отчета-дубликата и далее 3, 4. Т.е. окно не очищается. Применил команду Т.Очистить() после создания таблицы. Безрезультатно. В чем дело? Подскажите, пожалуйста.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А кроме кнопки "Сформировать" там ещё кнопочка "ОК" есть?
Попробуй её понажимать...
А потом посмотри в модуле как это дело обрабатывается...
//-----------------------------------------------------------------------------------
Если у тебя не стандартная обработка, то поищи расхождения в модуле со стандартными.
Попробуй её понажимать...
А потом посмотри в модуле как это дело обрабатывается...
//-----------------------------------------------------------------------------------
Если у тебя не стандартная обработка, то поищи расхождения в модуле со стандартными.
Если в процедуре Сформировать() у меня: Т.СоздатьОбъект("Таблица") и даже Т.Очистить(), т.е.
Если (ТипЗначенияСтр(Таб) <> "Таблица") Тогда
Таб = СоздатьОбъект("Таблица");
Иначе
Таб.Очистить();
КонецЕсли;
я много не думая и ничего не читая, наивно предполагаю, что при нажатии кн. Сформировать я имею исходное состояние таблицы. Разве я ошибаюсь?
Если (ТипЗначенияСтр(Таб) <> "Таблица") Тогда
Таб = СоздатьОбъект("Таблица");
Иначе
Таб.Очистить();
КонецЕсли;
я много не думая и ничего не читая, наивно предполагаю, что при нажатии кн. Сформировать я имею исходное состояние таблицы. Разве я ошибаюсь?
(8) Если у тебя в Сформировать написано
Т = создатьОбъект("Таблица") - то ты ВСЕГДА СОЗДАЕШЬ НОВУЮ ТАБЛИЦУ
Что тут может быть непонятного ?
Тебе нужно создать её 1 раз, а при повторном вызове сформировать, проверить, если таблица ужо есть - то не создавать её, а Очистить.
Т = создатьОбъект("Таблица") - то ты ВСЕГДА СОЗДАЕШЬ НОВУЮ ТАБЛИЦУ
Что тут может быть непонятного ?
Тебе нужно создать её 1 раз, а при повторном вызове сформировать, проверить, если таблица ужо есть - то не создавать её, а Очистить.
VVSVVS пишет:
Я взял 1-совскую оборотку по счету. Вписался в нее немного для того, чтобы используя их механизм выборки оформить свой отчет. Их таблицу я не подавлял. Добавил свою.Может их таблицу полностью задавить?
Я взял 1-совскую оборотку по счету. Вписался в нее немного для того, чтобы используя их механизм выборки оформить свой отчет. Их таблицу я не подавлял. Добавил свою.Может их таблицу полностью задавить?
Вот где истина!
1C сама нигде не хранит все ваши параметры, заданные при формировании отчета.
Это должен сделать программист.
В типовых делается примерно так:
- в модуле отчёта объявляется глобальная переменная Таб - смотри в самом верху
- там-же объявляются переменные Обновить и Расшифровка
- в процедуре ПриОткрытии() есть примерно такой кусок кода:
Если глФлагРасшифровки = 1 Тогда
Обновить = глОбновить;
// восстанавливаем настройки из списка
ДатаНачала = глРасшифровка.Получить("ДатаНачала");
....
глРасшифровка.Получить("Группировки").Выгрузить(Группировки);
Если Обновить <> 0 Тогда
Таб = глТаблица;
КонецЕсли;
Если Обновить <> 2 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Иначе
Обновить = 0;
КонецЕсли;
ПоказатьЕго сюда не для красоты воткнули, а именно для управления обновления таблицы
- в самой процедуре сформировать:
Если (ТипЗначенияСтр(Таб) <> "Таблица") ИЛИ (Обновить = 0) Тогда
Таб = СоздатьОбъект("Таблица");
Иначе
Таб.Очистить();
КонецЕсли;
как раз и происходит обращение к обнавляемой таблице ( Таб.Очистить() ) или создание таковой.
- чуть ниже устанавливаются параметры расшифровки, которые получаем при открытии
в строках ниже следующей строки:
// восстанавливаем настройки из списка
Примерно вот такие условия нужно выполнить, чтобы механизм Обновления/Настройки работал.
Там ещё есть несколько вещей... Таких как например: имя таблицы должно совпадать с именем отчета/обработки либо задаваться параметром из расшифровки.
Кидаю. Свои вписания в оборотку я пометил: //АААААААААААААААААААААААААААААААААААА
Прикрепленные файлы:
Отчет для ОРДО 1.ert
Ёпрст пишет:
Ну и ? Если нажимаешь сформировать, то твоя таблица "ведомость по комунальным услугам" не "плодится" - а висит всегда одна и таже.
Ну и ? Если нажимаешь сформировать, то твоя таблица "ведомость по комунальным услугам" не "плодится" - а висит всегда одна и таже.
Она не висит. Она в одном окне расширяется, дублируется или добавляется, если изменю условие выборки. Я сделал много отчетов и всегда было достаточно для обновления: Т=СоздатьОбъект("Таблица") И Т.Очистить() я никогда не применял до сих пор.
(23) у тебя там 2 таблицы формируется, какая из них "множится " ? первая, или вторая ?
Если твоя ТА - то она всегда обновляется, их 2 на экране быть не может, если ты только на Сформировать нажимаешь и не нажимаешь в первом отчете на кнопки настройка и обновить.
Если твоя ТА - то она всегда обновляется, их 2 на экране быть не может, если ты только на Сформировать нажимаешь и не нажимаешь в первом отчете на кнопки настройка и обновить.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот