|
Как сослаться на текущую базу данных? (аналогично COM-объекту) | ☑ | ||
---|---|---|---|---|
0
AndrewZloy
19.01.12
✎
08:12
|
Имею процедуру, делающую нечто в переданной ей параметром 1С 8.2 базе (обычно – COM-объект). Но, в том числе, она должна срабатывать и с текущей базой. Создавать для этого дополнительный COM нелепо, нельзя ли просто записать нечто типа
БД = ЭтаБаза(); и дальше с этим БД работать? В руководствах не нашёл, а – вполне вероятно, есть такое. |
|||
1
rs_trade
19.01.12
✎
08:22
|
(0) нет такого. да и не надо.
|
|||
2
AndrewZloy
19.01.12
✎
08:31
|
Тёзка, увы! – мне надо. )))
Иначе программа вырастает ровно вдвое – делается «почти копия» всех строк, только вместо «БД.тратата» везде ставлю просто «тратата», – маразм. Кстати, корневой объект существует во многих современных (грамотно построенных) системах программирования, неужели 1С оказалась и здесь «бааальшим оригиналом»? |
|||
3
Ursus maritimus
19.01.12
✎
08:39
|
Да уж прям в два раза. Меняется только создание объектов
Новый или Новый ComОбъект. Создание объектов можно делать по условию или вынести в отдельную функцию |
|||
4
AndrewZloy
19.01.12
✎
09:05
|
А все кусочки типа …Записать(БД.РежимЗаписиДокумента.Проведение), = БД.Константа.ХХХХ и т.п. лажа?
Может, не в два, но – очень заметно. Я пока вывернулся, описав вначале переменные типа Если Локально тогда ТамКонстанты = Константы; ТамДокументы = Документы; ........ Иначе ТамКонстанты = БД.Константы; ТамДокументы = БД.Документы; ........ КонецЕсли и дальше пишу везде вместо БД.Константы.ххх ===> ТамКонстанты.ххх, но – не красиво сие… А было бы – отделался бы одной строчкой. |
|||
5
1с-кин
19.01.12
✎
09:32
|
(0) вроде сложности как раз с получением констант и прочих перечислений-ТЗ из другой базы.
Вот где кода немеряно на единицу результата. А к "своим" объектам 1с обращается сразу, без "предисловий" - у них и так заграмождена структура метаданных. Или я не так понял? |
|||
6
AndrewZloy
19.01.12
✎
09:39
|
Да вопрос не в сложности, а в том, можно ли единообразно обратиться к своей базе, как к базе из COM-объекта? Т.е, как сослаться на объект – «текущая база»?
Обидно сделать программу для COM и дополнительно её усложнять для "своей" базы. |
|||
7
1с-кин
19.01.12
✎
09:43
|
(6) вы все равно привязаны к одной базе, откуда запускаете, поэтому она - текущая, и обращение - напрямую к её объектам.
А как вы хотели в противном случае запускать обработку? вне 1с? |
|||
8
AndrewZloy
19.01.12
✎
10:10
|
Блиииин… Да знаю я, к чему привязан и как к ней обращаться. )))
Ещё раз поясняю: есть процедура, УЖЕ работающая через COM с «прочими» базами. Я хочу, чтобы она срабатывала и для текущей базы, причем – без лишних «если … то …». Для этого естественно ей подсунуть в параметре вместо CОМ чужой базы свою. Но как на эту «свою» сослаться, не создавая для неё COM-объекта? (Вопрос приобрёл уже академический зарактер "на будущее" – пока спрашивал, переписал я процедурку, хотя и неизящно выглядит) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |