Имя: Пароль:
1C
1С v8
Автоматические формирования отчетов и обработок за пользователя - у кого какие идеи есть?
0 pavlo
 
29.08.17
13:36
Никто не реализовывал такое дело в 8.3?

Идея такая, есть некий РС задач, в нем исключительно внутренние обработки и отчеты, который пользователи формируют руками, но некоторые они хотят с определенными настройками запускать на сервере, чтобы этот отчет отработал и сохранил ночью скажем (как и сейчас руками) куда либо на диск результат (возможно на почту, не суть).

Так вот проблем несколько:
1. Сохранение формы
2. С другой стороны сохранение всей формы вроде как смысла не имеет так как на сервере вся эта форма не доступна.

Нужно как то реализовать прозрачно, а не пилить каждый отчет под это глобально (частично конечно можно что то установить на будущее и в старых как аксиому, но не перелопачивать).

В 77 не было как такого сервера 1с там крутился полноценный сеанс и потому там формексом универсально собиралась вся форма и сохранялась в Справочник заданий, потом по времени там установленном просто запускалась обработка/отчет и в нее подтягивалось все это сохраненное пользователем и за него срабатывало сформировать и все. Тут такое не прокатит.
1 Лефмихалыч
 
29.08.17
13:38
БСП, выполнение дополнительных отчетов и обработок по расписанию
2 Beduin
 
29.08.17
13:38
(0) Так ты можешь табличныйдокумент в тучу разных форматов сохранить. Зачем форму сохранять?
3 Garykom
 
гуру
29.08.17
13:40
(1) Он допиливать готовые не хочет, хочет ими "внешне управлять"
4 pavlo
 
29.08.17
13:42
(1) БСП нет, да и там часто сильно все увязано к конфе своей.
(2) Табличный то причем, тут нужно за пользователя, но с указанными им настройками запустить скажем ночью и сформировав сохранить ему в папку ;)
(3) ну да, как я это делал в 77, понятно что немного допилить можно и нужно будет скорее всего, но без массового перепиливания хочется обойти их вагон.
5 h-sp
 
29.08.17
13:46
(4) ну то есть форма как бы нахрен не нужна здесь. В модули отчета пишешь процедурку, которая формирует табдокумент и выбрасывает его файл на диске. И эту процедурку вызываешь регламентным заданием по расписанию.
6 Garykom
 
гуру
29.08.17
13:48
(5) Причем вот этот "процесс допиливания с добавлением процедурки" можно вполне автоматизировать
7 ptiz
 
29.08.17
13:50
(0) "не пилить каждый отчет под это глобально" - для этого отчеты должны быть сделаны одинаково и допускать возможность формирования "извне".
8 pavlo
 
29.08.17
14:01
(7) в той или иной степени они одинаковы форма универсально формируется - меняется только СКД запрос, почти везде так удалось сделать.
(5) сейчас все отчеты уходят в фон с котиками блин. И потом процедура формирования то на сервере, вопрос настроек которые может любые задавать пользователь на форме :(
Всех их в каждом отчете описывать не хотелось бы.
9 pavlo
 
29.08.17
14:02
(6) поясни плизз по конкретнее о чем речь ;)
10 pavlo
 
29.08.17
14:11
Вообще вариантов не мало, именно интересно если идея как более универсально и с меньшими затратами сделать идею.

Если нет, конечно всегда есть варианты перепилить отчеты, или фикс. элементы которые храним или все вместе.

А тут не только как задача, но и как академ. интерес реализовать. Думал, но как в 77 (уже писал) это не проканает на клиент-серверном и тут мозг пока шевелить нужно сильнее и придумать какую то более красивую и удобную схему как для разработки в будущем так и для пользователя.
11 DrShad
 
29.08.17
14:13
есть еще такая вещь как вариант настройки отчета - сохраняй в них нужные отборы и параметры, потом рег заданием исполняй и все
12 DrShad
 
29.08.17
14:14
у нас в УТ именно так и пашет сервант всю ночь - несколько отчетов рассылает и кучу регламентных обработок делает
13 pavlo
 
29.08.17
14:15
(11) идея очень не плохая, но:
1. Что то не очень пока процесс понятен с ним
2. В большинстве штатно это используется, а еще один отдельный вариант для таких заданий же фиг сделаешь чтобы не мешать с пользовательскими которые нафиг регламенту не нужны?
14 Garykom
 
гуру
29.08.17
14:17
(9) Разбираешь конфу или внешние обработки на файлы, модифицируешь, собираешь.

Что и как модифицировать можно для каждой обработки описать программным кодом.
15 pavlo
 
29.08.17
14:17
(11) и варианты разве есть в обработках? :)
16 pavlo
 
29.08.17
14:18
(9) есть для 8.3 что то такое как gcomp?
17 Garykom
 
гуру
29.08.17
14:22
(14)+ Можно даже сделать некий конструктор модификации для юзеров, чтобы указывали какие параметры из формы обработки/отчета в модификациях процедур/функций использовать.

(16) http://v8.1c.ru/o7/201507xml/index.htm
18 pavlo
 
29.08.17
14:24
(17) для сборки нужно почитать, вероятно удобно спасибо.
Но точно не для пользователей что-либо собирать :)
19 Garykom
 
гуру
29.08.17
14:32
(18) Дык для юзеров напиши "конструктор" добавления произвольного отчета "в задания".

Открыли твой конструктор, выбрали файл внешнего отчета/обработки - показалась форма со списком полей и кнопками типа "Сформировать".

Выбирают значения полей и указывают какая кнопка отвечает за выполнение - твой конструктор делает нужную функцию/процедуру и вставляет ее. Все отчет модифицирован для автозапуска.
20 Garykom
 
гуру
29.08.17
14:35
(19)+ По сути функция создается программно с набором входных параметров, затем копируется существующий код "Сформировать", только подмена "ТабДок.Показать();" на "Возврат ТабДок;"

Это если "простые отчеты" без лишних извратов.
21 pavlo
 
29.08.17
14:42
(19) да все равно формы нет на сервере :(
22 Garykom
 
гуру
29.08.17
14:44
(21) Тебе не нужна "форма", тебе же только данные из полей формы, которые юзер навыбирал в форме отчета нуна
23 Garykom
 
гуру
29.08.17
14:46
(22)+ чтобы отчет сформировать с входными параметрами-данными
24 pavlo
 
29.08.17
14:48
(23) чую я не очень понял ссылку твою тогда :( Как вяжется выгрузка конфы (структуры отчета) в XML и данные выбора пользователем :(
25 Garykom
 
гуру
29.08.17
14:52
(24) У тебя есть внешний отчет и ты хочешь его допилить до автозапуска.

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

Ты попробуй эту модификацию провести вручную - а затем банально автоматизируй делание этих модификаций!

Выгружаешь внешний отчет в XML, файлы и используя тексты модулей и описания форм производишь модификацию кодом.
26 Garykom
 
гуру
29.08.17
14:54
пример функции автозапуска

Функция Автозапуск(ПериодС, ПериодПО, Организация, Склад)
   //... Тут код скопированный и с подменами входных параметров

   Возврат ТабДок;
КонецФункции
27 Garykom
 
гуру
29.08.17
14:56
(26)+ Вот набор параметров (ПериодС, ПериодПО, Организация, Склад) берется из  "формы" (указывается пользователем) и сохраняется в значения "система автозапуска" чтобы подставить их перед выполнением по расписанию.
28 pavlo
 
29.08.17
15:15
ну тоесть все равно нужно знать все реквизиты которые я хочу сохранить. Пользователь не выберет, есть и часть которые неявно формируются без него, но по результатам его действий на форме.
Потом как то программно выгрузить все в XML, найти функцию и подменить на новую с нужными параметрами?

Если так то как то сложно для пользователя.

Они должны выбрать на форме то, как бы сейчас нажали сформировать и получили результат. Давать решить пользователям что сохранять и что нет, да еще заранее знать все это, иначе вопросов будет больше чем работать отчет что там и как заполнить и что за реквизиты все эти :)
29 Garykom
 
гуру
29.08.17
15:21
(28) Знаешь как это звучит?

"У меня кривой код в кривых отчетах, но переписывать их я не буду."

ЗЫ
Возьми https://ru.wikipedia.org/wiki/AutoIt
30 Вафель
 
29.08.17
15:24
Проще внедрить подсистему из БСП
31 arishkaKlimova
 
29.08.17
15:31
(0) Отчеты можно просто регламентным заданием высылать на почту
32 Garykom
 
гуру
29.08.17
15:32
(30) от переписывания отчетов "под БСП" это не спасет
33 Вафель
 
29.08.17
15:33
В любом случае их нужно переписывать. Так уж переписывать в нужном ключе
34 Garykom
 
гуру
29.08.17
15:34
(33) Угадай что я предложил в (6)?
35 ildary
 
29.08.17
15:35
(28) настало время отойти от семерочной привычки постоянного изобретения велосипеда и осваивать типовые механизмы по максимуму.
36 pavlo
 
29.08.17
15:36
(29) ну жаль что так это звучит.

Потому как я говорю о универсальности, а не перепись параметров. На форме есть куча параметров для статистики работы отчета (не нужных пользователю), опять же для хранения адреса хранилища, из которого потом на клиенте получаем и показываем - это по сути логика типовой отчасти запускать отчеты в фоне с котиками :)

И эти параметры все точно не нужны пользователю и он о них не знает.
Не описывать, значит показать все и сказать заполни.

Для передачи всех параметров явно (я уже понял не вариантов) придется переписывать не слабо отчеты так, чтобы все через параметры передавалось на сервер, отчасти и так  делается, но не все. Но вот параметры собрать хотелось как то умнее и проще.

XML что даст, мне же не только при сохранении его нужно будет распарсить и добавить все значения параметров, так еще потом его считать в части параметров на сервере. Но чем оно лучше тогда тем, чтобы просто написать общий модуль с передачей формы, который прошерстит все и сохранит в хранилище какое-либо значений?
37 pavlo
 
29.08.17
15:36
(28) не заметил типовых удобных механизмов, и уж в 77 это не было велосипедом :)
38 pavlo
 
29.08.17
15:37
(31) это понятно
39 pavlo
 
29.08.17
15:38
(34) я так понял в тот момент что это как раз разложил отчет дописал что то  и собрал в новый как было в 77 в gcomp  я так понял :)
40 Вафель
 
29.08.17
15:38
ну раз так, то: пилите Шура, пилите... свой механизм
41 pavlo
 
29.08.17
15:39
(32) выдергивать всю подсистему БСП и внедрять это просто ад и имхо не вариант. Овчинка выделки не стоит имхо.
42 pavlo
 
29.08.17
15:40
(40) А зачем крестить бульдога с носорогом, только потому что в одном есть что то большое, чего нет в другом? :)
43 pavlo
 
29.08.17
15:40
(40) просто это не тривиальная задача такого скрещивания.
44 ildary
 
29.08.17
15:44
(37) в 7.7 нет никакого механизма удобного руления всеми настройками отчета снаружи и выгрузки результатов куда хошь и во сколько хошь и с любой регулярностью. Я сам в свое время навертел подобные механизмы, но после знакомства с платформенными механизмами восьмерки я смотреть на собственные колхозы не могу.

(43) значит задействовать готовые механизмы и наработанные практики отказываемся? И где тут экономия сил и удобство?
45 Мыш
 
29.08.17
15:44
(41) Обычно такое слышишь от пользователей: "Мы так привыкли"
46 pavlo
 
29.08.17
15:48
(44) ну какие колхозы, у меня универсально на 77 вся форма сохраняется и восстанавливается у задания и все формируется, очень удобно. Но дело не в этом, да в 8 уже не получится так мыслить ибо полноценный клиент-сервер и нет формы на сервере, а само собой держать сеанс 1с это бред.

Не вижу пока каких-то крутых штатных механизмов, чтобы сказать вот колхоз был :) Ну не ради флейма, а реально не вижу именно удобного.

Наработанные практики займут времени просто огромное чтобы перенести в эту конфу уж поверьте, было бы это скопировал, малость подвинтил и вуаля, а так какая тут экономия сил то?
47 Garykom
 
гуру
29.08.17
15:49
(36) А вот как это реализовать на практике уже твое дело, смотря сколько там отчетов надо переписывать и какие они.

Теоретически можно и с формами в клиенте работать (да будет изврат с запуском клиента на сервере).

Изучи http://catalog.mista.ru/public/304736/ - можно обойтись только простым автоматическим добавлением одинакового кода в каждую форму внешнего отчета/обработки "при открытии".
А далее как в 1С неким роботом открывать формы и юзать, как ловить ТабДок уже сам.

И еще http://catalog.mista.ru/public/625467/ тоже для общего развития.
48 Garykom
 
гуру
29.08.17
15:49
(47) *А далее как в 1С77 с формексом...
49 pavlo
 
29.08.17
15:50
(45) вообще ни к чему это сказали. Я не говорил что привыкли и ниграмм нигде не писал, что хочу как в 77 :)
Моя задача сделать чтобы было удобно остальным потом отчеты добавлять и главное пользователям, а не как там задумано фирмой 1с к примеру. Главное у нас пользователи и важно удобство. Такая работа. ;)
50 pavlo
 
29.08.17
15:52
(47) добавлять ок, а как ты роботом формы открывать собрался на сервере? :)
51 Garykom
 
гуру
29.08.17
15:52
(50) в данном случае "сервер" подразумеваю windows/linux а не 1С
52 pavlo
 
29.08.17
15:54
(48) я не говорил что сложно что то доработать, я сразу писал что немного доработать все 15 отчетов придется и это понятно.
Другое дело когда их кардинально нужно перепилить :)
В части того, чтобы все выполнить в модули объекта к примеру скорее всего сделаю везде и буду вызывать с сервака. Но осталось как то удобно пользователю и прозрачно мне и остальным после меня доабвлять возможность передать и сохранить настройки ;)
53 pavlo
 
29.08.17
15:55
(51) ну и как ты на сервере ОС хочешь запускать? отдельным экземпляром предприятия? если так то это вообще изврат :)
или сори я не понял тебя
54 Garykom
 
гуру
29.08.17
15:56
(52) 15 отчетов это пару дней слегка допилить их, даже смешно ))

Короче перепили один отчет с переносом всего кода "формирования отчета" на "&НаСервере" и сделай под него автозапуск. Далее потихоньку остальные отчеты перепилишь.
55 Garykom
 
гуру
29.08.17
15:56
(53) А как ты 1С77 запускал, разве не отдельным экземпляром?
56 pavlo
 
29.08.17
15:59
(54) да не вопрос, конечно немного допилить не вопрос вообще. Я не говорил что сложно ;)
Формирование там и так на сервере, просто в модуле формы.
Вопрос параметров ;)
57 pavlo
 
29.08.17
16:01
(55) отдельным, но нафига мне юзать в клиент-серверном приложении то, что было в приложении которое это не умеет.

p.s. Более того никто не даст такого делать в компании и БСП не поставишь безопасники добро не дадут, ни скачать (у нас все запрещено) ни установить без дикого согласования чего либо из вне :)
Так что все только своими руками :)
58 pavlo
 
29.08.17
16:04
Ладно, спасибо, я понял что просто не сохранить все параметры без изобретения велосипеда. Я думал что то типа Форма.СохранитьВПараметры() хотя сам понимал что врядли слишком сложная структура.
Вероятно придется выдумывать с нуля как и во что собирать все возможные реквизиты на форме и в объекте, чтобы потом это использовать на сервере.
59 Мыш
 
29.08.17
16:41
(58) Изобретателям велосипедов поём мы славу
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан