v7: Автоматическое обновление в ТЗ на форме. #776077


#0 by vova1122
Сначала опишу ситуацию. Есть документ (Товар в ремонте). В нем реквизит "СтанРемонта" Тип "Число" (1- Принят, 2- передан в СЦ, 3- Заказано запчасти, 4 - выполнен, 5- выдан клиенту). И так как в журнале все вперемешку я сделал Отчет. Поместил на форму ТаблицуЗначений. Установил флажки, для выбора документы с каким статусом показывать. Повесил на каждый флажок процедуру ПересчитатьТЗ. Это все красиво работает. А теперь о проблеме. Чтобы вообще исключить работу в журнале этого документа, а только в отчете, я добавил кнопку создания нового документа в этом отчете. Документ создается но в ТЗ он не появляется до тех пор пока не ПересчитатьТЗ. Что логично. Можно как то реализовать чтобы после создания нового документа в отчете запускался автоматически ПересчитатьТЗ? И еще вопрос. Можно ли выводить Данные в ТЗ в несколько строк как в ЖурналеДокумментов?
#1 by Builder
Повесь на форму пустой текстовый реквизит, у него в формуле пропиши вызов своей процедуры обновления, например ОбновитьМоюТаблицу Она будет запускаться каждый раз при обновлении формы. Что бы запускалась только при создании документа, сделай флаг и проверяй его. Ну или вызвать обновление после создания документа, хотя непонятно как ты его создаешь. В таблице вроде нельзя выводить в несколько строк, не встречал такого.
#2 by vova1122
открываю форму документа через "ОткрытьФорму" (на кнопке повесил формулу ОткрытьФорму(Документ.ТоварВРемонте). Как вызывать обновление после создания документа?
#3 by oslokot
создания или записи? при создании документа его еще нет в БД
#4 by vova1122
Извиняюсь. Конешно нужно после записи
#5 by Это_mike
Прикинь, в журналах тоже можно отбирать. ну как вариант, передавай в создаваемый документ контекст обработки. а при событиях в документе, требующими реакции твоей обработки - открывай обработку с параметром этого документа, ну и соотвественно внутри формы обработки обрабатывай это дело в ПриОткрытии или ПриПовторномОткрытии
#6 by Это_mike
Ну, или возьми ТП и сделай свой журнал, с отборами и санитарками...
#7 by vova1122
В журнале не прокатит. (Нужно отобрать одновременно по нескольким значениям одного и того же реквизита (например отобразить СтанРемонта = 1 и 3 и 4))
#8 by vova1122
ТП есть в семерке?  Я далек от этого.   А про передачу контекста можно подробнее? ТЗ в обработке должна обновиться после записи докуммента
#9 by Это_mike
ну, если количество вариантов конечно - можно извратиться. у приличных людей - ТП есть. подробнее - так в написано достаочно подробно. код писать я не буду
#10 by vova1122
Код не прошу. Только поясните  в каком месте в документе прописывать? в ПриЗаписи?
#11 by Builder
Как вариант проверять КонтекстФормы. Если изменился со 100 на 0 - обновить. ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>) Пока форма открыта, тип значения параметра <КонтекстФормы> равен 100, когда закрыта - 0.
#12 by Это_mike
так я ж написал - "при событиях в документе, требующими реакции твоей обработки" Если хочешь, чтоб она при записи реагировала - ставь в ПриЗаписи (только оно вызывается _до_ записи), можешь при закрытии, можешь хоть каждый тык на клавишу обрабатывать
#13 by Это_mike
по таймеру, чтоль? фи...
#14 by Builder
Зачем по таймеру? В той же процедуре обновления на форме, например. Хотя изврат еще тот.... :) Самый простой способ - ОткрытьФормуМодально Тогда точно можно отследить ее закрытие. Но устроит ли это ТС ?
#15 by Это_mike
да есть 100500 видов решений всяких. Хоть через генерацию внешнего события. или фабрику событий
#16 by vova1122
Высших материй не предлагать...
#17 by vova1122
Оказалось все намного проще. В документе на стандартную Кнопку "ОК" Повесил свою процедуру записи А в отчете написал следующий код
#18 by vova1122
а теперь возник другой вопрос..... Все это работает отлично только для одного пользователя. Если отчет открыт в двух и более пользователей, то второй пользователь увидит новые документы только после того как у себя нажмет "Обновить" или также создаст новый документ. Но думаю эту проблему уже простым путем не решить.....
#19 by Это_mike
считай количество гомнодокументов за сегодня, и если не совпоает с предыдущим - обновляй. млять, ну ведь спрашивать на форуме дольше, чем подумать и сделать...
#20 by vova1122
А когда именно считать? каждые 5 сек?
#21 by Это_mike
по вкусу.
#22 by Это_mike
у тебя ж есть какой-то бизнес-процесс. вот п нему и ориентируйся...
#23 by vova1122
И где эту считалку прикрутить?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С