![]() |
|
Как узнать что формирование СКД в фоновом режиме завершилось | ☑ | ||
---|---|---|---|---|
0
tciban
28.09.15
✎
11:17
|
Уважаемые коллеги! Делаю обработочку (8.3, управляемые формы) для формирования прайслиста. Смысл в том, что бы сформировать прайслист с остатками и тек. ценами (ну это банально, через СКД), добавить в него картинки и скинуть получившееся в файл Excel. Т.е. пользователь в форме (речь, на всякий случай, идет про УФ) указывает всякие там условия для формирования прайса, нажимает кнопку и все. Дальше все само, а он занимается своими делами в 1С. Проблема вот в чем - я запускаю формирование табличного документа в фоне, точнее оно сам так работает для отчета под 8.3 под SQL сервером, но потом я должен напустить на получившуюсся таблицу процедуру которая полставит туда картинки, ибо как известно СКД само это не умеет. Но поскольку СКД отрабатывается в фоне, то как мне узнать, что таблица уже готова и можно проставлять картинки?
|
|||
1
jurassic
28.09.15
✎
11:18
|
лучше подумай, как картинки при компоновке данных вывести. я на инфостарте видел
|
|||
2
tciban
28.09.15
✎
11:30
|
использование события "ПриКомпоновкеРезультата" не дает нужного эффекта. Если прописываю это событие в модуле отчета - СКД формируется не в фоне.
|
|||
3
tciban
28.09.15
✎
11:32
|
И что самое интересное - при большом объеме все виснет намертво
|
|||
4
Гёдза
28.09.15
✎
11:34
|
если в фоне, то никак
|
|||
5
tciban
28.09.15
✎
11:38
|
может все вместе сделать как фоновое задание? Т.е. программно запустить компоновку, после нее простановку картинок и сброс в xls и все в общедоступном модуле и запускать фоновой задачей?
|
|||
6
tciban
28.09.15
✎
11:55
|
UP! Мудрые гуру! Где же вы?
|
|||
7
jurassic
28.09.15
✎
12:05
|
мудрые гуру минуты за две нашли http://www.develplatform.com/2013/03/blog-post_6527.html
|
|||
8
tciban
28.09.15
✎
12:26
|
это первое, что я сделал. Я этот метод и взял за основу, но как уже писал если мы используем событие ПриКомпоновкеРезультата - СКД работает не в фоне! И более того - прибольшом объеме данных, если берем большую группу товаров - все виснет. А вот если сначала отработать построение таблицы, а потом напустить вставку картинок, то все работает.
|
|||
9
Lexey_
28.09.15
✎
12:35
|
ЭтаФорма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый);
|
|||
10
tciban
28.09.15
✎
12:47
|
ЭтаФорма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый);
Вот именно так я и делаю. Но как мне узнать потом, что таблица уже сформировалась и что уже можно туда пихать картинки? Еще раз - я знаю как сделать в фоне таблицу и это можно даже делать не в фоне, это достаточно быстро. Но когда начать подставку картинок? Вот в чем мой вопрос!!! |
|||
11
DmitrO
28.09.15
✎
12:52
|
(10)А почему картинки надо вставлять не в процедуре при компоновке результата? Вставляй их там же и будет все в фоне.
|
|||
12
Tateossian
28.09.15
✎
12:52
|
(10) Делай сам свое фоновое задание и обработчиком опрашивай временное хранилище, куда на сервере помещай результат.
|
|||
13
tciban
28.09.15
✎
12:53
|
(11) пробовал. При выводе большой товарной группы все виснет. И потом это на в фоне.
|
|||
14
tciban
28.09.15
✎
12:54
|
(12) вот я в (5) и спрашивал - может так сделать, может делал кто нибудь так?
|
|||
15
Fragster
гуру
28.09.15
✎
12:55
|
можно в форме в обработке оповещения проверять содежжимое табдока.
В макете нарисовать таким образом, чтобы ячейка 1.1 была серой. При начале формирования ставим её, допустим, красной и запускаем "скомпоновать результат". ну и далее как только она стала серой - обходим табдок и ставим картинки. |
|||
16
Tateossian
28.09.15
✎
12:56
|
(14) Я делал, но без картинок:)
|
|||
17
Fragster
гуру
28.09.15
✎
13:01
|
(15)+ ну и да, при начале обработки табдока меняем серый цвет на белый
|
|||
18
tciban
28.09.15
✎
13:13
|
В макете нарисовать таким образом, чтобы ячейка 1.1 была серой.
При начале формирования ставим её, допустим, красной и запускаем "скомпоновать результат". ну и далее как только она стала серой - обходим табдок и ставим картинки. Идея интересная, но как ее сделать то серой? Что то я не понял... |
|||
19
tciban
28.09.15
✎
13:14
|
ну и остается вопрос - когда же запустить процесс проверки изменения цвета ячейки?
|
|||
20
Гёдза
28.09.15
✎
13:19
|
(19) Обработчик ожиданая
|
|||
21
DmitrO
28.09.15
✎
13:22
|
(19)см. ПодключитьОбработчикОжидания с интервалом скажем 3 сек. другого способа определить состояние завершения фонового задания нет.
(17)ну тут скорее всего вставка картинок это тоже длительный процесс и его надо тоже убирать в фон, а для этого надо снова эмыкселину на сервер загонять, это не эффективно, поэтому думаю правильное решение это все делать в одном своем фоновом задании. |
|||
22
tciban
28.09.15
✎
13:22
|
Т.е. компоновщик СКД никак не сообщает о том, что все сделал...
|
|||
23
DmitrO
28.09.15
✎
13:23
|
(22)да, по цвету ячейки это по сути искусственный косвенный признак.
|
|||
24
tciban
28.09.15
✎
13:33
|
тогда последний вопрос - вот я буду компоновать СКД в фоновом задании. Но СКД и так компонует себя в фоне. Это что за масло масляное?
|
|||
25
tciban
28.09.15
✎
13:36
|
И какая последовательность команд лучше при программном формировании СКД? Ссылку дайте пожалуйста!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |