Вход | Регистрация



Нужен инструмент выгружающий модули и макеты из конфигурации и внешних объектов

Нужен инструмент выгружающий модули и макеты из конфигурации и внешних объектов
Я
   toypaul
 
27.12.17 - 08:57
Нужен инструмент, который сумеет выгрузить модули объектов и форм из конфигурации и внешних отчетов и обработок, а также макеты отчетов.

/DumpConfigFiles насколько я понял умеет выгружать только модули и только из конфигурации.

Требование выгружать макеты можно исключить. Загружать внешние объекты в конфу не вариант их слишком дофига.
 
 
   nordbox
 
1 - 27.12.17 - 09:02
(0) В конфе Выгрузить в файлы не?
   MM
 
2 - 27.12.17 - 09:02
(0) А  чем плох новый параметр /DumpConfigToFiles
   toypaul
 
3 - 27.12.17 - 09:08
Ну в принципе да /DumpConfigFiles выгружает и модули и всю остальную ерунду если не ставить отбор. Мне нужны только модули и макеты.

Главный вопрос как выгрузить модули и макеты внешних отчетов и обработок
   MM
 
4 - 27.12.17 - 09:13
(3) Продам справку 1С )
/DumpExternalDataProcessorOrReportToFiles - не подходит?
   Serg_1960
 
5 - 27.12.17 - 09:15
Заодно продай /DumpConfigFiles –Module :)
   toypaul
 
6 - 27.12.17 - 09:17
(5) ну это-то я уже первым делом сделал
   Asmody
 
7 - 27.12.17 - 09:22
   toypaul
 
8 - 27.12.17 - 09:28
(4) может и подходит. только не представляю как быть если обработок 200 шт, а выгружается "оно" только по одной. или я чота не понимаю
   nordbox
 
9 - 27.12.17 - 09:34
(8) каждый в отдельный файл
Ты видел что /DumpConfigFiles делает?
   MM
 
10 - 27.12.17 - 09:37
(7) Он может и быстрый, но не благословлён 1С.
(8) Придётся запускать отдельный процесс конфигуратора с флагом /DumpExternalDataProcessorOrReportToFiles для каждого файла, а ещё и отдельный каталог для каждого отчёта/обработки заводить.
 
 Рекламное место пустует
   toypaul
 
11 - 27.12.17 - 09:40
(9) не просто видел, а использовал. где там внешние отчеты?
   toypaul
 
12 - 27.12.17 - 09:46
(7) а можно вводный курс как этим пользоваться для тех кто 1й раз слышит что такое github?
   nordbox
 
13 - 27.12.17 - 09:47
   nordbox
 
14 - 27.12.17 - 09:48
+13 Дампы внешнего отчета или обработчик данных в набор файлов.
   toypaul
 
15 - 27.12.17 - 09:48
(13) и чо? 200 файлов по одному выгружать?
   Мыш
 
16 - 27.12.17 - 09:50
(15) Скрипт написать. фор ич.
   nordbox
 
17 - 27.12.17 - 09:52
http://v8.1c.ru/o7/201507xml/index.htm
Выгрузить/загрузить внешние отчёты/обработки вы можете не только интерактивно, но и автоматически, запуская конфигуратор в пакетном режиме. Для этого мы добавили два новых параметра: DumpExternalDataProcessorOrReportToFiles и LoadExternalDataProcessorOrReportFromFiles.
   Serg_1960
 
18 - 27.12.17 - 09:57
Не тормозите :) Автора мучает вопрос как одной командой выгрузить ВСЕ обработки из каталога.
   toypaul
 
19 - 27.12.17 - 10:01
(18) ага. вариант запуска конфигуратора на каждый из 200 понятен, но как-то не сильно нравится.
   toypaul
 
20 - 27.12.17 - 10:07
Попробую это http://catalog.mista.ru/public/186927/

тем более тут есть еще и обработки хранящиеся в базе
   Serg_1960
 
21 - 27.12.17 - 10:22
"тем более тут есть еще и обработки хранящиеся в базе" - как нибудь, будет время, загляни на ИТС и скачай обработку КонвертацияВнешнихОбработок82. Тогда не потребуются чужие костыли. У тебя будут свои собственные костыли :))
   toypaul
 
22 - 27.12.17 - 10:31
диск ИТС ... когда ж я его последний раз в глаза-то видел. лет пару назад наверное.
   Serg_1960
 
23 - 27.12.17 - 10:56
Диск ИТС? Моё мнение об авторе упало ниже плинтуса :))
Не диск, а сайт - https://its.1c.ru/db/metod8dev#content:3440:hdoc
   ИТ директор
 
24 - 27.12.17 - 10:57
(0) Ты всё пытаешься построить дерево вызова функций?
   toypaul
 
25 - 27.12.17 - 11:09
(24) построил
   ИТ директор
 
26 - 27.12.17 - 11:15
(25) законтрибьютишь?
   toypaul
 
27 - 27.12.17 - 11:23
(26) зачего?
   Ботаник Гарден Меран
 
28 - 27.12.17 - 11:24
(26)
Это ж баян уже и велосипед:
http://catalog.mista.ru/public/78976/
   ИТ директор
 
29 - 27.12.17 - 11:29
(27) выложишь на ИС?
   toypaul
 
30 - 27.12.17 - 11:36
(28) сам-ты пробовал это? ничего плохого сказать про эту обработку не хочу. но судя по коду она анализирует один модуль. это раз. два - делает разбор средствами 1С (Найти, СтрЗаменить).

я недавно пробовал очистить каменты средствами 1С так оно мне полминуты на модуле 700 Кб работало. а у меня в конфе 2500 модулей.

я же строю дерево по всем модулям. поэтому мне еще нужны и внешние отчеты и обработки.

на данный момент уже заполняется структура модулей с методами, строятся дуги. написал поиск методов по подстроке. все что мне было нужно для решения задачи.

теперь останется по дугами и стартовым вершинам развернуть дерево (вверх или вниз)
   toypaul
 
31 - 27.12.17 - 11:37
(29) на ИС вряд ли. задача клиентская. может забахаю статью на нашем сайте (если дадут добро).
   toypaul
 
32 - 27.12.17 - 11:39
надо будет обработку из (20) вот еще приспособить, чтоб она модули в удобном виде выгружала.

а DumpExternalDataProcessorOrReportToFiles оказалась не совсем удобной. форму выгружает с модулем в один файл, который еще разбирать надо.
   nordbox
 
33 - 27.12.17 - 11:41
(32)>>форму выгружает с модулем в один файл, который еще разбирать надо.
Накатай письмо в 1с, пусть сделают в разные, может и прислушаются )
 
 
   Asmody
 
34 - 27.12.17 - 11:47
   Ботаник Гарден Меран
 
35 - 27.12.17 - 11:51
(30)
Там в комментариях ссылки еще на пару публикаций.
   Tateossian
 
36 - 27.12.17 - 11:55
Держи, ОП

@ECHO OFF
@CHCP 1251

IF %time:~0,2% LSS 10 (SET begin_HH=10%time:~1,1%) ELSE SET begin_HH=1%time:~0,2%
SET /A begin_HH=%begin_HH%-100
SET begin_MM=1%time:~3,2%
SET /A begin_MM=%begin_MM%-100
SET begin_SS=1%time:~6,2%
SET /A begin_SS=%begin_SS%-100
SET /A begin_sec=3600*%begin_HH%+60*%begin_MM%+%begin_HH%

:: Каталог, где лежат обработки
SET work_dir="D:\1C\Локальные базы\Обработки"
SET log=output.log
SET dump=dump.txt

@ECHO OFF

IF NOT DEFINED CUR_VERSION_1C GOTO :error_raise

FOR /R %work_dir% %%G IN (*.e?f) DO call :s_sub "%%G" %begin_sec%
GOTO :EOF

:s_sub
@ECHO OFF

:: По дефолту выгружается в этот каталог (где лежит данный батник)
IF EXIST "ExternalProcessorData\%~nx1\NUL" DEL /Q "ExternalProcessorData\%~nx1

:: CUR_VERSION_1C - переменная окружения с актуальным номером версии 1С. Можно вручную заменить на 8.3.ХХ.ХХХ

:: D:\файловые\усхп_репо - пустая база без ничего 
CMD /C ""%ProgramFiles%\1cv8\%CUR_VERSION_1C%\bin\1cv8.exe" CONFIG /DisableStartupDialogs /DumpResult %dump% /Out %log% /F "D:\файловые\усхп_репо" /N "" /P "" /DumpExternalDataProcessorOrReportToFiles "ExternalProcessorData\%~nx1" "%~f1""

@ECHO.
@ECHO RETURNCODE %ERRORLEVEL%
@ECHO.

FOR /f "delims=" %%A in (%log%) do >nul CHCP 866& echo.%%A

@CHCP 1251
@CALL %ProgramData%\Task\TimeCount_end.bat  %2 %~dp0
@ECHO ON
@EXIT /B

:error_raise
@ECHO "ERROR: Not set variable path for 1C binaries!"
EXIT 5

======================
И вот TimeCount_end:

@ECHO OFF
@CHCP 1251

IF %time:~0,2% LSS 10 (SET End_HH=10%time:~1,1%) ELSE SET End_HH=1%time:~0,2%
SET /A End_HH=%end_HH%-100
SET End_MM=1%time:~3,2%
SET /A End_MM=%End_MM%-100
SET End_SS=1%time:~6,2%
SET /A End_SS=%End_SS%-100
SET /A begin=%1*1
SET /A end=(%end_HH%*3600)+(%end_MM%*60)+%end_SS%
SET /A worktime=%End%-%Begin%
IF %worktime% LSS 0 (SET /A worktime=24*60*60+%worktime%)
IF %ERRORLEVEL%==0 (ECHO Время обработки: %worktime% секунд. > %2summary.txt | TYPE %2summary.txt)
   Tateossian
 
37 - 27.12.17 - 11:55
В комментах написано, что и зачем, плюс прикручен хронометр: 200 обработок будет выгружать около часа.
   Asmody
 
38 - 27.12.17 - 11:56
(36) pastebin'ы для такого придуманы
   Tateossian
 
39 - 27.12.17 - 11:57
(38) Ну тут уж извините:) Можете в каталог перенести мисты)
   Asmody
 
40 - 27.12.17 - 12:06
(39) Еще б понять что это
   Serg_1960
 
41 - 27.12.17 - 12:09
(40) Сканирует каталог и в цикле запускает конфигуратор с ключом /DumpExternalDataProcessorOrReportToFiles для каждого найденного файла.

(офф) Не понимаю зачем нужно прибегать к посторонним языкам, если у нас есть православный 1С?
   Tateossian
 
42 - 27.12.17 - 12:20
(41) Батник - нативный виндовый инструмент. 1С-Софт одобряет.
   Serg_1960
 
43 - 27.12.17 - 12:34
Внешний костыль :(

Автору нужно:
- из справочника выгрузить обработки в каталог;
- разобрать на файлы;
- из файлов форм вытащить модули в отдельные файлы.

Логично всё это сделать в 1С. Озвученный скрипт - десяток строк на 1С.
   Tateossian
 
44 - 27.12.17 - 12:42
(43)  А как ты из 1С будешь вытаскивать модули? Без костылей? Ибо способность кода к самоанализу - рефлексия - это одна из особенностей ООП. А на сколько мы знаем, 1С не умеет в рефлексию.
   Serg_1960
 
45 - 27.12.17 - 12:48
(4) Хех... всё тоже самое: алгоритмом сформировать текст командной строки, ЗапуститьСистему("DESIGNER..."); и вперед с песнями :)
   MM
 
46 - 27.12.17 - 12:54
(44) Странно, всегда считал рефлексию понятием перпендикулярным к ООП. Кроме того 1С можно классифицировать, как объектно-основанную систему, т.е. использовать объекты можно, а создавать только по заданным шаблонам.
1С умеет работать с метаданными, это тоже рефлексия.
   toypaul
 
47 - 27.12.17 - 13:03
(45) чот у меня не взлетело с обработками ЗапуститьСистему("DESIGNER...");

хотя и не больно хотелось. вот еще бы понять чего ей не понравилось ...

да и все равно как я писал выше DumpExternalDataProcessorOrReportToFiles не удобен для модулей форм
   Serg_1960
 
48 - 27.12.17 - 13:11
(46) Формально он прав. Разработчики 1С сознательно запретили возможность работать с модулями во встроенном языке :( Платформа, естественно, с ними работать умеет. А нам с барского плеча кинули убогое /DumpConfigFiles и под большим давление из вне - DumpExternalDataProcessorOrReportToFiles :(
   MM
 
49 - 27.12.17 - 13:46
(47) Там запускается конфигуратор, а он требует монопольного режима. Если запустить конфигуратор с другими метаданными, то есть риск потерять часть структуры (типы реквизитов) внешних отчётов/обработок. По этой же причине выгрузку не запустить параллельно, если не создать копии баз из одного CF.
Подтверждает факт из(48)следующее: попробуйте поискать в синтакс-помощнике текст "во встроенном языке не предусмотрена работа со значением".
 
 Рекламное место пустует
   Serg_1960
 
50 - 27.12.17 - 14:41
Угу. Скорее всего запуск нового сеанса вызывался с текущими установками по умолчанию, т.е. была попытка открыть новый сеанс к этой-же базе.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует