Как узнать что формирование СКД в фоновом режиме завершилось #754315


#0 by tciban
Уважаемые коллеги! Делаю обработочку (8.3, управляемые формы) для формирования прайслиста. Смысл в том, что бы сформировать прайслист с остатками и тек. ценами (ну это банально, через СКД), добавить в него картинки и скинуть получившееся в файл Excel. Т.е. пользователь в форме (речь, на всякий случай, идет про УФ) указывает всякие там условия для формирования прайса, нажимает кнопку и все. Дальше все само, а он занимается своими делами в 1С. Проблема вот в чем - я запускаю формирование табличного документа в фоне, точнее оно сам так работает для отчета под 8.3 под SQL сервером, но потом я должен напустить на получившуюсся таблицу процедуру которая полставит туда картинки, ибо как известно СКД само это не умеет. Но поскольку СКД отрабатывается в фоне, то как мне узнать, что таблица уже готова и можно проставлять картинки?
#1 by jurassic
лучше подумай, как картинки при компоновке данных вывести. я на инфостарте видел
#2 by tciban
использование события "ПриКомпоновкеРезультата" не дает нужного эффекта. Если прописываю это событие в модуле отчета - СКД формируется не в фоне.
#3 by tciban
И что самое интересное - при большом объеме все виснет намертво
#4 by Гёдза
если в фоне, то никак
#5 by tciban
может все вместе сделать как фоновое задание? Т.е. программно запустить компоновку, после нее простановку картинок и сброс в xls и все в общедоступном модуле и запускать фоновой задачей?
#6 by tciban
UP! Мудрые гуру! Где же вы?
#7 by jurassic
мудрые гуру минуты за две нашли
#8 by tciban
это первое, что я сделал. Я этот метод  и взял за основу, но как уже писал если мы используем событие ПриКомпоновкеРезультата - СКД работает не в фоне! И более того - прибольшом объеме данных, если берем большую группу товаров - все виснет. А вот если сначала отработать построение таблицы, а потом напустить вставку картинок, то все работает.
#9 by Lexey_
ЭтаФорма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый);
#10 by tciban
Вот именно так я и делаю. Но как мне узнать потом, что таблица уже сформировалась и что уже можно туда пихать картинки? Еще раз - я знаю как сделать в фоне таблицу и это можно даже делать не в фоне, это достаточно быстро. Но когда начать подставку картинок? Вот в чем мой вопрос!!!
#11 by DmitrO
А почему картинки надо вставлять не в процедуре при компоновке результата? Вставляй их там же и будет все в фоне.
#12 by Tateossian
Делай сам свое фоновое задание и обработчиком опрашивай временное хранилище, куда на сервере помещай результат.
#13 by tciban
пробовал. При выводе большой товарной группы все виснет. И потом это на в фоне.
#14 by tciban
вот я в и спрашивал - может так сделать, может делал кто нибудь так?
#15 by Fragster
можно в форме в обработке оповещения проверять содежжимое табдока. В макете нарисовать таким образом, чтобы ячейка 1.1 была серой. При начале формирования ставим её, допустим, красной и запускаем "скомпоновать результат". ну и далее как только она стала серой - обходим табдок и ставим картинки.
#16 by Tateossian
Я делал, но без картинок:)
#17 by Fragster
+ ну и да, при начале обработки табдока меняем серый цвет на белый
#18 by tciban
В макете нарисовать таким образом, чтобы ячейка 1.1 была серой. При начале формирования ставим её, допустим, красной и запускаем "скомпоновать результат". ну и далее как только она стала серой - обходим табдок и ставим картинки. Идея интересная, но как ее сделать то серой? Что то я не понял...
#19 by tciban
ну и остается вопрос - когда же запустить процесс проверки изменения цвета ячейки?
#20 by Гёдза
Обработчик ожиданая
#21 by DmitrO
см. ПодключитьОбработчикОжидания с интервалом скажем 3 сек. другого способа определить состояние завершения фонового задания нет. ну тут скорее всего вставка картинок это тоже длительный процесс и его надо тоже убирать в фон, а для этого надо снова эмыкселину на сервер загонять, это не эффективно, поэтому думаю правильное решение это все делать в одном своем фоновом задании.
#22 by tciban
Т.е. компоновщик СКД никак не сообщает о том, что все сделал...
#23 by DmitrO
да, по цвету ячейки это по сути искусственный косвенный признак.
#24 by tciban
тогда последний вопрос - вот я буду компоновать СКД в фоновом задании. Но СКД и так компонует себя в фоне. Это что за масло масляное?
#25 by tciban
И какая последовательность команд лучше при программном формировании СКД? Ссылку дайте пожалуйста!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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