Имя: Пароль:
1C
1С v8
НайтиФайлы(), Маска
0 Om_Bun
 
18.06.12
15:31
НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)
Можно ли в параметре Маска указать несколько масок
*.jpg,*.jpeg,*.jpe,*.jfif,*.bmp,*.dip,*.tif,*.tiff,*.gif,*.png
тоесть несколько типов файлов?
1 mikecool
 
18.06.12
15:37
да
покупай СП недорого
2 Бледно Золотистый
 
18.06.12
15:43
(1) Разве? В диалоге работает, а вот в НайтиФайлы не прокатит. Выход - искать по списку и объединять.
3 mikecool
 
18.06.12
15:47
а, попутался, работает, работает, но возвращает пустой массив
4 andrewks
 
18.06.12
15:49
(0) нет. цикл предлагать?
5 Om_Bun
 
18.06.12
16:02
предлагать (4)
любой рабочий вариант пожалуйста
6 Reset
 
18.06.12
16:06
(5) Так предложили же - цикл. Несколько раз вызывай. Или получай все *.* и отбирай программно
7 Om_Bun
 
18.06.12
17:16
Разобрался сделал вот так


Если СокрЛП(КаталогИзображений)="" Тогда
       Возврат;
   КонецЕсли;
   ПередПоиском() ;
       
   Маска = Новый Структура();
   Маска.Вставить("jpeg", "*.jpeg");
   Маска.Вставить("jpg", "*.jpg");
   Маска.Вставить("png", "*.png");
   Маска.Вставить("png", "*.bmp");
   Маска.Вставить("png", "*.gif");

  Для каждого Тип  Из Маска  Цикл
      МассивФайлов = НайтиФайлы(КаталогИзображений,Тип.Значение);
    Счетчик = 1;
   Для Каждого Файл Из МассивФайлов Цикл
       ОбработкаПрерыванияПользователя();
       ИмяКартинки = "К_" + Счетчик;
       Попытка
           ПокаКартинки = ЭлементыФормы.Добавить(Тип("ПолеКартинки"), ИмяКартинки, Истина, ЭлементыФормы.ПанельРезультатов);
           ПокаКартинки.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная);
           ПокаКартинки.Лево = 100 * (Счетчик % КоличествоСтолбцов);
           ПокаКартинки.Верх = Цел((Счетчик / КоличествоСтолбцов)) * 100;
           ПокаКартинки.Высота = 100;
           ПокаКартинки.Ширина = 100;
           ПокаКартинки.РазмерКартинки = РазмерКартинки.Пропорционально;
           ПокаКартинки.РазрешитьНачалоПеретаскивания = Истина;        
           ПокаКартинки.ЦветРамки = WebЦвета.Черный;        
           ПокаКартинки.КонтекстноеМеню = ЭлементыФормы.КоманднаяПанельКартинок.Кнопки.Действия;
           Рисунок = Новый Картинка(Файл.Имя);
           ПокаКартинки.Картинка = Рисунок;
           ИмяКартинки = "";
       Исключение
          Сообщить(ОписаниеОшибки())
       КонецПопытки;    
       Счетчик = Счетчик + 1;
   КонецЦикла;
   КонецЦикла;


Но есть проблема при повторном открытий каталога выдает сообщение
{Форма.Форма.Форма(98)}: Ошибка при вызове метода контекста (Добавить): Недопустимое значение параметра (параметр номер '2') (Не уникальное имя! (К_1))
8 andrewks
 
18.06.12
17:47
а зачем ты три раза пытаешься вставить по ключу "png"?
и второе: в элементы формы опять добавляешь К_1 и т.д., а удалить? либо удалять, либо проверять и не добавлять повторно
9 Om_Bun
 
18.06.12
17:59
(8) а подробней можно
10 DitriX
 
18.06.12
20:00
(9) имеется вводу при повторном выполнении процедуры у вас вылетит та ошибка, которую вы описали, для этого надо вставить затычку

Элем = Элементы.Найти(ИмяКартинки);
Если Элем = Неопределено Тогда
ПокаКартинки = ЭлементыФормы.Добавить(Тип("ПолеКартинки"), ИмяКартинки, Истина, ЭлементыФормы.ПанельРезультатов);
КонецЕсли;

И все будет гутн
11 DitriX
 
18.06.12
20:01
сори - вместо Элем надо ПокаКартинки