Имя: Пароль:
1C
1С v8
Как узнать что формирование СКД в фоновом режиме завершилось
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
И какая последовательность команд лучше при программном формировании СКД? Ссылку дайте пожалуйста!
Закон Брукера: Даже маленькая практика стоит большой теории.