|
Функция Вычислить() и расширение Климов Сергей, trk415e76, YFedor, Жеглофф, егаис, nick86, Ногаминебить, Greeen, Fish, Homer, zenik, Timon1405, Arh01, PR, Мультук, oleg_km, Олдж, reg0303, Anton1307, okmail, Bad_Aleks, arsik, Ненавижу 1С, craxx, Crusher, Vstur, Neo58, Fedor-1971, Fragster, ДенисСмирнов, TormozIT, Эх-эх-эх, tulke, Бычье сердце, Толич, _Batoo, Доминошник, Chameleon1980, X Leshiy, Hawk_1c, Lama12, Prog_man, patapum, calmius, Indian, Кирпич, 1cVandal, Caesar
| ☑ | ||
|---|---|---|---|---|
|
0
егаис
23.07.26
✎
16:22
|
Не пойму, в чем ошибка
УАТ. Пишу через расширение свою функцию печати нового вида путевки. уатПечать_Мояформа() Экспорт Печать в УАТ вызываются через Вычислить(ИмяФункцииПечати) При вызове функции печати из расширения появляется ошибка из вложения. Расширение не в безопасном режиме, пробовал и в безопасном. Кэш чистил, не помогло. Имя вызываемой функции и функции в расширении 100% совпадают. В чем ошибка? |
|||
|
1
егаис
23.07.26
✎
16:24
|
странно, вложение не отправилось
|
|||
|
2
Ненавижу 1С
гуру
23.07.26
✎
16:27
|
Написано же, что нет такого метода
|
|||
|
3
егаис
23.07.26
✎
16:28
|
Есть! В расширении , в модуле менеджера документа.
|
|||
|
4
Толич
23.07.26
✎
16:30
|
(0) Сделать в расширении уже имеющуюся функцию - экспортной, нельзя. И кстати количество параметров увеличить тоже нельзя в расширяемой функции.
|
|||
|
5
егаис
23.07.26
✎
16:30
|
Имя при вызове совпадает
|
|||
|
6
егаис
23.07.26
✎
16:30
|
(4) Это новая функция
|
|||
|
7
Lama12
23.07.26
✎
16:33
|
Расширение с какими галками подключено?
|
|||
|
8
craxx
23.07.26
✎
16:34
|
(4) Но можно обернуть ее в другую функцию, экспортную. и вызвать
|
|||
|
9
егаис
23.07.26
✎
16:36
|
(7) Активно + использовать основные роли. Играл галками (кроме активно конечно), монописуально.
|
|||
|
10
Chameleon1980
23.07.26
✎
16:41
|
(9) про "бесопасные" галки спрашивают, скорее всего
|
|||
|
11
егаис
23.07.26
✎
16:43
|
(10) Проверялось в первую очередь. Знаю, что Вычислить() выполняется в безопасном режиме.
|
|||
|
12
Толич
23.07.26
✎
16:45
|
Вызов функции и сама функция в одном расширении?
|
|||
|
13
Ненавижу 1С
гуру
23.07.26
✎
16:47
|
(3) посмотрите отладкой, в каком модуле оно пытается вызваться, возможно модуль другой прописан
|
|||
|
14
егаис
23.07.26
✎
16:53
|
(12) Вычислить(ИмяФункцииПечати) вызывается из модулей печати в конфигурации.
Сама ИмяФункцииПечати описана в расширении. (13) В ошибке видно имя функции. Я даже скопировал имя из ошибки и вставил в расширение. Придется снимать замок с модуля похоже. |
|||
|
15
Ненавижу 1С
гуру
23.07.26
✎
16:55
|
(14) в ошибке видно имя функции, которой нет. Функция какого модуля вызывается?
|
|||
|
16
егаис
23.07.26
✎
16:56
|
(15) Модуля менеджера документа "Путевой лист"
|
|||
|
17
Ненавижу 1С
гуру
23.07.26
✎
16:58
|
(16) ты это в отладке увидел или ты хочешь чтобы это было так?
|
|||
|
18
YFedor
23.07.26
✎
16:59
|
Может вызывается с клиента
|
|||
|
19
Ненавижу 1С
гуру
23.07.26
✎
17:02
|
(18) вот! похоже на правду
|
|||
|
20
егаис
23.07.26
✎
17:04
|
(17) Смотри, ММ документа ПЛ, как все устроено
ВЫЗОВ ИмяМакета = ТекущийДокумент.ВидПЛ.Метаданные().ЗначенияПеречисления[Перечисления.уатВидыПЛ.Индекс(ТекущийДокумент.ВидПЛ)].Имя; ИмяМакета = "ПФ_MXL" + ИмяМакета; ТабДокумент = Вычислить(ИмяФункцииПечати); Все эти функции ИмяФункцииПечати описаны тут же, в ММ Например Функция уатПечать_ЭСМ1(ТекущийДокумент, ИмяМакета, ФлагПечати="") Экспорт Я по аналогии добавляю новую функцию в расширение и ловлю ошибку. |
|||
|
21
егаис
23.07.26
✎
17:05
|
(18) Причем тут клиент, не догоняю
|
|||
|
22
Fish
гуру
23.07.26
✎
17:07
|
(21) С клиента модуль менеджера недоступен.
|
|||
|
23
YFedor
23.07.26
✎
17:21
|
(20) Я конечно понимаю, что ты выложил не весь код, но в выложенном куске "ИмяФункцииПечати" нигде не определяется.
+ Он же пишет, что не нашел функцию с именем "уатПечать_" .... Т.е. ему не передали нужное имя функции |
|||
|
24
егаис
23.07.26
✎
17:22
|
ИмяМакета = ТекущийДокумент.ВидПЛ.Метаданные().ЗначенияПеречисления[Перечисления.уатВидыПЛ.Индекс(ТекущийДокумент.ВидПЛ)].Имя;
Если (ИмяМакета = "_ЭСМ1") Или (ИмяМакета = "_ЭСМ3") Тогда ИмяФункцииПечати = "уатПечать" + ИмяМакета + "(ТекущийДокумент, ""уат"" + Сред(ИмяМакета,2,4), 1)"; ИначеЕсли (ИмяМакета = "_6") Тогда ИмяФункцииПечати = "уатПечать" + ИмяМакета + "(ТекущийДокумент, ИмяМакета + ""_пп"", 1)"; ИначеЕсли (ИмяМакета = "_412_АПК") Тогда ИмяФункцииПечати = "уатПечать" + ИмяМакета + "(ТекущийДокумент,ИмяМакета, 1)"; Иначе ИмяФункцииПечати = "уатПечать" + ИмяМакета + "(ТекущийДокумент, ИмяМакета, 1)"; КонецЕсли; ИмяМакета = "ПФ_MXL" + ИмяМакета; ТабДокумент = Вычислить(ИмяФункцииПечати); Т.е. условно ИмяФункцииПечати превращается в уатПечать_ЭСМ1(ТекущийДокумент, ИмяМакета, ФлагПечати="") |
|||
|
25
YFedor
23.07.26
✎
17:27
|
Ни разу не пользовался вызовом функции так чтобы:
Вызывалась функция из того же модуля, где осуществлен вызов, причем вызов из исходного модуля, а вызывается функция из расширения этого же модуля. Попробуй в копии снять замочек и в месте вызова написать не просто имя функции, а имя с модулем, т.е. не Выполнить("МояФункция"), а Выполнить("Модуль.МояФункция") |
|||
|
26
Timon1405
23.07.26
✎
17:28
|
(22) так уж прямо и недоступен
|
|||
|
27
егаис
23.07.26
✎
17:38
|
(25) это Рарус.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |