|   |   | 
| 
 | Отслеживание появления (или изменения) файла | ☑ | ||
|---|---|---|---|---|
| 0
    
        padaril 28.06.13✎ 16:48 | 
        Задача: отслеживать появление определенного файла (или любого в определенном каталоге), или же изменение существующего. Пока вижу единственный вариант ПодключитьОбработчикОжидания, но реакция нужна немедленная, а маленький интервал скажется на производительности     | |||
| 1
    
        ДенисЧ 28.06.13✎ 16:50 | 
        внешнюю компоненту напиши, с подпиской на каталог и генерацией внешнего события     | |||
| 2
    
        shuhard 28.06.13✎ 16:52 | 
        (0) 1С не система реального времени, затея обречена на провал     | |||
| 3
    
        МихаилМ 28.06.13✎ 16:52 | 
        в WMI можно создать ивент, который сработает
  но более точно не подскажу. все зависит от ОС хранилища файла. | |||
| 4
    
        H A D G E H O G s 28.06.13✎ 16:54 | 
        Нетленка может, но для 8.2 - негарантированно.     | |||
| 5
    
        padaril 28.06.13✎ 16:55 | 
        (1) что-то вроде vk?     | |||
| 6
    
        H A D G E H O G s 28.06.13✎ 17:03 | 
        Работает под 8.2, родимая...
  http://infostart.ru/public/download.php?file=51733 Объект=Новый ("Addin.FileWatch"); ФильтрСобытий=Новый Структура; СледитьИЗаВложеннымиКаталогами=ИСТИНА; Путь="c:\"; ФильтрСобытий.Вставить("ДобавлениеИзменениеУдалениеФайла",Истина); Объект.НачатьНаблюдение(Путь,ФильтрСобытий,СледитьИЗаВложеннымиКаталогами); | |||
| 7
    
        ДенисЧ 28.06.13✎ 17:10 | 
        (5) Да, vneshnaya komponenta     | |||
| 8
    
        ДенисЧ 28.06.13✎ 17:10 | 
        (6) Или так. :-)     | |||
| 9
    
        ДенисЧ 28.06.13✎ 17:11 | 
        (6) Новый ("Addin.FileWatch")    {(1)}: Тип не определен (Addin.FileWatch)     | |||
| 10
    
        H A D G E H O G s 28.06.13✎ 17:12 | 
        (9) Согласно новым исследованиям Британских ученых - вегетарианец с древнеиндийского - "херовый охотник".     | |||
| 11
    
        ДенисЧ 28.06.13✎ 17:14 | 
        А, понял :-)
  ТАкая компонента, что я в (1) описал - уже написана. Всё уже украдено до нас (с) | |||
| 12
    
        drcrasher 28.06.13✎ 17:20 | 
        (6) что-то правильное было при написании мануала к компоненте =)     | |||
| 13
    
        padaril 28.06.13✎ 17:29 | 
        и все же (9): Тип не определен (Addin.FileWatch)
  чяднт? | |||
| 14
    
        H A D G E H O G s 28.06.13✎ 17:36 | 
        (13) v8add.dll не разместил в папке bin 1С-ины и не сделал
  ЗагрузитьВнешнююКомпоненту("V8ADD.dll"); Херово, когда такие вопросы возникают. | |||
| 15
    
        padaril 28.06.13✎ 17:50 | 
        ЗагрузитьВнешнююКомпоненту("V8ADD.dll"); 
  по причине: Ошибка при загрузке внешней компоненты Пишу все подряд, в обработке, файл V8ADD.dll закинул в bin 1с-ки Процедура Команда1(Команда) ЗагрузитьВнешнююКомпоненту("V8ADD.dll"); Объект = Новый ("Addin.FileWatch"); ФильтрСобытий = Новый Структура; СледитьИЗаВложеннымиКаталогами = ИСТИНА; Путь = "c:\"; ФильтрСобытий.Вставить("ДобавлениеИзменениеУдалениеФайла",Истина); Объект.НачатьНаблюдение(Путь,ФильтрСобытий,СледитьИЗаВложеннымиКаталогами); КонецПроцедуры | |||
| 16
    
        H A D G E H O G s 28.06.13✎ 17:50 | 
        ТонкийКлиент?     | |||
| 17
    
        padaril 28.06.13✎ 17:51 | 
        ага, 8.2
  http://d.pr/i/cjAz | |||
| 18
    
        H A D G E H O G s 28.06.13✎ 18:00 | 
        В модуль управляемого приложения:
  Перем Объект; Процедура ПриНачалеРаботыСистемы() Результат=ПодключитьВнешнююКомпоненту("V8ADD.dll","V8ADD",ТипВнешнейКомпоненты.COM); Объект=Новый ("Addin.V8ADD.FileWatch"); ФильтрСобытий=Новый Структура; СледитьИЗаВложеннымиКаталогами=Истина; Путь="c:\"; ФильтрСобытий.Вставить("ДобавлениеИзменениеУдалениеФайла",Истина); ФильтрСобытий.Вставить("ДобавлениеИзменениеУдалениеПапки",Истина); ФильтрСобытий.Вставить("ЧтениеФайла",Истина); ФильтрСобытий.Вставить("ЗаписьФайла",Истина); ФильтрСобытий.Вставить("ИзменениеАтрибутовФайла",Истина); ФильтрСобытий.Вставить("ИзменениеРазмераФайла",Истина); ФильтрСобытий.Вставить("ИзменениеПравДоступаФайла",Истина); ФильтрСобытий.Вставить("ИзменениеВремениСозданияФайла",Истина); Объект.НачатьНаблюдение(Путь,ФильтрСобытий,СледитьИЗаВложеннымиКаталогами); КонецПроцедуры Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Если Лев(Источник,9)="FILEWATCH" Тогда Текст=Формат(ТекущаяДата(),"ДЛФ=T")+"--->"+Событие+"--->"+Данные; Сообщить(Текст); КонецЕсли; КонецПроцедуры Процедура ПередЗавершениемРаботыСистемы(Отказ) Объект.ЗакончитьНаблюдение(); КонецПроцедуры | |||
| 19
    
        padaril 28.06.13✎ 18:08 | 
        Отлично, заработало! Спасибо!
  А без правок конфигурации, уместить все в обработке не удастся никак я полагаю? | |||
| 20
    
        H A D G E H O G s 28.06.13✎ 18:13 | 
        (19) Пеши тоже самое в обработке, чебынет.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |