gifts2017

Копирование папок и их содержимого

Опубликовал Эдуард (samadurov) в раздел Администрирование - Сервисные утилиты

Администраторам с десятками баз на поддержке посвящается... (Прошу прощения у SiNа за плагиат). 1С 7.7

Если на поддержке у программиста находится большое количество баз данных , то данная обработка поможет автоматически и быстро скопировать нужную папку (например, ExtForms, ExtDb, Usrdef и т.д.) и ее содержимое (кроме вложенных папок) во все помеченные каталоги информационных баз. Обработка проверена только на базах с DBF организацией данных. Для подкраски строк ТЗ используется FormEx, но можно и без него. Огромная благодарность АльФу и Маляеву.

Скачать файлы

Наименование Файл Версия Размер
- 77
.1247897152 167,00Kb
25.09.09
77
.1247897152 167,00Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Юрий Тимофеев (Tatitutu) 18.07.09 08:29
Скачал,Посмотрел ...замечания:
понимаешь, ты сам знаешь что ДОЛЖНА делать и ДЕЛАЕТ твоя обработка...
а вот теперь забудь на минуту и посмотри сам на нее глазами пользователя....

Почему бы не сделать , чтобы при открытии заполнялись все каталоги
кнопку сформировать - переименуй в " Обновить или Загрузить путь баз данных"

Кнопка с Глобусом - вызывает раздражение и она там совершенно не нужно,так красоту не наводят. Если есть кнопка на форме, она должна нажиматься и выполнять какоето действие.
В описании благодарность Альфу ты выразил, а пользователям в описании написать, что обработка может использовать функции ВК Formex не указал.

И как то ооооооооооочень странно ты ее используешь.
По твоей идее с раскроской строк (ты ее -ВК должен попытаться загрузить при открытии обработки но уж ни как при

Процедура ПриДвойномНажатииПравойКнопки(сост, х, у)
Если ЗагрузитьВнешнююКомпоненту("FormEx.dll") = 1 Тогда
Если ТЗ.КоличествоСтрок() <> 0 Тогда
Если Вопрос("Вы действительно хотите удалить строку ТЗ?","Да+Нет") = "Да" Тогда
ТекСтр = ТЗ.ТекущаяСтрока();
ТЗ.УдалитьСтроку(ТЗ.ТекущаяСтрока());
ТЗ.ТекущаяСтрока(ТекСтр);
Иначе
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
Если ТЗ.КоличествоСтрок() <> 0 Тогда
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗ.НомПП = ТЗ.НомерСтроки;
КонецЦикла;
КонецЕсли;
ТЗ.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры // ПриДвойномНажатииПравойКнопки()


а у если у пользователя нет этой ВК (и он не подозревает что она должа быть)
как удалить строку из таблицы ?

Сделай рядом или список или ТЗ с "копируемыми файлами - ведь бывает нужно не все скопировать а только 8 из 10 . Дай пользователю выбор.
2. Эдуард (samadurov) 18.07.09 09:43
(2) Спасибо за замечания. Исправлю
3. Эдуард (samadurov) 18.07.09 10:06
(2) А глобус не трогай - это святое )))
4. Эдуард (samadurov) 18.07.09 10:17
5. Юрий Тимофеев (Tatitutu) 18.07.09 12:47
Посмотрю - ну нравится тебе шар голубой...ну повесь его в уголок, а не на кнопку ))))
6. Юрий Тимофеев (Tatitutu) 18.07.09 13:06
(4) не все и не польностью еще работы непочатый край.
Совет: поле Источник запрети редактировать...или проверку от дурака сделай

Файл = СоздатьОбъект("ФС"); || это что такое и для чего ????

Если Элемент="Источник" Тогда
Если ФС.ВыбратьКаталог(Источник,"Выберите каталог") = 1 Тогда
КонецЕсли;
ОпределениеПапки();
КонецЕсли;

наверное правильнее будет так


Если Элемент="Источник" Тогда
Если ФС.ВыбратьКаталог(Источник,"Выберите каталог") = 1 Тогда
ОпределениеПапки();
КонецЕсли;

КонецЕсли;
7. Эдуард (samadurov) 18.07.09 14:23
8. Дмитрий Литовченко (kompas-dm) 08.08.09 10:43
От администратора с десятками баз на поддержке ...
Примерно такое ваял.
Удовольствия не получил. Причина ведь осталась.
Попробовал иначе.
Сделал 2 папочки уже не базе
1. REG_REPORT (для регламентированных) http://infostart.ru/blogs/1245/
2. REPORT ( для внешних отчетов ) http://infostart.ru/projects/4714/
----------------------------------------------
Редактирую RPLIST.TXT, забрасываю новый отчет и пишу следующий ...
Проблема ушла.
Особенно удобно при удаленке

Да, программный код ну очень простой и до боли тебе знакомый
+, - не выпрашиваю,не парься

9. nickVZ (nickVZ) 12.08.09 01:57
Я, извините, про обработку ничего не скажу. Не скачивал. Но одно замечание себе позволю:
Методы ФС ГАРАНТИРОВАНО (прошу прощения за каплок, но иного способа выделения здесь не знаю) работают только внутри каталога рабочей базы. Потомушто каталог базы в полном доступе. Так надо :)) А вот вне БД встречаются места, не обремененные полным доступом для вас, как юзера...
Вы, конечно, можете написать ФС.КопироватьФайл(бла-бла-бла), только вот этот метод ничегошеньки не сообщит, если копирование не произойдет. И причину не сообщит. И даже не смотрите в сторону Попытка...Исключение: прерывания оси 1С не видит...
Потому рекомендую пользовать FileSystemObject из Windows Script Host... Это все-таки компонента, "встроенная" в ось, потому работать будет с бОльшей гарантией, чем любая ВК и даже 1С ;)
И побогаче будет. И отрабатывает прерывания исполнения...
Маленький примерчик на копирование файла в каталог BIN (не структуризировано по функциям, склеенная нарезка текстов):
ScriptControl = createobject("MSScriptControl.ScriptControl");
ScriptControl.language="vbscript";
стр="function CopyVK()
|On Error Resume Next
|Set FSO = CreateObject(""Scripting.FileSystemObject"")
|FSO.CopyFile """+ПолноеИмя+""","""+КаталогПрограммы()+ИмяФайла+""", 1
|if Err.Number = 0 then
| CopyVK = """"
|Else
| CopyVK = err.Description
|end if
|end function"; // err.Description возвращает наименование ошибки
ScriptControl.AddCode(стр);

рез=ScriptControl.run("CopyVK");
Если ПустаяСтрока(рез)=0 Тогда
сообщить("Не удалось обновить ВК "+ИмяФайла+". Ошибка "+рез);
.............. и т.д. ;)

Полагаю, WSH АДМИНАМ (опять каплок...) ближе ;)
10. Сергей (Che) Коцюра (CheBurator) 12.08.09 02:08
(9) все так.. все правильно.. помню сам был несказанно удивлен когда обнаружил, что ФС тупро промолчало про невозможность скопировать файл в папку с атрибутом "для чтения"...
11. Сергей (Che) Коцюра (CheBurator) 12.08.09 02:10
автору: все можно сделать совершенно аналогично тому как устанавливаются отчеты с диска ИТС... у меня даже статейка была про "инсталлятор своими руками" - но померла при переезде Иса на новый движок...
12. Сергей (Che) Коцюра (CheBurator) 12.08.09 02:10
+ на Исе есть штуки 2 как минимум аналогичных разработок...
13. Эдуард (samadurov) 12.08.09 11:34