Имя: Пароль:
1C
 
Обращение к базе из переменной
0 ilyavorobyev
 
03.03.15
10:32
Есть переменная А = 10, могу ли я ей присвоить какой-нибудь тип, чтобы можно было обращаться к базе, допустим А.Документы.НакладнаяНаОтгрузку.НайтиПоНомеру("00001"); ???
1 ilyavorobyev
 
03.03.15
10:33
(0) Если кому то покажется наркоманией, могу объяснить зачем мне это
2 Aloex
 
03.03.15
10:35
(1) Зачем? И так все ясно.
3 Wobland
 
03.03.15
10:36
(1) лучше отсыпь
4 palpetrovich
 
03.03.15
10:36
(1) "Обращение к базе из переменной" - однозначно покажется :)
5 Остап Сулейманович
 
03.03.15
10:38
(2) + (3) Не гнобите ТС. Мне например интересно - зачем? И попутно : это нужно делать изнутри текущей базы или снаружи? Например по ОЛЕ? Так по ОЛЕ оно и так все выглядит как нужно ТС.
6 Wobland
 
03.03.15
10:38
А="Уважаемая база!";
док=А.Документы.НакладнаяНаОтгрузку.НайтиПоНомеру("00001")
7 Адский плющ
 
03.03.15
10:38
А = Новый Структура;
А.Вставить("Документы", Документы);
8 MiniMuk
 
03.03.15
10:39
(0) Если переменная А = 10 то она равна 10 иначе не только она равна 10, поскольку переменная не равна 10
9 MiniMuk
 
03.03.15
10:40
(0) Ну если перменная не 10 и не А то можно так
База = Новый COMObject("V82.Application");
10 ilyavorobyev
 
03.03.15
10:42
Есть обработка, чтобы добавить документы в базу она подключалась к себе же самой по Com соединению, я не хочу все переписывать а лишь поменять тип переменной БазаПрименик, который содержал com соединение
11 MiniMuk
 
03.03.15
10:42
(9) хм. интересно, а я смогу достучатся до метода выполнить?
не будет ли выглдядет это так база.выполнить("произвольный код...")
12 Wobland
 
03.03.15
10:42
(10) >она подключалась к себе же самой по Com соединению
в медицине это называется онанизм
13 ilyavorobyev
 
03.03.15
10:43
(12) не я писал, было уже так
14 Wobland
 
03.03.15
10:43
(13) да какая разница, кто автор? сделай по-нормальному
15 MiniMuk
 
03.03.15
10:44
(10) надо поменять не тип переменной  а параметры подключения к базе
16 ilyavorobyev
 
03.03.15
10:45
(15) на какой тип поменять на ole?
17 palpetrovich
 
03.03.15
10:45
откровенно говоря, очень интересно, какой может быть смысл в (10), хотя-бы теоретически
18 ilyavorobyev
 
03.03.15
10:45
(16) точнее параметр подключения
19 Остап Сулейманович
 
03.03.15
10:45
(15) +100500.
20 D_E_S_131
 
03.03.15
10:46
А как вызывается запуск обработки?
21 ilyavorobyev
 
03.03.15
10:46
(17) во всех функция процедурах обработки есть БазаПрименик.Документы.
БазаПрименик.Справочники.
Вот я и хочу поменять БазаПрименки на что то, но без com
22 Остап Сулейманович
 
03.03.15
10:46
(17) Лень - двигатель прогресса. (ЦЫ не моё).
23 Остап Сулейманович
 
03.03.15
10:47
(21) Да запусти еще один сеанс той же базы по КОМ и буиттибемногасчастия.
24 ilyavorobyev
 
03.03.15
10:48
(23) в том то и дело, что нельзя, т.к. Бухгалтерия БАЗОВАЯ а там два сеанса нельзя
25 ilyavorobyev
 
03.03.15
10:50
поэтому и приходиться переписывать, с com соединения
26 Остап Сулейманович
 
03.03.15
10:50
(24) Сделай все в базе внешней по отношению ко ВСЕМ базам.
27 ilyavorobyev
 
03.03.15
10:51
(26) базы на разных серверах
28 Лефмихалыч
 
03.03.15
10:54
(17) например, это делается из упраляемой формы под пользователем, у которого на такие манипуляции нет прав, И служба сервера стартует под пользователем, который приторочен к 1Сному администратору.
В этом случае кто угодно может в &НаСервере создать com-соедиение к самому себе и пользоваться правами бога, сколько влезет
29 fisher
 
03.03.15
10:55
(0) В 7.7 можно было. Но хорошо, что зарубили.
А "переписывание" сводится к одной глобальной замене.
30 Остап Сулейманович
 
03.03.15
10:59
(29) Замена не спасет. Нужно дублирование практически всего кода. Только для работы с внешней базой должен использоваться префикс КОМ-подключения, а для работы с "родной" его быть не должно.

Типа такого :
//обрабатываем внешнюю базу
Подключение.Документы.Выбрать()
....
И следом
//обрабатываем "родную" базу
Документы.Выбрать()
31 Остап Сулейманович
 
03.03.15
11:01
+ (30) Можно, конечно все обернуть в процедуры и передавать туда нужные объекты. И тогда внутри процедур префиксы не использовать. Но тут простой заменой не обойдешься тем более.
32 fisher
 
03.03.15
11:04
(30) А, в этом смысле... Тогда да. Простых путей не вижу, к сожалению. ИМХО, проще забить и оставить обращение к текущей базе по COM. Тем более, что при работе по COM есть некоторая специфика и универсально работать через COM и напрямую всё равно может не получиться.
33 fisher
 
03.03.15
11:07
NewObject, например.
34 palpetrovich
 
03.03.15
11:11
(28) разве "создать com-соедиение к самому себе " не предполагает подключение с тем-же самым набором прав? ...какие еще " правами бога"? :)
35 Ненавижу 1С
 
гуру
03.03.15
11:29
не могу найти свою аналогичную тему
36 ilyavorobyev
 
03.03.15
11:38
(32) оставить текущее обращение нельзя, т.к. com соединение создает сеанс а т.к. мы открываем ее в той же базе в которой она создает сеанс их становится два и запись документов не возможна, т.к. Бухглатерия БАЗОВАЯ
37 ilyavorobyev
 
03.03.15
11:56
(30) а на что заменить то можно?
Независимо от того, куда вы едете — это в гору и против ветра!