|
Обращение к базе из переменной | ☑ | ||
---|---|---|---|---|
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) а на что заменить то можно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |