|
Проблема с получением макета во внешнем отчете | ☑ | ||
---|---|---|---|---|
0
Fire-Rex
30.09.15
✎
09:02
|
Добрый день! Делаю внешний отчет кассовая книга для БСП 3.0. Задача - изменить счет в выборке. Все запросы идут через два десятка общих модулей, нашел отладчиком тот, в котором запрос формируется - перетянул в отчет. Синтакс-помошник говорит все нормально, но в отладке ругается:
Макет = ЭтотОбъект.ПолучитьМакет("КассоваяКнига"). Где я накололся? |
|||
1
jurassic
30.09.15
✎
09:07
|
тебе всё рассказали русским по белому
|
|||
2
Fire-Rex
30.09.15
✎
09:08
|
Изначально было
Макет = ПолучитьМакет("КассоваяКнига") Переделал. В "ЭтотОбъект" проблема? |
|||
3
1Сергей
30.09.15
✎
09:09
|
>>Где я накололся?
в подъезде... Макет перетянул в отчет? |
|||
4
Fire-Rex
30.09.15
✎
09:09
|
перетянул
|
|||
5
StillEnough
30.09.15
✎
09:10
|
если это отчет - тогда пиши ОтчетОбъект.ПолучитьМакет.
А вообще смотри на сервере или на клиенте получаешь, мб в этом проблема. |
|||
6
Fire-Rex
30.09.15
✎
09:11
|
Да, насчет Сервер/Клиент тоже думал. Пробовал и так и так.
|
|||
7
StillEnough
30.09.15
✎
09:12
|
саму ошибку напишите сюда
|
|||
8
jurassic
30.09.15
✎
09:12
|
(7) не надо. мы обожаем загадки
|
|||
9
StillEnough
30.09.15
✎
09:13
|
(8) слишком рано еще у меня для загадок (:
|
|||
10
Fire-Rex
30.09.15
✎
09:13
|
{Форма.ФормаОтчета.Форма(886)}: Метод объекта не обнаружен (ПолучитьМакет)
Макет = ЭтотОбъект.ПолучитьМакет("КассоваяКнига"); |
|||
11
1Сергей
30.09.15
✎
09:14
|
(10) см (5)
|
|||
12
jurassic
30.09.15
✎
09:14
|
а что, СП правда утверждает, что у формы можно получить макет?
|
|||
13
Fire-Rex
30.09.15
✎
09:14
|
{Форма.ФормаОтчета.Форма(886,10)}: Переменная не определена (ОтчетОбъект)
Макет = <<?>>ОтчетОбъект.ПолучитьМакет("КассоваяКнига"); (Проверка: Сервер |
|||
14
Goggy
30.09.15
✎
09:15
|
(10) Ну чтож ты...
Даю подсказку, чтоб ты тоже подумал своей головешкой. -------------------------------------------------------- УправляемаяФорма (ManagedForm) РеквизитФормыВЗначение (FormAttributeToValue) Синтаксис: РеквизитФормыВЗначение(<ИмяРеквизита>, <Тип>) Параметры: <ИмяРеквизита> (обязательный) Тип: Строка. Имя реквизита формы, который необходимо преобразовать. Может быть указан реквизит данных формы (см. описание параметра <Объект> метода ДанныеФормыВЗначение). <Тип> (необязательный) Тип: Тип. Тип значения, получаемого из реквизита формы (данных формы). Если данный параметр не указан, то он также получается из реквизита формы. Если реквизит является составным типом и значение параметра не указано, генерируется исключение времени выполнения. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует указанный реквизит формы в объект прикладного типа. Доступность: Сервер, мобильное приложение(сервер). |
|||
15
StillEnough
30.09.15
✎
09:18
|
v8: 8.2 Внешняя обработка => Управляемая форма => ПолучитьМакет
смотри в теме 3 пост примерно код готовый. делай по аналогии |
|||
16
Fire-Rex
30.09.15
✎
09:33
|
Что-то не пойму
|
|||
17
Fire-Rex
30.09.15
✎
09:39
|
&НаСервере
Функция ПолучитьМакетНаСервере() ЭтотОбъект=РеквизитФормыВЗначение("Объект"); Макет = ЭтотОбъект.ПолучитьМакет("Макет"); Возврат Макет; КонецФункции |
|||
18
Fire-Rex
30.09.15
✎
09:40
|
Как теперь перед запросом обратиться к макету?
|
|||
19
jurassic
30.09.15
✎
09:43
|
ОМойМакет=ПолучитьМакетНаСервере();
Запрос=Новый Запрос; |
|||
20
Fire-Rex
30.09.15
✎
09:45
|
{Форма.ФормаОтчета.Форма(2154)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
ЭтотОбъект=РеквизитФормыВЗначение("Объект"); по причине: Недопустимое значение параметра (параметр номер '1') |
|||
21
Fire-Rex
30.09.15
✎
09:49
|
Что-то пошло не так, Сэр
|
|||
22
jurassic
30.09.15
✎
09:51
|
будешь искать реквизит формы Объект?
|
|||
23
Fire-Rex
30.09.15
✎
09:56
|
Ребят, не ругайтесь только. На форме основной реквизит - "Отчет". Переделал, теперь вот что:
{Форма.ФормаОтчета.Форма(2154)}: Поле объекта недоступно для записи (ЭтотОбъект) ЭтотОбъект = РеквизитФормыВЗначение("Отчет"); |
|||
24
Fire-Rex
30.09.15
✎
09:57
|
Я, видимо, не правильно понимаю "Объект"
|
|||
25
jurassic
30.09.15
✎
09:58
|
>Поле объекта недоступно для записи
это значит, что туда писать ничего нельзя |
|||
26
Timon1405
30.09.15
✎
10:01
|
(23) как насчет
НикогдаНеНазывайСвоюПеременнуюЭтотОбъект = РеквизитФормыВЗначение("Отчет"); ? |
|||
27
Fire-Rex
30.09.15
✎
10:21
|
(26) Да,спасибо, так и сделал
|
|||
28
Fire-Rex
30.09.15
✎
10:21
|
ЭтотОтчет
|
|||
29
hhhh
30.09.15
✎
10:26
|
ЭтотОбъект слово уже занято. Это Форма сама. Никак поверх нее Объект не запихнете.
|
|||
30
Fire-Rex
30.09.15
✎
10:40
|
Да-да, спасибо большое! Разобрался - понял.
|
|||
31
Fire-Rex
30.09.15
✎
12:21
|
Еще вопрос. Мне для каждого макета отдельную функцию прописывать? Или так пойдет:
Функция ПолучитьМакетНаСервере() ЭтотОтчет = РеквизитФормыВЗначение("Отчет"); Макет = ЭтотОтчет.ПолучитьМакет("КассоваяКнига"); Макет2 = ЭтотОтчет.ПолучитьМакет("ОповеститьОПроблеме"); Возврат Макет; КонецФункции |
|||
32
jurassic
30.09.15
✎
12:22
|
Функция ПолучитьМакетНаСервере(НомерМакета)
Возврат Вычислить("Макет"+НомерМакета) гыгы |
|||
33
Fire-Rex
30.09.15
✎
12:26
|
Функция ПолучитьМакетНаСервере(НомерМакета)
ЭтотОтчет = РеквизитФормыВЗначение("Отчет"); Макет = ЭтотОтчет.ПолучитьМакет("КассоваяКнига"); Макет2 = ЭтотОтчет.ПолучитьМакет("ОповеститьОПроблеме"); Возврат Вычислить("Макет"+НомерМакета) КонецФункции |
|||
34
jurassic
30.09.15
✎
12:28
|
можешь выкинуть уже свою функцию и получать макет непосредственно перед употреблением
|
|||
35
Fire-Rex
30.09.15
✎
12:38
|
(34) Не понял
|
|||
36
jurassic
30.09.15
✎
12:40
|
(35) в (2) уже было почти правильно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |