1с ошибка при вызове метода контекста получить макет

Как ПолучитьМакет(«Макет») в документе?

Я
   LivingStar

03.09.13 — 10:53

При нажитии на кнопку в форме документа вылетает ошибка, —

{Документ.РасчетПремииМенеджера.Форма.ФормаДокумента(62)}: Ошибка при вызове метода контекста (ПолучитьМакет)

    Макет = ПолучитьМакет(«Макет»);

по причине:

Недопустимое значение параметра (параметр номер ‘1’)

У документа есть Макет, — «Макет» , почему ругается на него?

Процедура РасчетПремииНажатие(Элемент)

    // Вставить содержимое обработчика.

    Если НЕ ПолучитьДокументПланирования() тогда возврат; конецесли;

    //ЭтаФорма.ЭлементыФормы.Инд.Видимость=Истина;

    //Инд=0;

    Состояние(«Идет расчет премии менеджера, подождите …»);

    мен = ЭтаФорма.ЭлементыФормы.Менеджер.Значение;

    
    ТабДокумент = Новый ТабличныйДокумент;

    Макет = ПолучитьМакет(«Макет»);

   rull9ss

1 — 03.09.13 — 10:54

попробуй полное имя указать

«Документы.ТвойДокумент.Макеты.ТвойМакет»

   Wobland

2 — 03.09.13 — 10:56

объ=РеквизитФормыВЗначение(«Объект»);

    Макет=объ.ПолучитьМакет(«Макет»);

   Error pro

3 — 03.09.13 — 10:57

(0) УФ?

   LivingStar

4 — 03.09.13 — 10:57

(1) ругается что нет поля объекта «Макет»

   LivingStar

5 — 03.09.13 — 10:57

(2) только так??? спасибо, сейчас попробую, думал проще….

   LivingStar

6 — 03.09.13 — 10:57

(3) Обычные формы

   Wobland

7 — 03.09.13 — 10:58

(6) нет макета

   Error pro

8 — 03.09.13 — 10:58

(6) Скопируй старый макет в новый. Попробуй изменить наименование.

   LivingStar

9 — 03.09.13 — 11:00

(2) Процедура или функция с указанным именем не определена (РеквизитФормыВЗначение)

   LivingStar

10 — 03.09.13 — 11:01

(8) Хотите сказать что так должно работать

Макет = ПолучитьМакет(«Макет»);

это глюки?

   rull9ss

11 — 03.09.13 — 11:01

(9) ну так откуда в обычных формах РеквизитФормыВЗначение??

   LivingStar

12 — 03.09.13 — 11:01

(11) Понял!

(2) Значит это не подойдет!!!

Как в обычных формах это работает, получение доступа к макету документа.

   Wobland

13 — 03.09.13 — 11:03

(10) ЭтотОбъект?

   Cashtane

14 — 03.09.13 — 11:03

Макет = ЭтотОбъект.ПолучитьМакет(«Накладная»);

   LivingStar

15 — 03.09.13 — 11:07

(13) Это выполняется в форме документа

   Cashtane

16 — 03.09.13 — 11:07

(15) Вот поэтому и ЭтотОбъект.

   Cashtane

17 — 03.09.13 — 11:08

Если бы был в модуле объекта мог бы просто вызвать: ПолучитьМакет(«Накладная»)

   LivingStar

18 — 03.09.13 — 11:08

в тестовой базе смотрю, на эту строку не ругается, стало ругаться в рабочей (((

   LivingStar

19 — 03.09.13 — 11:09

Вот в тестовой базе в модуле формы документа, прошло и не сругалось!!!

    Макет = ПолучитьМакет(«Макет»);

   Infsams654

20 — 03.09.13 — 11:13

А это еще что за хр-нь ?

мен = ЭтаФорма.ЭлементыФормы.Менеджер.Значение;

Элемент формы связан по данным с реквизитом объекта/ТЧ объекта, либо с реквизитом формы. Так, что, надо сразу к ним и обращаться. А через ЭлементыФормы — это для несмышленых

   LivingStar

21 — 03.09.13 — 11:14

(17) Ошибка при вызове метода контекста (ПолучитьМакет)

    Макет = ЭтотОбъект.ПолучитьМакет(«Макет»);

   Wobland

22 — 03.09.13 — 11:14

(21) назови его «77» уже

   LivingStar

23 — 03.09.13 — 11:16

(21) Я первый раз этот код и документ вижу, и удивляюсь что он все время работал нормально

Сейчас в тестовой базе работает, а в рабочей стал ругаться на макет

(22) А почему нужно его переименовывать, в тестовой работает все без изменений, а тут что случилось?

   LivingStar

24 — 03.09.13 — 11:16

(20) Я первый раз этот код и документ вижу, и удивляюсь что он все время работал нормально

   Wobland

25 — 03.09.13 — 11:16

(23) это называется «танцы с бубном». отсекаются проблемы разной раскладки

   Cashtane

26 — 03.09.13 — 11:18

(25) Видимо действительно этот случай. И не более.

   palpetrovich

27 — 03.09.13 — 11:20

(24) в этом документе точно есть Макет «Макет»?

   Error pro

28 — 03.09.13 — 11:23

(24) я тебе еще в (8) предложил переименовать макет. Тяжело сделать?

   LivingStar

29 — 03.09.13 — 11:23

(27) Да конечно, говорю в копии базы все работает, в рабочей что то слетело.

Изменил название макета на «РасчетПМ»

Макет = ЭтотОбъект.ПолучитьМакет(«РасчетПМ»);

стало работать…выполняется…Ошибки уже на макете не выдает!

   LivingStar

30 — 03.09.13 — 11:23

(28) переименовал!

   LivingStar

31 — 03.09.13 — 11:24

Спасибо всем!

   LivingStar

32 — 03.09.13 — 13:13

То есть это к примеру залез админ в 1с, исправил букву в другой раскладке в названии макета «Макет» и сохранил? Или это реально глюк такой 1с есть???

   LivingStar

33 — 03.09.13 — 13:24

SABOTAGE ??!

   hhhh

34 — 03.09.13 — 13:30

(32) наверно у формы слетело свойство «Данные». А потом кто-то кофе пил на твоем рабочем месте, махнул рукавом, зацепил клавиатуру, свойство и заполнилось как надо.

   МихаилМ

35 — 03.09.13 — 13:47

ОбработкаОбъект.ПолучитьМакет(

   LivingStar

36 — 03.09.13 — 13:52

(34) Непонятно как это бы так было, саботаж если только говорю!!!

(35) Макет документа, при чем тут обработка???

пробовал и так:

Макет = ПолучитьМакет(«Мекет»);

и так

Макет = ЭтотОбъект.ПолучитьМакет(«Макет»);

не получалось….пока не изменил название макета…

  

МихаилМ

37 — 03.09.13 — 14:01

(36)

извиняюсь. этотОбъект

1C. «Недопустимое значение параметра» при вызове макета в расширении

Дано: 1С (в данном примере конфигурация 1С:Университет ПРОФ), платформа 8.3.10. Создано расширение, в котором к документу добавлен новый макет. В модуле менеджера документа есть процедура, формирующая печатную форму на базе макета. Необходимо было заменить данную процедуру (при помощи директивы расширения «&Вместо») и заменить вызов встроенного макета на наш, добавленный в расширение.
Проблема: при вызове добавленного макета в момент его печати в режиме «1С:Предприятие» возникала ошибка при получении макета:

{ЗаявлениеПоступающегоРасширение Документ.ЗаявлениеПоступающего.МодульМенеджера(176)}: Ошибка при вызове метода контекста (ПолучитьМакет)
Макет = Документы.ЗаявлениеПоступающего.ПолучитьМакет («Расш1_МакетЗаявлениеПоступающего»);
по причине:
Недопустимое значение параметра (параметр номер ‘1’)

Код, вызывающий ошибку:

Варианты решения:

1. Добавить функцию, выполняемую на сервере, которая вызовет добавленный макет из документа:

&НаСервере

Функция ПолучитьМакетЗаявленияИзРасширения()

    Макет = Документы.ЗаявлениеПоступающего.ПолучитьМакет («Расш1_МакетЗаявлениеПоступающего»);

    Возврат Макет;

КонецФункции

А затем из заменяемой процедуры вызвать эту функцию:

(как оказалось этот способ не нужен. Причину читайте ниже)

2. Другой вариант — перенести макеты в общие и следующей командой вызвать (получить) макет из «Общие макеты»:

Макет = ПолучитьОбщийМакет («Расш1_МакетЗаявлениеПоступающего»);

——
Видимо это всё-таки какой-то глюк платформы (протестировано на 8.3.10.2252 и 8.3.10.2299), но если просто добавить пустой макет в общие макеты в расширении, то команда, ранее вызывавшая ошибку (ПолучитьМакет из макета документа без допфункций на сервере), начинает нормально работать. При удалении пустого общего макета, команда вызова макета из документа снова вызывает ошибку (даже если вынесена в функцию на сервере, как показано в способе 1).
Т.е. если всё-таки хочется сделать макеты нормально в документе (ожидая, что когда-нибудь этот глюк исправят), то нужно сделать макет-заглушку в общих макетах. Например:

При этом, если в расширении добавлено несколько макетов к документу, то «заглушки» достаточно только одной.

Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

1

13.12.2017, 12:05. Показов 17671. Ответов 10


Студворк — интернет-сервис помощи студентам

Добрый день, вот пытаюсь напечатать документ MSWorld в обработке, делаю по примеру, вот так

ОбработкаОбъект = РеквизитФормыВЗначение(«Объект»);
СсылкаМакет = ОбработкаОбъект.ПолучитьМакет(«Макет»);

MSWord = СсылкаМакет.Получить();// И вот тут выдает ошибку

Ошибка при вызове метода контекста (Получить)

Подскажите плз где ошибка?

http://programmist1s.ru/pechat… 8-3-i-8-2/ — вот брал отсюда

Добавлено через 22 минуты
Да, делаю это все на сервере



0



Эксперт 1С

434 / 305 / 92

Регистрация: 28.05.2014

Сообщений: 1,247

13.12.2017, 13:53

2

Владислаучык,
что в переменной СсылкаМакет ?
У макета тип ActiveDocument?

в той же статье автор пишет ещё следующее:

Скорее всего проблема в ворде или в правах системы. Он корректно установлен? Попробуйте другую версию Ворда. Ну или на крайний случай можно проделать это на другой машине.



1



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.12.2017, 14:09

 [ТС]

3

Получение макета ActiveDocument



0



Владислаучык

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.12.2017, 16:52

 [ТС]

4

Phil, Да, такой тип

Добавлено через 2 часа 42 минуты
И если дело в ворлде, то как тогда переделать? пробовал так

1C
1
2
3
4
5
6
7
8
9
//ВремФайл = ПолучитьИмяВременногоФайла("doc");
//  MSWord = Новый COMОбъект("Word.Application");
//MSWord.Displayalerts = 0;
//ДокументН = MSWord.Application.Documents.Add();
//ДокументН.SaveAs(ВремФайл,0);                
//MSWord.Quit();
 
//Макет = ВернутьМакет();
//MSWord = Макет.Получить();
1C
1
2
3
4
5
6
7
8
&НаСервере
Функция ВернутьМакет()
    
        
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    СсылкаМакет = ОбработкаОбъект.ПолучитьМакет("Макет");
    Возврат СсылкаМакет;
КонецФункции

Так макет нельзя вернуть, а если на сервере сделать сразу, то тоже ошибка отсутствует отображение типа для ActiveDocument



0



polax

1876 / 1281 / 460

Регистрация: 16.01.2015

Сообщений: 5,606

14.12.2017, 10:25

5

Владислаучык, Вот рабочий код. Неделю назад делал ВПФ с макетом в Ворде

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаСервере
Функция ПолучитьДокументВордИзМакета (ИмяМакета)
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    ИмяФайла = ПолучитьИмяВременногоФайла ("doc");
    Макет.Записать (ИмяФайла);
    
    Приложение = Новый ComObject ("Word.Application");
    
    ДокументыВорда = Приложение.Documents;
    Документ = ДокументыВорда.Open (ИмяФайла);
    Документ.Activate ();
    
    Selection = Приложение.Selection;
    Selection.WholeStory ();
    Selection.Copy ();
    
    НовыйДокумент = ДокументыВорда.Add ();
    НовыйДокумент.Activate ();
    Selection = Приложение.Selection;
    Selection.WholeStory ();
    Selection.PasteAndFormat (0);
    
    Документ.Close ();
    УдалитьФайлы (ИмяФайла);
    
    Данные = Новый Структура;
    Данные.Вставить ("Приложение", Приложение);
    Данные.Вставить ("Документ", НовыйДокумент);
    
    Возврат Данные;
КонецФункции // ПолучитьДокументВордИзМакета



0



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

15.12.2017, 15:15

 [ТС]

6

polax, Приложение = Новый ComObject («Word.Application»); — вот тут ошибка, Ошибка при вызове конструктора (ComObject)
Приложение = Новый ComObject («Word.Application»);
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса



0



1876 / 1281 / 460

Регистрация: 16.01.2015

Сообщений: 5,606

15.12.2017, 18:19

7

Владислаучык, Либо делаете не на сервере, либо на компьютере не установлен Ворд



1



1186 / 725 / 211

Регистрация: 22.04.2013

Сообщений: 5,347

Записей в блоге: 1

15.12.2017, 21:17

8

Цитата
Сообщение от polax
Посмотреть сообщение

Либо делаете не на сервере

я путаю? может наоборот — делаете на сервере?
ексель,ворд же надо открывать локально?



1



1876 / 1281 / 460

Регистрация: 16.01.2015

Сообщений: 5,606

15.12.2017, 22:24

9

Лучший ответ Сообщение было отмечено Владислаучык как решение

Решение

Владислаучык, Yulunga, не то что ошибся, а высказал неправильно. Вот здесь описано http://1clancer.ru/article/oso… ie_8.2_847



1



0 / 0 / 0

Регистрация: 06.06.2022

Сообщений: 2

15.06.2022, 11:55

10

polax, У вас есть код для Exel макета active document?



0



1876 / 1281 / 460

Регистрация: 16.01.2015

Сообщений: 5,606

15.06.2022, 15:54

11

Dfolt, Вот из моих закладок по которым делаю подобное



0



Lavr
22.10.2015 13:56 Прочитано: 2934

Здравствуйте.

Импортировал word-документ в справочник «Филиал», в макет как Active document. Есть форма списка и форма элемента списка, сделал кнопку на форме элемента, при нажатии вызов процедуры:

&НаКлиенте

Макет = Справочники.Филиал.ПолучитьМакет(«Макет»).Получить();Документ = Макет.Application.Documents(1);Документ.Activate();Макет.Application.Visible = Истина;Макет.Activate();

Надо чтобы документ из макета открывался в ворде у пользователя, просто открывался без заполнения какими-либо данными из формы.

Подскажите пожалуйста, добрые специалисты, как это правильно сделать? Может вообще по другому можно, как-то проще?

Благодарю.

Yandex
Возможно, вас также заинтересует

Реклама на портале

IBReiter
22.10.2015 14:40 Ответ № 1

Код 1C v 8.3

 

&НаКлиенте
Процедура Открытьмакет(Команда)

ОткрытьмакетНаСервере();

КонецПроцедуры

&НаСервере
Процедура ОткрытьмакетНаСервере()

ОбъектВорд = Справочники.Филиал.ПолучитьМакет("Макет").Получить();
ОбъектВорд.Application.Visible = Истина;
ОбъектВорд.Activate();

КонецПроцедуры

Lavr
23.10.2015 08:31 Ответ № 2

В жиме толстого клиента все работает, а в web-интерфейсе ошибка: Ошибка при вызове метода контекста (Получить)

Через web-интерфейс этот метод должен работать?

IBReiter
23.10.2015 09:25 Ответ № 3

Проверил на платформе 8.3.6.2152 и в браузере хром — все ок, работает алоритм.

У вас конфигурация вообще какая?

Lavr
23.10.2015 09:37 Ответ № 4

Платформа 8.2 Конфигурация УП, с нуля пишу, очень простая с 7-ю справочниками.

IBReiter
23.10.2015 10:36 Ответ № 5

Режимы совместимости? как вариант..

Ну а так, попробуйте на 8.3 ещё

Lavr
23.10.2015 10:48 Ответ № 6

Не работает в совместимости. Оставлю тогда так:

&НаКлиентеПроцедура СлужебнаяЗаявка(Команда) Word = Новый COMОбъект («Word.Application»);Word.Documents.Open («\192.168.47.130wudataWU,_Фамилия_Имя,_Филиал_г._Караганда.doc»);Документ = Word.Application.Documents(1);Документ.Application.Visible = Истина;Документ.Activate();КонецПроцедуры

IBReiter
23.10.2015 11:27 Ответ № 7

И на 8.3 не работает?

Вам совместимость нужна

Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку

Войти или зарегистрироваться

[РЕШЕНО] Ошибка при вызове метода контекста получитьмакет activedocument

Тема в разделе «Конфигурирование на платформе «1С:Предприятие 8″», создана пользователем Persempre, 29 янв 2015.




0/5,
Голосов: 0
  1. TopicStarter Overlay

    Persempre

    Offline

    Persempre
    Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    868
    Симпатии:
    3
    Баллы:
    29

    Доброго времени суток. Суть проблемы в печати как понимаете. Запихнул Word в макет. Дальше заполнил закладки, обработал и тд. На локальной машине работает. А на боевой базе не взлетело. Код ниже, в чем затык не пойму

    Код:
    &НаКлиенте
    Процедура УведомлениеОбУвольненииИГ(Команда)
    
        УведомлениеОбУвольненииИГНаСервере();
       
    КонецПроцедуры
    
    &НаСервере
    Процедура УведомлениеОбУвольненииИГНаСервере() //ActiveDoc)
       
        ТаблицаПараметров.Очистить();
       
        // Открываем Word
        ActiveDoc = Справочники.ДополнительныеСведенияИФайлы.ПолучитьМакет("УведомлениеОбУвольнении");
        WordObj = ActiveDoc.Get();
        WordObj.Application.Visible = 1;
    

    Persempre,
    29 янв 2015
    #1

  2. nomad_irk

    Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.901
    Симпатии:
    1.035
    Баллы:
    204

    на сервере не установлен WORD?


    nomad_irk,
    29 янв 2015
    #2

    Persempre нравится это.

  3. Draco

    Offline

    Draco
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    961
    Баллы:
    204

    Ну первый вопрос парвильный Офис то на сервере есть?


    Draco,
    30 янв 2015
    #3

    Persempre нравится это.
  4. TopicStarter Overlay

    Persempre

    Offline

    Persempre
    Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    868
    Симпатии:
    3
    Баллы:
    29

    Да офис есть на сервере


    Persempre,
    30 янв 2015
    #4

  5. nomad_irk

    Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.901
    Симпатии:
    1.035
    Баллы:
    204

    какая ошибка?


    nomad_irk,
    30 янв 2015
    #5

    Persempre нравится это.

  6. Draco

    Offline

    Draco
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    961
    Баллы:
    204

    Ну или права у пользователя под которым это запускается на сервере еть на офис серверный.


    Draco,
    30 янв 2015
    #6
  7. TopicStarter Overlay

    Persempre

    Offline

    Persempre
    Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    868
    Симпатии:
    3
    Баллы:
    29

    Спасибо, вопрос решен. Заполнение нужно было делать на клиенте. Только скорость заполнения адски маленькая. как буд-то человек кнопки нажимает. Как ускорить не знаю


    Persempre,
    30 янв 2015
    #7
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
Похожие темы

  1. She

    8.х
    Ошибка при вызове метода контекста (Выполнить):Синтаксическая ошибка «И»

    She,
    3 сен 2009
    , в разделе: Отчеты и обработки для «1С:Предприятие 8»
    Ответов:
    3
    Просмотров:
    2.908
    mialord
    4 сен 2009

  2. AlenaAS

    8.х ОБМЕН
    Ошибка выполнения запроса (Ошибка при вызове метода контекста (Выполнить))

    AlenaAS,
    27 авг 2014
    , в разделе: Обмен данными в «1С:Предприятие 8»
    Ответов:
    9
    Просмотров:
    4.867
    nickpugachev
    27 авг 2014

  3. Primorsky

    [РЕШЕНО]
    Ошибка в обработке Ошибка при вызове метода контекста (Выполнить) плюс вылет программы

    Primorsky,
    12 янв 2015
    , в разделе: «1С:Бухгалтерия БП»
    Ответов:
    3
    Просмотров:
    18.107
    Primorsky
    20 янв 2015

Загрузка…
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • 1с ошибка при вызове метода контекста подключитьобработчикожидания
  • 1с ошибка при вызове метода контекста отправитьдляобработки
  • 1с ошибка при вызове метода контекста открытьформу
  • 1с ошибка при вызове метода контекста открытьфайл

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии