1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Резервирование Проектов (Backup) - Автоматически

Сценарии / Модули API

Модератор: специалисты Eplan

Ответить

Автор темы
hardwareprojectspro
корифей
корифей
Сообщения: 768
Зарегистрирован: 14 дек 2012, 18:53
Имя: Александр
Благодарил (а): 215 раз
Поблагодарили: 11 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение hardwareprojectspro »

Господа, подскажите, где можно настроить резервирование проекта?
На компьютере коллеги увидел что при закрытии Eplan вскакивает всплывающее окно с вопросом выполнить резервирование проекта?
Я не нашел такой настройки.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

Скрипт в блоге такой был у меня. Автор Джонни, на форуме возможно тоже есть - поищите.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение keysansa »

ИМХО, не должно быть сообщения "выполнить резервирование?". Должно быть сообщение "резервироание выполнено" )
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

keysansa писал(а): 21 фев 2022, 17:10 не должно быть сообщения "выполнить резервирование?"
Нет, там алгоритм другой - при наличии активных проектов в Навигаторе страниц и при закрытии Е, вылетает окно с приглашением выполнить резервирование, сколько проектов открыто, столько раз и будет оно активно (если не ошибаюсь).

Сейчас поищу данный скрипт.

Отправлено спустя 2 минуты 55 секунд:
Вот он, с переводом, взято с сайта Jonny Wire
BackupOnClosingProject_rus.cs
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

keysansa писал(а): 21 фев 2022, 19:40
Если из скрипта убрать:

"DialogResult Result = MessageBox.Show(
"Хотите зарезервировать проект\n'"
+ strProjectname +
"'?",
"Сохранение данных",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question
);

if (Result == DialogResult.Yes)

{"
И там внизу будет закрывающая скобка, то бэкап будет выполняться каждый раз при сохранении, без вопросов.

Спасибо большое за скрипт!
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Автор темы
hardwareprojectspro
корифей
корифей
Сообщения: 768
Зарегистрирован: 14 дек 2012, 18:53
Имя: Александр
Благодарил (а): 215 раз
Поблагодарили: 11 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение hardwareprojectspro »

AGorskiy писал(а): 21 фев 2022, 19:22 Сейчас поищу данный скрипт.
Cпасибо, а как вставить этот скрипт? просто пока никогда не имел дело со скриптами в Eplan.
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

"....уууу....как всё запущено" (С) Рекомендую почитать книжку Гишеля
Снимок экрана 2022-02-22 094913.png
Отправлено спустя 2 минуты 5 секунд:
Просто Загрузите, при закрытии проекта будет предложение с резервированием. Однако, при закрытии всего Е - я не увидел это сообщение. Надо код смотреть.

Отправлено спустя 22 минуты 51 секунду:
Еще, что лично мне не нравилось в скрипте, но так и не поправил. Каталог по умолчанию куда "сваливается" архив, это та же папка с проектом. По мне так было бы логичнее некий каталог Backup, туда все резервы "сливаются", благо формат архива НАЗВАНИЕ_ПРОЕКТА_22.02.2022_10.10..zw1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение Barmaley4 »

Исправил скрипт, добавил переменную
backupDir = @"D:\backups"; (можно исправить на свой каталог) что бы бекапы в одном каталоге были, так же каждый проект будет сохраняться в свою папку, что бы в папке проекта собирался список из архивов одного проекта. (если это не нужно, вместо strDestination = Path.Combine(backupDir, strProjectname); сделать strDestination = backupDir; )
Так же изменил маску имени файла - точки в дате не нужны, лучше через _, и маску времени сделал в виде "год_месяц_число_часМинутаСекунда" - так легко найти самый свежий и самый старый бекап.
BackupOnClosingProject_rus.cs
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение keysansa »

Barmaley4 писал(а): 28 фев 2022, 13:35 backupDir = @"D:\backups"; (можно исправить на свой каталог) что бы бекапы в одном каталоге были
Лично мое мнение - это, вроде и очевидно, но проект содержит обычно больше данных, чем просто проект Eplan. Лично я создаю отдельную папку проекта, где есть всё, относящееся к проекту. И электросхемы, и механика, и строительство, и программы. Все по полочкам.
Там же есть, по полочкам, "релизы", т.е. архивированное состояние проекта на какой-то временной/ключевой момент.
Распаковав "релиз" - я получаю полное состояние проекта на то условие, которое он был "выпущен" (точнее, была создана копия проекта).
ЗЫ. Это не руководство к действию, просто мое мнение.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение keysansa »

Появилось немножко времени, прокомментировал свой скрипт архивации.
У меня структура следующая:
1. Директория проектов
1.1. Поддиректории клиентов
1.1.1. Поддиректории проектов клиентов
1.1.1.1. Поддиректории структуры проектов клиентов

Данный скрипт расположен в директории проектов, и точно такой же в каждой из поддиректорий клиентов. При появлении нового клиента, копируется во вновь созданную папку.
Т.е. можно архивировать сразу все проекты, или все проекты клиента. Конкретный проект конкретного клиента архивирую вручную (в FAR это делается в течении 3с).
[+]
@echo off
rem Путь к программе-архиватору
set SEVZ="C:\Program Files\7-Zip\7z.exe"

rem Путь к архивам проектов
set DEST="N:\archive"
if not exist %DEST% mkdir %DEST%

rem Формирование штампа времени
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set TIMESTP=%yyyy%%mm%%dd%

rem для всех поддиректорий...
for /D %%F in (*.*) do (
rem Если внутри поддиректории есть скрипт архивации - переходим туда и выполняем его
if exist "%%F\create-archive.bat" (
echo "Found projects group %%F, archiving project group"
cd "%%F"
call "create-archive.bat"
cd ..
rem Иначе, выполняем архивацию директории
) else (
echo "Found projects %%F, archiving project"

rem Определяем имя текущей директории
for %%a in (".") do set CURRENT_DIR_NAME=%%~na
echo %CURRENT_DIR_NAME%

rem Если предусмотрена очистка проекта перед архивацией - выполняем ее
if exist "%%F\clean.cmd" call "%%F\clean.cmd"

rem Формируем имя архива
set ARCHIVE_NAME=%CURRENT_DIR_NAME%-%%F_%TIMESTP%.7z

rem выполняем архивацию
%SEVZ% a -mx9 -r %DEST%\%CURRENT_DIR_NAME%\%CURRENT_DIR_NAME%-%%F_%TIMESTP%.7z "%%F\*"
)
)


ЗЫ. Есть такой же скрипт для Linux. Тоже используется 7z. Если нужно кому - прокомментирую, выложу.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

Barmaley4 писал(а): 28 фев 2022, 13:35 Исправил скрипт, добавил переменную
backupDir = @"D:\backups"; (можно исправить на свой каталог) что бы бекапы в одном каталоге были, так же каждый проект будет сохраняться в свою папку, что бы в папке проекта собирался список из архивов одного проекта. (если это не нужно, вместо strDestination = Path.Combine(backupDir, strProjectname); сделать strDestination = backupDir; )
Так же изменил маску имени файла - точки в дате не нужны, лучше через _, и маску времени сделал в виде "год_месяц_число_часМинутаСекунда" - так легко найти самый свежий и самый старый бекап.
BackupOnClosingProject_rus.cs
А можно ли как то функционал данного скрипта повесить на отдельную кнопку, чтобы сделать бэкап прямо здесь и сейчас но не закрывая/открывая проект?)
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение keysansa »

legionercheg писал(а): 12 май 2022, 14:48
Barmaley4 писал(а): 28 фев 2022, 13:35 Исправил скрипт, добавил переменную
backupDir = @"D:\backups"; (можно исправить на свой каталог) что бы бекапы в одном каталоге были, так же каждый проект будет сохраняться в свою папку, что бы в папке проекта собирался список из архивов одного проекта. (если это не нужно, вместо strDestination = Path.Combine(backupDir, strProjectname); сделать strDestination = backupDir; )
Так же изменил маску имени файла - точки в дате не нужны, лучше через _, и маску времени сделал в виде "год_месяц_число_часМинутаСекунда" - так легко найти самый свежий и самый старый бекап.
BackupOnClosingProject_rus.cs
А можно ли как то функционал данного скрипта повесить на отдельную кнопку, чтобы сделать бэкап прямо здесь и сейчас но не закрывая/открывая проект?)
Быстрый способ - без всяких скриптов - копирование проекта.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

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

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

legionercheg писал(а): 12 май 2022, 14:48 А можно ли как то функционал данного скрипта повесить на отдельную кнопку
Да, можно. Серега, у тебя же есть выпадающее меню API, там длл-ки, что используешь - такой же принцип. Если есть строка в меню, значит она появляется в "Выбрать команду".
В скрипт меню API нужно добавить строку.
Снимок экрана 2022-05-12 163447.png
Снимок экрана 2022-05-12 163827.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение keysansa »

legionercheg писал(а): 12 май 2022, 15:44 Нет, тут именно удобство в том что каждый проект "падает" в свою папку и автоматом ставится дата и время резервирования
Понял, скрипт, который предложил уважаемый AGorskiy, могу оптимизировать для нажатия на кнопку. Но как добавить выполнение скрипта в меню/тулбокс пока не знаю.
legionercheg писал(а): 12 май 2022, 15:44 просто не охота закрывать и открывать каждый раз для этого проект...
Для копирования проекта - не нужно его открывать закрывать. Плюс, автоматическая нумерация копий проекта (в купе с датой и временем создания файла) - не требует каких либо дополнительных действий.
1. Проект -> Копировать -> ОК.
2. Всё.
ЗЫ. При желании, можно запаковать копию проекта, закроется она сама.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

Подскажите как в имя резервной копии проекта добавить свойства проекта? В файле *cs я нашел строку где формируется имя:

Код: Выделить всё

backupContext.AddParameter("ARCHIVENAME", strProjectname + "_" + myTime);
точку в конце я убрал, не знаю зачем она нужна...
Использовать хочу вот эти свойства проекта.
123.JPG
Т.е. чтобы у имени файла в конце еще через "_" добавлялись два свойства проект "<EPLAN.Project.UserSupplementaryField13>" и "<EPLAN.Project.UserSupplementaryField13>" и в итоге получилось имя файла:
"Имя проекта"_"текущая дата(yyyy_MM_dd_HHmmss)"_"R0"_"V0"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение Barmaley4 »

С обработкой свойств в скриптинге есть существенные ограничения :roll: , можно только задавать некоторые настройки и свойства страниц и проекта, как считать свойство (action который бы читал свойство) я не нашёл. Возможно есть скрытые action или странные способы.
Для данного случая можно попробовать использовать чтение файла ProjectInfo.xml где сохраняются свойства проекта. Однако этот файл обновляется не так быстро, то есть если задать свойства проекта, то в файла xml они запишутся не сразу (как минимум при закрытии, но возможно и через какое-то время). Это к тому что я попробовал реализовать так чтение свойств проекта для бекапа - оно работает, но я заметил что обновление файла не моментальное, а считать можно только его. :ext_komp_cr:
BackupOnClosingProject_rus080822.cs
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

Да, спасибо! На первый взгляд всё работает, буду тестить))
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

Barmaley4 писал(а): 08 авг 2022, 14:59 Однако этот файл обновляется не так быстро, то есть если задать свойства проекта, то в файла xml они запишутся не сразу (как минимум при закрытии, но возможно и через какое-то время)
Да, если изменить какое то свойство и тут же зарезервировать проект, то в имени файла оно не успеет "обновится", но после закрытия/открытия проекта всё корректно резервируется...
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

legionercheg писал(а): 10 авг 2022, 14:39 то в имени файла оно не успеет "обновится"
Серега, попробуй применить операцию Число/имена страниц на свойство. Проверь, возможно это поможет обновлению информации.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

AGorskiy писал(а): 10 авг 2022, 16:16 Серега, попробуй применить операцию Число/имена страниц на свойство
Андрей, это как?))
Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 3329
Зарегистрирован: 05 мар 2012, 15:00
Имя: Горский Андрей Сергеевич
город/регион: Санкт-Петербург
Благодарил (а): 178 раз
Поблагодарили: 368 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение AGorskiy »

legionercheg писал(а): 12 авг 2022, 08:08 это как?))
Серега, дома нет Е. Второй пункт меню и там сама нижняя строка.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

Barmaley4 писал(а): 08 авг 2022, 14:59 С обработкой свойств в скриптинге есть существенные ограничения :roll: , можно только задавать некоторые настройки и свойства страниц и проекта, как считать свойство (action который бы читал свойство) я не нашёл. Возможно есть скрытые action или странные способы.
Для данного случая можно попробовать использовать чтение файла ProjectInfo.xml где сохраняются свойства проекта. Однако этот файл обновляется не так быстро, то есть если задать свойства проекта, то в файла xml они запишутся не сразу (как минимум при закрытии, но возможно и через какое-то время). Это к тому что я попробовал реализовать так чтение свойств проекта для бекапа - оно работает, но я заметил что обновление файла не моментальное, а считать можно только его. :ext_komp_cr:
BackupOnClosingProject_rus080822.cs
Заметил такой глюк - открываешь какой то старый проект, у которого не заполнено свойство проекта которое участвует в формировании имени файла при бэкапе (например <EPLAN.Project.UserSupplementaryField14> ) и при закрытии проекта даже не появляется окно с вопросом про резервирование проекта,а Ё тупо наглухо зависает. Как только заполнишь это свойство, всё работает как надо. Можно это как то победить?
Аватара пользователя

Barmaley4
знаток Eplan
знаток Eplan
Сообщения: 50
Зарегистрирован: 30 окт 2018, 09:17
Имя: Павел
Страна: РФ
город/регион: Москва
Благодарил (а): 2 раза
Поблагодарили: 51 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение Barmaley4 »

legionercheg, проблему не смог повторить, в моём компе без этих свойств нормально резервирует.
Возможно, проблема заключается в том что XML Reader который ищет свойства в файле Projectinfo.xml, при отсутствии данных свойств просто зацикливается, хотя по идее он должен без проблем выходить из цикла если файл закончился.
Возможно, поможет установка последнего .Net для обновления стандартных инструментов (в том числе и ридера)
https://go.microsoft.com/fwlink/?linkid=2203305
Аватара пользователя

legionercheg
знаток Eplan
знаток Eplan
Сообщения: 965
Зарегистрирован: 18 ноя 2013, 08:32
Имя: Сергей
Страна: Россия
Благодарил (а): 90 раз
Поблагодарили: 115 раз

Резервирование Проектов (Backup) - Автоматически

Сообщение legionercheg »

У меня на работе Win 7x64, при установке этого NetFramework 4.8.1 вылазит ошибка "Блокирующие требования: .NET Framework 4.8.1 не поддерживается этой операционной системой."
Странно, этот глюк именно со "старыми" проектами где не заполнено это свойство, стоит его заполнить и скрипт нормально работает((
Ответить

Вернуться в «Eplan API»