Имя: Пароль:
1C
Админ
синхронизация одинаковых функций в нескольких отчетах, как лучше?
0 Холст
 
29.07.13
16:30
есть несколько разнофункциональных внешний отчетов, в которых некоторые функции одинаковые (универсальный подбор и тп)
эти функции нельзя вынести в глобальный модуль тк отчеты применяются в разных типовых клиентов
со временем функции дорабатываются и каждый раз приходится в каждый отчет копипастить новый код функций
вопрос:
как бы оптимальнее (критерий - экономия времени на разработку) построить систему, чтобы при изменении функции в одном отчете
в других тоже была обновленная версия функции ?
пока 2 направления вижу:
- курить сборку - разборку обработок gcomp-ом и сопутствующими приблудами
- набросать обработку и компонентой Compound.dll делать логику "выбираем функцию из отчета-источника и ставим такой же код в отчетах-приемниках"
- использовать Inserter Альфа ? не знаю еще пригодно ли
кто сталкивался с подобноой проблемой и как выходил ?
1 Холст
 
29.07.13
16:30
пока к 2му варианту склоняюсь
2 Chum
 
29.07.13
16:32
Что мешает общие процедуры собрать во внешней обработке, а разношерстные отчеты настроить на работу с это обработкой? Ну если в глобальник нет желания лезть.
3 Джинн
 
29.07.13
16:34
(2) +100500
4 Salimbek
 
29.07.13
16:56
(0) Классы 1С++ не предлагать?
5 Холст
 
29.07.13
17:24
(2) это вариант, только сомнения что сильно замедлит выполнение... есть функции которые выполняются внутри цикла вывода по строкам, открывать каждый раз отдельную обработку не вариант
(4) какие например ? с классами слабо работал пока

хотелось бы решения по автоматизации сборки отчетов, а не вызова из отчета дополнительных обвязок
6 Мимохожий Однако
 
29.07.13
17:35
(0)Копипасте для новых отчетов или модернизированных отчетов проще всего.А старые отчеты, которые не меняются проживут и без этого до очередного изменения.
7 Попытка1С
 
29.07.13
17:41
(4) +1
8 fedoss
 
29.07.13
19:04
(4) Можно и без классов - ДобавитьГлобальныйМодуль() + #ЗагрузитьИзФайла. Все общие функции вынести в этот файл
9 Холст
 
29.07.13
19:11
(8) неплохо только формекс или 1С++ надо, но неплохо
10 Salimbek
 
29.07.13
20:28
(5) Ну как, подключашь 1С++, потом в defcls.prm пишешь, например:
// начало определения класса
class ГлобальныеФункции = unpack\classes\ГлобальныеФункции.ert
{}
// завершение определения класса !!

в этой обработке прописываешь:
Процедура УложитьТаблицу(пТЗ, ИмяТаб, Колонки="", рс="") Экспорт

и потом в любом месте можешь вызывать:
клВнешний = СоздавтьОбъект("ГлобальныеФункции");
клВнешний.УложитьТаблицу(взТЗ, "#tempDB");
11 Cthulhu
 
01.08.13
20:36
1) общие процедуры-функции - в отдельный текстовый файл, например, "globalshonado.txt";
2) во всех обработках, использующих этот функционал - "#загрузитьизфайла ...\NewModile.txt"
2.1) для каждой обработки сохранить в текстовом файле, совпадающим с именеv обработки, её текст КРОМЕ общего функционала.
3) все обработки запускать "стартером" - обработкой, которая возьмёт содержимое файла п.2.1, затем прилепит в самое начало содержимое файла п.1, сохранит результат в файле с именем п.2, согбственно стартанёт нужную обрабтку (п.2) и запилит файл п.2.1.
сборку-разборку модулей для отладки-конфигурирования - нарисовать тоже можно. даже авто-вынос общего по пачке обработок в псевдо-глобальник можно замайстрячить.
12 Cthulhu
 
01.08.13
20:36
" запилит файл п.2. " а не "2.1.", паардон.
Независимо от того, куда вы едете — это в гору и против ветра!