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

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

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

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

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

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

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

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

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

а DumpExternalDataProcessorOrReportToFiles оказалась не совсем удобной. форму выгружает с модулем в один файл, который еще разбирать надо.
33 nordbox
 
27.12.17
11:41
(32)>>форму выгружает с модулем в один файл, который еще разбирать надо.
Накатай письмо в 1с, пусть сделают в разные, может и прислушаются )
34 Asmody
 
27.12.17
11:47
35 Ботаник Гарден Меран
 
27.12.17
11:51
(30)
Там в комментариях ссылки еще на пару публикаций.
36 Tateossian
 
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)
37 Tateossian
 
27.12.17
11:55
В комментах написано, что и зачем, плюс прикручен хронометр: 200 обработок будет выгружать около часа.
38 Asmody
 
27.12.17
11:56
(36) pastebin'ы для такого придуманы
39 Tateossian
 
27.12.17
11:57
(38) Ну тут уж извините:) Можете в каталог перенести мисты)
40 Asmody
 
27.12.17
12:06
(39) Еще б понять что это
41 Serg_1960
 
27.12.17
12:09
(40) Сканирует каталог и в цикле запускает конфигуратор с ключом /DumpExternalDataProcessorOrReportToFiles для каждого найденного файла.

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

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

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

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

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