Фоновое выполнение отчетов и обработок в 1С77

18.10.08

База данных - Инструменты администратора БД

На примере реального отчета показывается, как заставить 1С выполнять одновременно 1, 2 и более заданий, в то время как пользователь продолжает спокойно работать с базой.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Документы базы в фоне
.1224317810 14,50Kb
1137
1137 Скачать (1 SM) Купить за 1 850 руб.
Для организации фоновых процессов используется OLE и WSH. Внешние компоненты не используются. Сам отчет выводит в таблицу документы базы вместе со всеми реквизитами шапок и табличных частей. Отчет простенький, но универсальный и весьма ресурсоемкий (что в данном случае является плюсом).

В связи с тем, что используется OLE, необходимо выполнение двух условий: база не должна быть запущена в монопольном режиме; в базе должен быть заведен пользователь с именем "process", паролем "system" и пустым пользовательским каталогом (то есть с каталогом по умолчанию) - это необходимо для того, чтобы было возможно создание нескольких одновременных OLE-подключений. В дальнейшем разработчик может сам организовать доступ к базе по своему усмотрению.

Возможно запустить одновременно несколько отчетов. В таблице запущенных процессов отображается время старта, время завершения, статус выполнения каждого отчета. Возможно прекратить формированание любого отчета, щелкнув по ячейке колонки "Убить". Если пользователь закрывает форму отчета до окончания формирования, то "убиваются" все незавершенные отчеты из списка. То есть важным условием является не закрывать форму отчета до окончания его (их) формирования. Можно часть кода (процедуру обработки ожидания) вынести в глобальный модуль, тогда это условие будет являться уже необязательным.

Во время выполнения отчета (отчетов) можно заниматься другими делами, то есть работать с базой в полном объеме. Когда один из отчетов завершается, на экран будет выведена таблица завершенного отчета.

См. также

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простецкий скрипт переименования файлов в папке в нижний регистр, будет полезен программистам и системным администраторам имеющим навыки програмирования в 1С. Можно легко настроить под себя, спасает мне периодически час времени, может, кому еще будет полезен.

1 стартмани

18.02.2022    4011    0    igor7777    6    

2

Инструменты администратора БД Программист Пользователь Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Боремся с бардаком. Работы в прошлых датах запрещены. Непроведенные документы (по разным причинам) - автоматом переносятся в начало текущего дня при запуске любого первого сеанса 1С в текущем дне. Задержка старта 1С - практически незначима. Не требует настройки, не требует допрограммирования (исключая один оператор вставки в процедуру старта системы). Можно обработку выполнять вручную с любой периодичностью.

2 стартмани

25.05.2020    5875    2    CheBurator    3    

2

Журнал регистрации Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    11556    phsin    20    

28

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Скрипт позволяет выполнить объединение конфигураций и реструктуризацию из командной строки. Объединение выполняется штатными средствами конфигуратора 1С 7.7, взаимодействие с которым происходит путем посылки нажатий клавиш. Пригодится, если есть необходимость обновить или постоянно обновлять множество ИБ.

1 стартмани

22.04.2017    15858    4    devlabnn    2    

6

Инструменты администратора БД Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

Перепроведение по счету для конфигурации Бухгалтерский учет для Украины, 1С: Предприятие 7.7

1 стартмани

23.09.2016    3851    1    Genyak    1    

0

Инструменты администратора БД Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Периодически сталкивался со следующими проблемами при печати в 1С: 7.7 работающей под терминалом: 1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер. 2) Отсутствует предварительный просмотр при печати. 3) Не работает печать без предварительного просмотра (пакетная печать документов). 4) В некоторых формах печатает, в некоторых нет.

1 стартмани

09.06.2016    28035    19    tux    3    

1

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    37106    rudjuk    21    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2712 19.10.08 16:41 Сейчас в теме
нююююю... это получается, что выполняется в другом сеансе 1Ски...? или я чего-то не понял? в чем фишка?
8. maljaev 789 19.10.08 23:39 Сейчас в теме
(1) По другому с 1С нельзя никак. В 1С8 возможны фоновые процессы через ком-подключение, что по сути то же другой сеанс, а в 1С77 есть только оле.
9. maljaev 789 19.10.08 23:45 Сейчас в теме
(1) Даже фоновое выполнение через оле - и то уже нетривиальная задача для 1С. Приходиться инициировать через жо... - смотри код.
2. Свой 164 19.10.08 17:36 Сейчас в теме
по сети гемор в плане скорости получится.... + висяки процессов если сетка упадет или ишбка в отчете будет... хотя сама идея хорошая - мы работаем и обработки работают :) хорошобы сделать так чтобы обработки выполнялись только на компе где база... для терминального варианта кстати нормально будет.
3. CheBurator 2712 19.10.08 18:02 Сейчас в теме
> так чтобы обработки выполнялись только на компе где база...
- запускаем на серваке "робота"
- подсовываем роботу задания
...?
4. Свой 164 19.10.08 19:51 Сейчас в теме
5. CheBurator 2712 19.10.08 20:51 Сейчас в теме
(4) ну так это - неинтересно...
6. maljaev 789 19.10.08 23:32 Сейчас в теме
В плане скорости все нормально. Увеличение времени формирования отчета незначительное - время создания подключения плюс время на обновление лога, не путайте формирование отчета в оле-среде и работу с объектами, созданными через оле-подключение. Висяки в случае падения сети могут быть - но это уже к разряду форс-мажоров.
7. maljaev 789 19.10.08 23:35 Сейчас в теме
Если будет ошибка в отчете, срабатывает попытка-исключение и все корректно закрывается.
10. CheBurator 2712 20.10.08 00:15 Сейчас в теме
посмотрим конечно...
но я где-то встречал хитрое паралельное выполнение обработок в 7.7...
11. maljaev 789 20.10.08 00:32 Сейчас в теме
(10) Хрен ты где встречал. Был функционал фоновых процессов в одной из внешних компонент, перенесенный потом по моей инициативе в формэкс, и благополучно оттуда похеренный в последствии. А дело в том, что параллельно в 1С можно выполнить только простейшие вещи типа 2+2 (утрирую), попытка выполнения более сложных вещей приводит к вылету 1С. Потому разработчики формэкс и 1с++ отказались от этой затеи и пришли к выводу что параллельные процессы в одном сеансе 1С принципиально невозможны. Можно создать фоновый внутрисеансовый отчет по подсчету документов базы, но не отчет по продажам или подобный. Я работал с фоновыми потоками еще до Альфа, и знаю что даже банальный запрос приводит к вылету.
16. andrewalexk 20.10.08 10:21 Сейчас в теме
(10)
:)
наверное ты про фоновую печать...
12. maljaev 789 20.10.08 00:33 Сейчас в теме
Так что альтернативы нет - либо так (через оле), либо никак.
13. artbear 1563 20.10.08 08:03 Сейчас в теме
Steban сделал "Сервер приложений для 1Cv77"
http://www.1cpp.ru/forum/YaBB.pl?num=1179245025;start=all
Схема в общем-то похожа, но есть отличия :) - работа через COM+, DCOM и т.д.
Одно из самых интересных отличий - возможна работа с удаленным компьютером :)
15. maljaev 789 20.10.08 09:25 Сейчас в теме
(13) Это я знаю. Хорошая вещь. Но даже он не сумел в одном сеансе сделать фоновые процессы. Говорю же, чебур - это невозможно. Ну а у меня хоть и не сервер приложений, зато не требует никаких компонент и внешних модулей. Сойдет на тот случай, когда надо порадовать чем-то директора или главбуха. :)
19. CheBurator 2712 21.10.08 02:27 Сейчас в теме
(15) угумс.. сервер приложений/не сервер приложений - нужен "фоновый процесс" который по расписанию обсчитывает некие алгоритмы по данным из базы и кладет "куда-то" (?) резудьтаты расчета.. я в нужный _мне_ момент времени - беру последний просчитанный вариант данных и юзаю его... (при этом надо чтобы не было грязного чтения)... - держать для этого тривиального робота - хз.. надо подумать...
14. Abadonna 3968 20.10.08 08:59 Сейчас в теме
Хоть я и сам додумался, но плюс все равно ;)))
17. Noy 1079 20.10.08 10:52 Сейчас в теме
Технологию то многие знают и понимают, а вот сделать и выложить...
Плюс однозначно.
18. luns 20.10.08 10:59 Сейчас в теме
А вот тут: http://infostart.ru/profile/10590/projects/2636/ пример для 8... На эту ветку там ссылку тоже сделал.. Так как темы "родственные"
20. bambula 4 22.10.08 18:04 Сейчас в теме
Весч не нужная, но реализация зачЁт!
21. maljaev 789 27.10.08 14:21 Сейчас в теме
(20) Тебе может и не нужная... На мелких конфигурах вообще смысла нет внедрять - если отчет максимум 30 секунд выполняется, а на больших базах с отчетами по 15 и более минут - есть смысл. Доработка типового отчета под фоновое выполнение занимает где-то 1 час, зато потом начальство оценит старания (особенно если грамотно преподнести).
22. KrakoZyabl 77 29.10.08 11:02 Сейчас в теме
Интересная идея, спасибо, надо взять на вооружение.
23. Martyn 29.04.09 14:47 Сейчас в теме
+++. В бухгалтерии при подготовке годовых и квартальных оценят! А с главбуха и струсить чегой то можно будет ;-)
24. IrinaKostroma 18.06.09 09:30 Сейчас в теме
25. bulpi 217 06.04.10 01:21 Сейчас в теме
А помнится, я видел пример фонового процесса в 7.7 , сделанного без ОЛЕ. Только с помощью текстового поля на форме. Не запомнил, где видел, помню только суть Или это мне приснилось? Кто-то же наверняка видел, если я видел не во сне ? :)
26. bulpi 217 07.04.10 16:20 Сейчас в теме
(25)
Вспомнил! Конечно же, это не было параллельным процессом, просто имитация. Такой себе фокус. См. файл.
Прикрепленные файлы:
1.ert
daba; vasko; gucci76; +3 Ответить
27. FIZIK 11 23.09.11 13:58 Сейчас в теме
Есть отчет который больше часа молотит, вот менеджер порадуется.
28. angy 20.10.11 16:43 Сейчас в теме
Класная штука где маслают большие отчеты, я обычно завожу еще пользователя и выполняю им такие задачи, дешево и сердито...
29. пользователь 26.01.12 07:24
Сообщение было скрыто модератором.
...
30. sss999 48 08.08.14 11:16 Сейчас в теме
Напиши что он делает,а то ничего непонятно.
31. ToJIuK 27.08.14 16:43 Сейчас в теме
согласен с sss999, что то вообще ничего не понятно , как засунуть в данную обработку свою Обработку, чтобы она (моя обработка)выполнялась?
Оставьте свое сообщение