![]() |
|
метод Существует() в тонком и веб-клиенте возвращает разное | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
07.03.19
✎
15:20
|
такая процедура в общем модуле (Сервер, ВызовСервера):
Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт КаталогНаДиске = Новый Файл(ИмяКаталога); Если КаталогНаДиске.Существует() Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; КонецФункции если запускаю отладку в тонком клиенте возвращает Истина, если в Веб-клиенте, то Ложь. Как такое может быть? |
|||
1
Cyberhawk
07.03.19
✎
15:24
|
На разных хостах рабочих процессоах выполняется
|
|||
2
Игорь_МММ
07.03.19
✎
15:27
|
(1) это как? что с этим делать?
разве не на Сервере этот каталог ищется? то бишь в одном и том же месте? |
|||
3
Garykom
гуру
07.03.19
✎
15:29
|
У тебя там так?
&НаСервере Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт ... |
|||
4
Cyberhawk
07.03.19
✎
15:29
|
(2) "что с этим делать?" // Тебе только что продемонстрировали, что ты не умеешь задавать вопросы.
Вопросы типа "Как такое возможно?", "Это возможно?", "В чем может быть причина" тупы изначально ввиду своей безполезности, т.к. ответ на них ничего не дает ввиду огромного количества вариантов ответа |
|||
5
Мыш
07.03.19
✎
15:31
|
Зачем такая конструкция?
Если КаталогНаДиске.Существует() Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; Можно же "Возврат КаталогНаДиске.Существует()" |
|||
6
Cyberhawk
07.03.19
✎
15:31
|
(5) Удобство отладки, разработки, доработки
|
|||
7
novichok79
07.03.19
✎
15:31
|
это же логично, на сервере - ищет файл на сервере, на клиенте - ищет файл на клиенте
|
|||
8
Cyberhawk
07.03.19
✎
15:31
|
Хотя в случае в Возврат в ветках - не особо удобнее )
|
|||
9
Игорь_МММ
07.03.19
✎
15:32
|
(3) это проц-ра общего модуля компилируемая на сервере
|
|||
10
novichok79
07.03.19
✎
15:32
|
ну и с вебом тоже самое. все зависит от контекста исполнения.
|
|||
11
Garykom
гуру
07.03.19
✎
15:32
|
(6) Это нихера не удобство
Я бы сделал Результат = КаталогНаДиске.Существует(); Возврат Результат; А затем если что посередине вставил Если Результат Тогда Иначе КонецЕсли; |
|||
12
Garykom
гуру
07.03.19
✎
15:33
|
(9) Ты сначала добавь и проверь
|
|||
13
Cyberhawk
07.03.19
✎
15:33
|
(11) Я в (8) дополнил уже, до этого код бегло смотрел )
|
|||
14
Cyberhawk
07.03.19
✎
15:33
|
Может автор в толстом клиенте работает?
|
|||
15
Игорь_МММ
07.03.19
✎
15:35
|
(14) запускаю отладку в тонком и веб-клиенте. Процедура исполняемая на сервере возвращает разное
|
|||
16
Cyberhawk
07.03.19
✎
15:36
|
Надо подключиться к тебе и посмотреть. Если созреешь - пиши в личку.
|
|||
17
Cyberhawk
07.03.19
✎
15:37
|
Добавь в процедуру в самое начало такой код:
#Если Сервер Тогда Сообщить("Это сервер"); #Иначе Сообщить("Упс, это клиент, это залет"); #КонецЕсли |
|||
18
Игорь_МММ
07.03.19
✎
15:42
|
(17) чуда не случилось: Это сервер
|
|||
19
Cyberhawk
07.03.19
✎
15:44
|
В обоих случаях?
|
|||
20
Cyberhawk
07.03.19
✎
15:44
|
В настройках кластера (оснастке ММС) все-таки проверь, сколько рабочих серверов в нем
|
|||
21
Cyberhawk
07.03.19
✎
16:09
|
Разобрались - база файловая, серверный код исполняется расширением веб-сервера, у пользователя ОС процесса ОС которого не было прав на каталог
|
|||
22
Cyberhawk
07.03.19
✎
16:10
|
Какому именно пользователю и какие права давать ты там сам разбирайся уже. Я дал пользователю "Все" полный доступ к каталогу документов.
|
|||
23
Игорь_МММ
07.03.19
✎
16:11
|
(22) да, благодарю еще раз
|
|||
24
Garykom
гуру
07.03.19
✎
16:12
|
(21) Чушь какая то для "тонкий клиент" и "веб-клиент" серверный код должно одно расширение веб-сервера исполнять.
Толстый клиент и веб-клиент может? |
|||
25
Garykom
гуру
07.03.19
✎
16:13
|
(24)+ Точнее в первом случай путь к файловой базе указал, вместо того чтобы URL на сервере
|
|||
26
Cyberhawk
07.03.19
✎
16:16
|
(24) (25) Тонкий клиент запускался из конфигуратора, т.е. не через веб-сервер работал, а под локальным админом
|
|||
27
Garykom
гуру
07.03.19
✎
16:18
|
(26) Это и подразумевал, через настоящий тонкий (урл опубликованной базы) конфигуратор не запустить же
|
|||
28
Cyberhawk
07.03.19
✎
16:19
|
У автора все будет успешно работать если использовать только сетевые шары с доступом для всех. Файлики же, выбираемые с локального ПК, нужно будет передавать на сервер, передачей пути к файлу тут не обойдешься)
|
|||
29
Cyberhawk
07.03.19
✎
16:20
|
(27) Тонкий был настоящий, просто через файловую шару работающий, а не через веб-сервер
|
|||
30
Cyberhawk
07.03.19
✎
16:21
|
В общем Я хз что ты в "настоящесть" тонкого клиента вкладываешь)
|
|||
31
dmpl
07.03.19
✎
16:21
|
(5) А вдруг там Неопределено будет?
|
|||
32
Garykom
гуру
07.03.19
✎
16:25
|
(29) Угу в паре к тонкому еще поднимался свой отдельный "серверный" процесс от имени локального админа
(30) Когда на том же компе "серверная" часть (имеющая прямой доступ к базе данных на диске) не поднимается |
|||
33
Cyberhawk
07.03.19
✎
16:25
|
(31) Метод "Существует" возвращает всегда булево
|
|||
34
dmpl
07.03.19
✎
16:25
|
Кстати, СП говорит, что для веб-клиента надо расширение для работы с файлами подключить.
|
|||
35
Garykom
гуру
07.03.19
✎
16:26
|
Просто меня сцуко удивляют когда ставят файловую базу настраивают публикацию на веб-сервере.
А потом дябилы прописывают на клиентах сетевую шару к базе вместо урла |
|||
36
dmpl
07.03.19
✎
16:26
|
(33) Разработчики типовых знают больше нашего. Значит не всегда :)
|
|||
37
Cyberhawk
07.03.19
✎
16:27
|
(36) Не понимаю, к чему ты клонишь
|
|||
38
Garykom
гуру
07.03.19
✎
16:28
|
(34) Там код всегда &НаСервере выполнялся, только сервера было два как оказалось
|
|||
39
Cyberhawk
07.03.19
✎
16:28
|
(32) Ну так все тонкие, работающие с файловой базой через файл, тогда ненастоящие )
А таких куда больше, думаю, чем работающих с базой через веб-сервер. |
|||
40
Garykom
гуру
07.03.19
✎
16:29
|
(39) Да так и есть.
Настоящий тонкий только если через сервер 1С или через веб-сервер. |
|||
41
Cyberhawk
07.03.19
✎
16:30
|
(40) Постараюсь запомнить этот критерий "настоящности" тонкого клиента 1С. Но не гарантирую, что не забуду )
|
|||
42
Garykom
гуру
07.03.19
✎
16:35
|
(41) Понять легко, если число процессов непосредственно работающих с базой на диске (sql сервере) меньше числа клиентских процессов.
|
|||
43
dmpl
07.03.19
✎
16:36
|
(37) Я намекаю на то, что документация часто не поспевает за продуктом, а на несоответствие описания в СП и в реале я лично наталкивался.
|
|||
44
Garykom
гуру
07.03.19
✎
16:36
|
(42) Гм хотя есть вырожденные случаи 1=1 или 4 процесса серверных а клиент всего 1 запущен
|
|||
45
dmpl
07.03.19
✎
16:44
|
(44) Для настоящего тонкого клиента нужен отдельный серверный процесс, который и работает с БД. Тонкий клиент с БД вообще не работает.
|
|||
46
craxx
07.03.19
✎
19:32
|
(36) Не всегда. В типовых очень много хрени порой написано, а уж сколько бреда видел в отраслевках, типа запроса в динамическом списке к критерию отбора ДокументыПоКонтрагенту, который валит базу даже средних размеров.
|
|||
47
Rovan
гуру
08.03.19
✎
09:01
|
(0) Я недавно делал отчет для 1С-Фреш.
Отчет выгружает данные на локальный диск. Там по стандартам запрещено использовать конструкцию КаталогНаДиске = Новый Файл(ИмяКаталога); Если КаталогНаДиске.Существует() Тогда Вместо нее использовать строго надо надо асинхронный метода НачатьПроверкуСуществования() Файл.Существует() => НачатьПроверкуСуществования() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |