Имя: Пароль:
1C
1C 7.7
v7: Поиск каталога по части имени
0 Wefast
 
01.08.16
17:21
Файлы находятся в папки Каталог\КОД_Имя склада

У меня известен каталог и код склада.

Как мне найти этот каталог?
Делал что то такое и ничего не выходит:
        
        ОФСФ = СоздатьОбъект("ФС");
        Ф = ОФСФ.НайтиПервыйФайл(СокрЛП(Каталог)+"*.*");
        Пока ПустаяСтрока(Ф) = 0 Цикл
        ОФСФ.АтрибутыФайла(Ф, Размер, Атр, ВС, ВД, ВЗ, Расш);
            Если Сред(Атр, 4, 1) = "1" Тогда
                        Если Найти(Ф,Мх.Код)<>0 Тогда
                    Сообщить(ф);      
                Иначе
                      Ф = ОФСФ.НайтиСледующийФайл();                
                КонецЕсли;    
            КонецЕсли;            
        КонецЦикла;
1 ovrfox
 
01.08.16
17:32
Во первых, нужно убедиться , что каталог содержит имя каталога и завершается символом "\".
Во вторых, вместо "*.*" нужно сразу искать Сокрлп(Мх.Код)+"_*.". Тогда при условии, что код склада уникальный - Вы сразу найдете нужный каталог.
2 ovrfox
 
01.08.16
17:34
Кстати, можно сразу пользоваться системным объетом ФС, вместо создания ОФСФ.
3 Wefast
 
01.08.16
17:57
Мх =СоздатьОбъект("Справочник.МестаХранения");
        Мх.НайтиПоНаименованию(ТЧ);
        
        Ф=ФС.НайтиПервыйФайл(СокрЛП(Каталог)+МХ.код+"*.");
        Пока Ф<>"" Цикл
            Если  (Ф<>".")И(Ф<>"..") Тогда
                ФС.АтрибутыФайла(СокрЛП(Каталог)+Ф,,А);
                Если Сред(А,4,1)="1" Тогда
                    Сообщить(Ф);                 
                КонецЕсли;
            КонецЕсли;
        Ф=ФС.НайтиСледующийФайл();
        КонецЦикла



Вот так работает. (1) спасибо
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс