Имя: Пароль:
1C
1С v8
На клиент сервере не работает метод существует
,
0 vladnet
 
20.05.13
17:56
Глобальный модуль, режим сервера, клиент серверный режим, код:

лКаталог=Константы.Каталог.Получить();
Если ПустаяСтрока(лКаталог) Тогда Возврат Ложь; КонецЕсли;
Сообщить(лКаталог);
лКаталог=Новый Файл(лКаталог);
Если Не лКаталог.Существует() Тогда Возврат Ложь; КонецЕсли;
Возврат Истина;

Возвращает Ложь, хотя каталог существует. В файловой версии все нормально.

Сервер и клиент одна и та же машина.
1 H A D G E H O G s
 
20.05.13
17:57
Если ПустаяСтрока(лКаталог) Тогда Возврат Ложь; КонецЕсли;

Не пиши так больше.
2 vladnet
 
20.05.13
17:58
Только написал и понял, дело скорее всего в правах, так как права различны на клиенте и на сервере
3 H A D G E H O G s
 
20.05.13
17:58
(0) Мы, нормальные программисты, плачем кровавыми слезами, когда видим такой код.
4 vladnet
 
20.05.13
17:58
(1) что не нравится?
5 Мимохожий Однако
 
20.05.13
18:01
Файл.Существует (File.Exist)
Файл (File)
Существует (Exist)
Синтаксис:

Существует()
Возвращаемое значение:

Тип: Булево.
Истина - файл существует; Ложь - в противном случае.
Описание:

Определяет, существует ли файл, соответствующий данному объекту.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
Пример:

Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт
   КаталогНаДиске = Новый Файл(ИмяКаталога);
   Если КаталогНаДиске.Существует() Тогда
       Возврат Истина;
   Иначе
       Ответ = Вопрос("Каталог не существует. Создать?",
                       РежимДиалогаВопрос.ОКОтмена);
       Если Ответ = КодВозвратаДиалога.ОК Тогда
           СоздатьКаталог(ИмяКаталога);
           Возврат Истина;
       Иначе
           Возврат Ложь;
       КонецЕсли;
   КонецЕсли;
КонецФункции
6 H A D G E H O G s
 
20.05.13
18:01
(4) ВОднуСтрокуПишешь
7 servs
 
20.05.13
18:05
(6) я тоже так пишу как он и чё?
8 vladenoff
 
20.05.13
18:07
Из наших ТЕСТОВ.
Начиная с 8.3.2 метод "Существует()" у объекта "Файл" возвращает ЛОЖЬ для сетевого каталога.

Например:
   Каталог = Новый Файл("\\TEST\DATA\");
   Каталог.Существует(); // тут ЛОЖЬ, а для платформы 8.3.1 и ниже - ИСТИНА.

Для локальных каталогов подобное не повторяется.


Написали в саппорт. ответа пока нет. Есть у кого-то ещё инфо???
9 Infsams654
 
20.05.13
18:10
(0)(7) ну вы прям не в одну строку пишите, так то лучще
лКаталог=Константы.Каталог.Получить(); Если ПустаяСтрока(лКаталог) Тогда Возврат Ложь; КонецЕсли; Сообщить(лКаталог); лКаталог=Новый Файл(лКаталог); Если Не лКаталог.Существует() Тогда Возврат Ложь; КонецЕсли; Возврат Истина;
10 H A D G E H O G s
 
20.05.13
18:12
(7) Ниче. После вас еще нормальным людям работать, о них хоть подумаете.. Хотя, о чем это я?..
11 Infsams654
 
20.05.13
18:14
(10) и вообще, все программы нужно писать одной строкой, т.к. в конечном итоге все преобразуется в код, где нет ни перевода строки, ни каретки, и очень даже все красиво и понятно
12 Базис
 
naïve
20.05.13
18:16
(11) За такое зарплату выдавать надо, разрешив программисту питаться от 3.3 вольт.
13 vladnet
 
20.05.13
18:22
Не будем спорить по качеству кода, мне так удобнее, и я считаю что мой код читаем очень хорошо.

Проблема решена, почему возникла написано в (2), а именно не было прав у пользователя user1c.
Спасибо всем кто отликнулся, не думал что так много особенностей.