Имя: Пароль:
1C
 
1С 8.1 Объекты метаданных
0 Gunslinger38
 
23.11.10
10:41
Доброго времени суток.

Конфигурация 1С пишется с нуля.

Не вызываются методы Менеджера Документов в модуле формы документа.(Документы.ИмяДокумента.Метод) - жалуется что объект "ИмяДокумента" не найден.
Для всех остальных менеджеров (Справочники.**, Обработки.** и т.п.) все замечательно работает.

Где грабли?
1 Широкий
 
23.11.10
10:49
8.2?
2 Gunslinger38
 
23.11.10
10:58
Э.. "8.2" что? Если моя база - то 8.1, в заголовке темы написал. А если "пробовал ли на 8.2" - то нет. А это критично?
3 stangen
 
23.11.10
11:15
(2) переопределил глобальный контекст Документы?
4 kroll
 
23.11.10
13:26
(0) В отладчике посмотреть - какой тип у Документы.
5 Gunslinger38
 
23.11.10
14:00
Документы - тип КоллекцияОбъектовМетаданных

Причем переменные вида Документ.ИмяДокумента - тоже определены, с типом "ОбъектМетаданных".
6 AaNnDdRrEeYy
 
23.11.10
14:07
А метод в каком модуле написан?
7 Kashemir
 
23.11.10
14:24
(5) Элемент коллекции метаданных вызывать <> МенеджерДокумента
8 Aprobator
 
23.11.10
14:31
не найден Объект - ИмяДокумента. Дальше читать не стал.
9 Рэйв
 
23.11.10
14:37
1.Если ИмяДокумента переменная то
Документы[ИмяДокумента]

2. С каких пор в 1С ввели static?

Ты как без объекта метод собрался  вызывать?
10 acsent
 
23.11.10
14:42
(9) А что нельзя разве?
Документ.ИмяДокумента.ПустаяСсылка() например
11 Рэйв
 
23.11.10
14:43
(10)Это жестко прописанная в платформе функция, отраженная в СП. сдается мне что про Метод там ничего нет
12 Gunslinger38
 
23.11.10
14:50
Э.. Я может тормоз конечно..

Вас смущает именно слово ИмяДокумента? Я просто код так пишу чтобы понятно было сходу о чем речь идет.


В оригинале кода это
<code>
Документы.дкДоговор.ПолучитьФормуНовогоДокумента(, ЭтаФорма);
</code>

дкДоговор в данном случае не имя переменной, а имя существующего объекта метаданных типа документ.

Точно такой же код в существующей конфигурации (УТ, например), если создать пару документов - прекрасно из одного открывает форму второго.

В созданной новой конфигурации - нет.

Где посмотреть про разметку для этого форума?
13 Рэйв
 
23.11.10
14:51
(12)Значит нет у тебя в новой конфигурации документа с именем
дкДоговор
14 patapum
 
23.11.10
14:51
а метод точно в модуле Менеджера прописан, а не Объекта?
15 Рэйв
 
23.11.10
14:51
(14)Это он так утрировал:)
16 Рэйв
 
23.11.10
14:52
(14)На самом деле у него ПолучитьФормуНовогоДокумента()
17 fisher
 
23.11.10
14:53
(8) +1
18 Dmitrii
 
гуру
23.11.10
14:56
(14) Речь об 8.1. Там нет модулей Менеджера
19 Gunslinger38
 
23.11.10
14:57
Сейчас опять накричат..
<code>
НовФорма = Документы.дкДоговор.ПолучитьФормуНовогоДокумента(, ЭтаФорма);
<code>

Вот такая строка у меня
Вызывается по нажатию кнопки из модуля формы другого документа.
20 Gunslinger38
 
23.11.10
15:01
(13)
Что самое смешное объект точно есть. Нет ни опечаток, ни других ошибок именно в этой строке.

Элементарно, когда я пишу в коде "... = Документы." мне автодополнение выдает варианты существующих объектов - из них и выбираю.

Причем, что характерно для Форм обработок, или например справочников прекрасно все работает.
21 davlen
 
23.11.10
15:14
Стало интересно создал пустую конфу с двумя доками из формы дока2 открыл форму дока1 этим методом все работает
22 davlen
 
23.11.10
15:15
(21) а платформа у мя 1С:Предприятие 8.1 (8.1.13.41)
23 davlen
 
23.11.10
15:16
<code>
НовФорма = Документы.дкДоговор.ПолучитьФормуНовогоДокумента(, ЭтаФорма);
<code>

а что ты потом с этой формой делаешь?
24 Dmitrii
 
гуру
23.11.10
15:16
1. Ты уверен, что ни где не присваиваешь чего-нибудь переменной с именем "Документы" ?
2. Нет ли случайно реквизита с именем "Документы" у той формы откуда вызывается этот код ?
2. Нет ли случайно реквизита с именем "Документы" у объекта из чьей формы вызывается этот код ?
3. Какой основной реквизит формы, из которой вызывается этот код?
25 hhhh
 
23.11.10
15:18
(21) да он слово Документы переопределил. Ответ в (3) и в (5).
26 Kashemir
 
23.11.10
15:20
(21) Ты на комментарий автора (5) посмотри. А потом на свои типы.
27 Gunslinger38
 
23.11.10
15:29
(24)(25)

Ага. Я олень. Северный.

ТабличноеПоле "Документы"

*WALL*

Причем когда проверял, был абсолютно уверен, что уж такое точно не сотворю. Говорила же мне мама: "Использую префиксы типов, Люк!"

(25) А вот почему ответ в (5) - неясно. У глобального контекста "Справочники" тот же самый тип.

Спасибо всем большое.
28 Kashemir
 
23.11.10
15:35
(27) Потому что ТарелкаСупа <> РецептСупа, и метод Съесть() если только у первого объекта.
29 Gunslinger38
 
23.11.10
15:38
(28) А, все, понял. Спасибо еще раз.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.