Имя: Пароль:
1C
1С v8
Выполнение функции &НаСервере
0 Gera1t
 
07.12.17
16:50
Здравствуйте!
База УТ 10.3 Всю жизнь была файловая.
Есть еще 1 база тоже файловая.
Вот такой функцией подключались из УТ к другой базе:
Функция ПолучитьПодключениеКФайловойБД() Экспорт
    КаталогБазыДанных     = ПолучитьПредопределенноеЗначение("КаталогБазыДанных");
    Пользователь        = ПолучитьПредопределенноеЗначение("ПользовательИБ");
    Пароль                = ПолучитьПредопределенноеЗначение("ПарольПользователяИБ");
    СтрокаПодключения = "file='" + КаталогБазыДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
    V83COMConnector= Новый COMОбъект("V83.COMConnector");
    Попытка
        Возврат  V83COMConnector.Connect(СтрокаПодключения);
    Исключение
        Предупреждение ("Ошибка подключения!"+ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;
КонецФункции

Все работало отлично.
Перенесли УТ на SQL. Соответственно к файловой базе которая находиться на том же компе что и УТ он не может подключиться с другого комп.
Дописал "&НаСервере" перед функцией
теперь ругается: Метод объекта не обнаружен (ПолучитьПодключениеКФайловойБД)
    Соединение = БонКарты.ПолучитьПодключениеКФайловойБД();
Подскажите пожалуйста как решить?
1 igork1966
 
07.12.17
16:52
(1) Как минимум нужно знать откуда вызывается и параметры модуля где лежит
2 Gera1t
 
07.12.17
16:54
общий модуль называется: БонКарты
На модуле все галочки кроме Управляемое приложение отмечены
Вызывается из этого же модуля
3 3achem
 
07.12.17
17:02
(2) В модуле можно не объявлять где будет исполнение, это нужно для форм.
Если функция в том же модуле, то зачем к ней через точку обращаться?
4 AlvlSpb
 
07.12.17
17:21
(2) У тебя УТ 10.3 - это ОФ! Какое &НаСервере?
Ошибка,скорей всего здесь:
СтрокаПодключения = "file='" + КаталогБазыДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";

База - это уже не файл на том же компьютере, смотри сетевой путь к базе
5 mehfk
 
07.12.17
17:23
(0) У вас каша в голове. Попробуйте прочитать документацию для чего нужна конструкция &НаСервере
6 3achem
 
07.12.17
17:29
(4) И? В тонком клиенте можно работать с директивами в любой конфигурации
7 Gera1t
 
07.12.17
18:40
(4), (5) Обе базы находятся на 1 компьютере. Базы до недавнего времени были файловыми. Потом База УТ 10.3 перевели на SQL, а 2 база осталась файловой. т.е. в База УТ подключалась к другой базе в файловом режиме, например "D:\Base". Все клиенты работали в терминале. Теперь база на SQL и клиенты подключаются к базе со своих стационарных компов и на их компах нет базы в "D:\Base". Эта папка есть на сервере. Поэтому я хочу что бы к каталогу с базой программа обращалась именно на сервере! Я так делал не раз, но с базами на УФ, все работало.
8 h-sp
 
07.12.17
18:54
(7) ну тогда &НаКлиенте
9 Gera1t
 
07.12.17
19:14
(8) В таком случае каталог с базой разве не на компе клиента УТ будет искать? Мне то нужно что бы каталог с программой УТ искала на компе где база лежит
10 Gera1t
 
07.12.17
19:15
(3) Тут ты прав, но этот код не я придумывал.
11 h-sp
 
07.12.17
19:32
(9) ну сделайте сетевую папку.
12 Tateossian
 
07.12.17
19:55
(10) Это самая крутая отмаза, прямо в топе, когда код творит беду: это не я писал/ это предыдущий разработчик/
13 Tateossian
 
07.12.17
19:57
(3)  Если модуль возвращает кэшированное значение и нужно получить именно его, а контекст - этот же модуль, то нужно писать именно так. Иначе будет выполнена функция.
14 breezee
 
07.12.17
20:28
(12) Ну если действительно так, почему бы не написать об этом?)
16 LuciferArh
 
08.12.17
08:39
(0) У сервера 1С нет прав на папку с файловой базой?
17 PCcomCat
 
08.12.17
09:11
(16) +100!
Независимо от того, куда вы едете — это в гору и против ветра!