|
Вызов из модуля команды объекта процедуры из модуля объекта | ☑ | ||
---|---|---|---|---|
0
BVG1951
16.04.15
✎
14:46
|
При попытке вызова из модуля команды документа (той команды, что в отдельной ветке у объекта в конфигураторе) процедуры, расположенной в модуле документа вдруг стала появляться ошибка.
Раньше ТОЧНО ТАКОЙ ЖЕ код работал. Момент, когда код перестал работать точно не отловили (достаточно редко вызывалась команда). Но на платформе 8.2 - точно работала. Никто не знает, произошли ли изменения в 8.3 с этой точки зрения? |
|||
1
Любопытная
16.04.15
✎
14:48
|
Какая ошибка?
|
|||
2
butterbean
16.04.15
✎
14:48
|
где код-то??
|
|||
3
a_alenkin
16.04.15
✎
14:49
|
тут много телепатов - хоть бы текст ошибки привел
|
|||
4
BVG1951
16.04.15
✎
14:52
|
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ТабДокумент = ПечатьНаСервере(ПараметрКоманды); Если Не ТабДокумент = Неопределено Тогда ...............................; ТабДокумент.Показать(); КонецЕсли; КонецПроцедуры &НаСервере Функция ПечатьНаСервере(СсылкаДок) Документ = СсылкаДок.ПолучитьОбъект(); ИмяМакета = "РасчетПособияКЛисткуНетрудоспособности2011"; ТабДок = Документ.Печать(ИмяМакета); Возврат ТабДок; КонецФункции А ругается на то, что не найден метод "Печать" (хотя в модуле документа такая функция есть и она экспортная |
|||
5
Любопытная
16.04.15
✎
14:55
|
А объект-то получился? А то мало ли... Что в ПараметрКоманды ушло?
|
|||
6
BVG1951
16.04.15
✎
15:00
|
Получился объект и тот, что надо
|
|||
7
BVG1951
16.04.15
✎
15:03
|
Ничего не понимаю, должно работать (и работало), а не работает. Единственное предположение, что в 8.3 стало невозможно из модуля команды вызвать процедуру модуля объекта. Вот это и хотел уточнить
|
|||
8
Defender aka LINN
16.04.15
✎
15:49
|
Кэш продувал?
|
|||
9
BVG1951
16.04.15
✎
16:23
|
Не понимаю. Ошибка возникает у разных пользователей, на разных базах (с идентичной структурой). При чем здесь кэш?
|
|||
10
GROOVY
16.04.15
✎
16:27
|
Это система намекает тебе, что получать объект для формирования печатной формы - плохо.
|
|||
11
Лефмихалыч
16.04.15
✎
16:29
|
раз "раньше точно такой же код работал", значит у формы появился реквизит с именем Документ и каким-нить там ссылочным типом
|
|||
12
BVG1951
16.04.15
✎
16:32
|
Ошибка появилась после очередного обновления из типового функционала. Эта ошибка возникает при печати (которой, полагаю, пользователи пользовались не часто и, возможно, после перехода на 8.3 месяца 2 назад решали проблему печати как-то иным способом), но в этот раз ей сопутствовала ошибка при проведении, от которой "не отмахнуться" (ее я уже исправил). Поскольку иных объяснений ошибки при печати я не вижу, вот решил спросить про изменения в 8.3
(10) Этот код писал не я, так что претензии не ко мне :) (11) Напоминаю, что код вызывается не из формы, а из модуля команды |
|||
13
GROOVY
16.04.15
✎
16:35
|
В отладке глянь тип значения "Документ", скорее всего там массив.
|
|||
14
Лефмихалыч
16.04.15
✎
16:40
|
(12) отладчик купи или укради где-нибудь
|
|||
15
BVG1951
16.04.15
✎
16:43
|
(13) а вот и не угадал. Натуральный документ-объект. И даже не "эрзац" из формы (тоже было предположение). Вы мне скажите по собственному опыту: вызывали ли из модуля КОМАНДЫ процедуру (функцию) модуля объекта и так, чтобы это работало в 8.3.
Я уже переношу все процедуры/функции из модуля объекта в модуль менеджера (там вызов работает, только долго переносить) |
|||
16
BVG1951
16.04.15
✎
16:44
|
(14) Да... Шуточки ниже плинтуса
|
|||
17
Лефмихалыч
16.04.15
✎
16:45
|
(15) директивы компиляции поди вокруг Печать() появились какие-то. Или всегда были, но у тебя режим запуска им соответствовал, а щас вдруг перестал
|
|||
18
sapphire
16.04.15
✎
16:56
|
(4)
На сервере: ЭтотОбъект=РеквизитФормыВЗначение("Объект"); // вызов метода модуля объекта // ЭтотОбъект.{Имя метода}. ЗначениеВРеквизитФормы(ЭтотОбъект,"Объект"); Лучше, нежели ПолучитьОбъект() |
|||
19
BVG1951
16.04.15
✎
16:57
|
(17) Большое спасибо, Лефмихалыч! Эти (очевидно перенесенные при обновлении из типового функционала) директивы были так широко расставлены, что без осознанного поиска я бы их не нашел. Все заработало.
Между прочим, это всего 2-ой случай, когда я получаю толковый совет на этом форуме. Как правило сюда обращаешься, когда сам перебрал все мыслимые возможности. Но в ответ молчок. |
|||
20
BVG1951
16.04.15
✎
16:59
|
(18) Еще раз напоминаю: это не форма, а команда объекта. Этот код не пройдет
|
|||
21
Лефмихалыч
16.04.15
✎
17:03
|
(19) пожалуйста
|
|||
22
BVG1951
16.04.15
✎
17:20
|
А дело было в том, что обновлял то я из типового, обыкновенного приложения, а у нас управляемое. Вот и надо было к директиве добавить ... или Сервер...
Что ж, теперь буду знать эту "фишку" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |