|
v7: Переопределение методов объектов | ☑ | ||
---|---|---|---|---|
0
tpmi
22.09.11
✎
14:07
|
Можно сделать во внешней обработке замену метода? Мне нужно поменять алгоритм поиска документа по номеру. Можно увидеть код метода и слегка его изменить, не выходя за пределы внешней обработки?
|
|||
1
Ёпрст
22.09.11
✎
14:13
|
можно.
|
|||
2
tpmi
22.09.11
✎
14:20
|
(1) Спасибо :-)
А как это сделать не подскажете? |
|||
3
Ёпрст
22.09.11
✎
14:23
|
(2) самое простое - воткнуть условие в алгоритм поиска по номеру.
|
|||
4
tpmi
22.09.11
✎
14:24
|
(3) В объекте "Документ.Реализация" (тип для примера) есть метод НайтиПоНомеру. Его можно переопределить?
|
|||
5
andrewks
22.09.11
✎
14:29
|
ООП рулит
|
|||
6
Ёпрст
22.09.11
✎
14:29
|
(4) можно, только зачем ?
|
|||
7
tpmi
22.09.11
✎
14:30
|
(5) гениальное замечание. Число сообщений набиваем, товарищ?
|
|||
8
andrewks
22.09.11
✎
14:30
|
(7) в точку
|
|||
9
tpmi
22.09.11
✎
14:31
|
(6) Я пытаюсь изменить правила поиска в обработке, написанной на основе стандартного V77Imp.ert - переделано многое, к тому же, штатные средства КД не позволяют переопределять правила поиска в семёрке.
Так если можно, то подскажите, как? |
|||
10
andrewks
22.09.11
✎
14:32
|
(9) изменить код самой обработки не предлагать?
|
|||
11
tpmi
22.09.11
✎
14:33
|
(10) Этот код, довольно объёмистый, использует поиск по номеру в трёх местах. Мне надо всего лишь научить его находить по номеру, не учитывая при этом ведущие нули. Предлагается для этого разобраться в логике работы 3000-строчной программы и всё написать с нуля?
|
|||
12
Ёпрст
22.09.11
✎
14:33
|
(0) НайтиПоНомеру - это штатный метод объекта документ. Переопределить его ты сможешь, только если переопределишь Документ своим Классом, в котором будет этот метод.
А так, слепи свой метод НайтиПоНомеруМоё и ищи, как хочешь. |
|||
13
palpetrovich
22.09.11
✎
14:34
|
(9) HEX редактором наверное
|
|||
14
andrewks
22.09.11
✎
14:34
|
(11) вот интересно мне...
WinAPI в каждой новой версии с нуля переписывают? или всё-таки изменяют и совершенствуют имеющийся код? |
|||
15
tpmi
22.09.11
✎
14:36
|
(14) Изменяют и совершенствуют. Однако, это делают люди, в целом, которые его и писали. А эту обработку писал совсем не я. К тому же - как видно из обсуждения (не нужно вообще больше никуда смотреть, чтобы это увидеть), она использует стандартный объект, встроенный в объектную модель системы. И опять же видно, что переопределить часть этого объекта нельзя, тут вам не C#.
|
|||
16
Дык ё
22.09.11
✎
14:37
|
||||
17
tpmi
22.09.11
✎
14:38
|
(14) Я могу, наверное, влезть прямо в кишки системы и поменять всё прямо там, проблема в том, что обработка, которую я делаю, будет использоваться отнюдь не мной, а людьми, к которых я не знаю и которые работают далеко от меня - то есть в их систему я влезть не смогу, и ограничен одной только своей ertшкой, в которой всё должно работать.
|
|||
18
tpmi
22.09.11
✎
14:39
|
(16) Предлагается заставить аудиторов поставить себе 1C++?
|
|||
19
andrewks
22.09.11
✎
14:40
|
(17) извини за грубость, но это называется "выдирание гланд через *опу".
меняй код обработки, и не парь мозг |
|||
20
tpmi
22.09.11
✎
14:40
|
(всем) в нулевом же посте сказано - "не выходя за пределы внешней обработки"
|
|||
21
tpmi
22.09.11
✎
14:41
|
(19) можно было просто сказать "нельзя такое сделать", и не оскорблять никого, и нервы лишние не тратить.
|
|||
22
Mikeware
22.09.11
✎
14:41
|
Одна тема пятничнее другой...
|
|||
23
Дык ё
22.09.11
✎
14:41
|
(18) а у них есть выбор? О_о
|
|||
24
tpmi
22.09.11
✎
14:42
|
(23) - да, сказать "давайте нам бумажную первичку, нам неохота разбираться в ваших программах"
|
|||
25
Mikeware
22.09.11
✎
14:42
|
(20) тебе русским языком сказали - напиши НайтиПоНомеруМоё(), и все....
|
|||
26
Ёпрст
22.09.11
✎
14:42
|
(20) а ты и не будешь выходить за пределы одной обработки
|
|||
27
Mikeware
22.09.11
✎
14:43
|
(21) а где ты увидел оскорбления?
|
|||
28
andrewks
22.09.11
✎
14:43
|
(21) а тут кто-то кого-то оскорбляет? в каком посте?
|
|||
29
Медведик
22.09.11
✎
14:43
|
(11) При условии "использует поиск по номеру в трёх местах", чем не устраивает вариант В ТРЕХ МЕСТАХ заменить вызов стандартного поиска на поиск вашей функцией?
Для этого не нужно разбираться в тысячах строк кода. |
|||
30
tpmi
22.09.11
✎
14:43
|
(25) (26) а я с этим как раз и не спорю.
|
|||
31
Медведик
22.09.11
✎
14:44
|
(29) +не требуется изменения конфигурации, только функцию поиска добавить в саму внешнюю обработку.
|
|||
32
tpmi
22.09.11
✎
14:48
|
Ну а хотя бы увидеть код этого НайтиПоНомеру можно?
|
|||
33
andrewks
22.09.11
✎
14:48
|
(32) можно. используй SoftICE
|
|||
34
tpmi
22.09.11
✎
14:49
|
(33) толковый совет, но, извините, откажусь.
|
|||
35
palpetrovich
22.09.11
✎
14:52
|
(32) перечитай (12). переделать НайтиПоНомеру - это к разработчикам
|
|||
36
Медведик
22.09.11
✎
14:52
|
(32) "не выходя за пределы внешней обработки"? Нет
|
|||
37
tpmi
22.09.11
✎
14:55
|
(35) (36) ок, понятно, не поменять НайтиПоНомеру, написать вместо него свою функцию, и её использовать. Вопрос как её написать. Проще всего было бы посмотреть как устроена НайтиПоНомеру и на основе её сделать свою, добавив всего пару строк.
|
|||
38
andrewks
22.09.11
✎
14:55
|
троллинг детектед
|
|||
39
chief accountant
22.09.11
✎
14:57
|
(37) СП читай
|
|||
40
Ёпрст
22.09.11
✎
14:58
|
(37) открой профайлер и посмотри текст запроса
|
|||
41
Медведик
22.09.11
✎
15:01
|
(37) Есть версия, что оно написано на С или чем-то таком (на чем и вся платформа), кода на языке 1С вы не увидите никак.
|
|||
42
tpmi
22.09.11
✎
15:03
|
Работает, решает мою задачу.
Да, костыль. Функция НайтиПоНомеру(Док, Номер, Дат) С = 0; Пока С < 9 Цикл Если Док.НайтиПоНомеру(Номер, Дат) = 1 Тогда Возврат 1; КонецЕсли; Номер = "0" + Номер; Сообщить(Номер); С = С + 1; КонецЦикла; Возврат 0; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |