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

При попытке получить форму, ругается на параметр Владелец ☑ 0

Kaukass

16.11.15

11:11

тпТовары — это Табличное поле на форме обработки.

Процедура Кнопка2Нажатие(Элемент)

    ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);

    ФормаВыбора.ЗакрыватьПриВыборе = ложь;

    ФормаВыбора.РежимВыбора = Истина;

    ФормаВыбора.Открыть();

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

Текст ошибки

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

    ФормаВыбора = ЭтотОбъект.ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);

по причине:

Несоответствие типов (параметр номер ‘2’)

1

Любопытная

16.11.15

11:14

Синтаксис:

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)

Владелец — третий параметр, а не второй

2

JastAMan

16.11.15

11:16

Не так понял СП:

СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)

ПолучитьФорму (GetForm)

Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)

3

Любопытная

16.11.15

11:17

На как бы… Разные методы же

4

Kaukass

16.11.15

11:19

Если так

ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,,ЭлементыФормы.тпТовары, КлючУникальности);

то ошибка: Слишком много фактических параметров

5

cw014

16.11.15

11:23

Я один не понимаю момент:

ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);

И там где ошибка:

ФормаВыбора = ЭтотОбъект.ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);

Где вранье?

6

Kaukass

16.11.15

11:32

(5)В (4) вранье.

7

Kaukass

16.11.15

11:33

Спасибо — заработало

asdfr1
16.01.2013 13:10 Прочитано: 3071

в сформированном отчёте при двойном щелчке необходимо вывести форму справочника, неудаётся дотянутся до самой формы.
Кодик=СписокИнф[2].Значение;
Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);

Область.Параметры.ФормаИзделия= Форма.Открыть();

Где ФормаИзделия -ПараметрРасшифровки

как то так, подскажите плиз

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

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

asdfr1
16.01.2013 13:53 Ответ № 1

Кодик=СписокИнф[2].Значение;
Найти=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);
Форма = Найти.ПолучитьФорму();
Откр= Форма.Открыть();

Область.Параметры.ФормаИзделия= Откр;

Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = Найти.ПолучитьФорму();
по причине:
Элемент не выбран!

E_Migachev
16.01.2013 13:54 Ответ № 2

(0) asdfr1, а это что? -СписокИнф[2].Значение;

вообще тебе надо в обработке расшифровки или Выбора получить код элемента справочника, который ты хочешь открыть, а далее как-то так:

Код 1C v 8.х

 Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); 
Форма.ПолучитьФорму().Открыть();
asdfr1
16.01.2013 13:56 Ответ № 3

СписокИнф[2].Значение — код элемента справочника

E_Migachev
16.01.2013 14:25 Ответ № 4

тогда Код 1C v 8.х

 Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(СписокИнф[2].Значение); 
Форма.ПолучитьФорму().Открыть();
asdfr1
16.01.2013 15:34 Ответ № 5

какой нить примерчик можно ? из книги Радченко и синтаксиспомошника воспроизвёл.Сравнение на Неопределено сделал.Возвращаяет ошибку «Обращение к процедуре объекта как к функции (Открыть)»
Для Каждого Строка ИЗ ТЗ Цикл
СправочникПоиск=Справочники.ИзделияВЭксплуатации.НайтиПоРеквизиту(«ЗаводскойНомер», ЗавНомерМля);

Если Строка.ИзделиеВЭксплуатацииЗаводскойНомер=СправочникПоиск Тогда // Неопределено

Сообщить(Строка.ИзделиеВЭксплуатацииЗаводскойНомер);
ОбластьДетальныхЗаписей.Параметры.Расшифровка=»Ёпта2″;

Иначе
ЗавНомерМля=ВыборкаДетальныеЗаписи.ИзделиеВЭксплуатацииЗаводскойНомер;

Ёпта1=СправочникПоиск.ПолучитьФорму();
Ёпта2=Ёпта1.Открыть();
ОбластьДетальныхЗаписей.Параметры.Расшифровка=Ёпта1;
КонецЕсли;
КонецЦикла;


Изменено 17.01.13 14:20:13 по причине: изменилась ошибка

asdfr1
17.01.2013 15:19 Ответ № 6

Вопрос закрыт!

Подсказка: Для редактирования своего ответа щелкните по значку (справа)

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

Уважаемые пользователи форума, ору вам о помощи — не могли бы вы помочь устранить данную проблему

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
&НаКлиенте
Процедура Команда1(Команда)
НайтиИОткрыть();
КонецПроцедуры
 
&НаСервере
Процедура НайтиИОткрыть() 
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |   МАКСИМУМ(ВладельцыКатегорий.Номер) КАК Номер
                    |ИЗ
                    |   Документ.ВладельцыКатегорий КАК ВладельцыКатегорий
                    |ГДЕ
                    |   ВладельцыКатегорий.ПрисвоеннаяКатегория = &Параметр";
    Запрос.УстановитьПараметр("Параметр", объект.КатегорияТовара);
    
    Результат = Запрос.Выполнить().Выбрать();
    ИскомыйДокумент = Документы.ВладельцыКатегорий.НайтиПоНомеру(Результат);
    Форма = ИскомыйДокумент.ПолучитьФорму(); 
Форма.Открыть()
КонецПроцедуры;

Суть модуля заключается в следующем — необходим поиск Номера документа на основе параметра &КатегорияТовара и как результат открытие его формы на экране.
Выскакивает следующая ошибка {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(18)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = ИскомыйДокумент.ПолучитьФорму();
по причине:
Элемент не выбран!

Добавлено через 23 минуты
Забыл добавить, что ВладельцыКатегорий — документ, а сам модуль написан на Справочник Номенклатура (с реквизитом категория товара — ссылка на соответствующий справочник)

Хочу открыть форму справочника. Что я делаю не так.

Я

  

AlexBor

23.06.14 — 16:13

Форма = Справочники.Сотрудники.НайтиПоКоду(000000082);

    Форма.ПолучитьФорму().Открыть();

Ошибка : Элемент не выбран

  

dj_serega

1 — 23.06.14 — 16:14

Не найден элемент.

Код в кавычки возьми.

  

AlexBor

2 — 23.06.14 — 16:16

(1) Большое спасибо получилось. Хотя как я смотрел в синтакси помощнике там вроде без кавычек.

  

dj_serega

3 — 23.06.14 — 16:17

Если у тебя код тип «Строка» тогда с кавычками нужно.

  

Wobland

4 — 23.06.14 — 16:17

посмотри ещё разок:

<Код> (обязательный)

Тип: Число; Строка.

  

AlexBor

5 — 23.06.14 — 16:19

Ясно

  

AlexBor

6 — 23.06.14 — 16:31

Прошу прощения а у документов по другому просто сделал то же самое только для документа и вываливается такая же ошибка?

Форма = Документы.Акт.НайтиПоНомеру(«3034»);

    Форма.ПолучитьФорму().Открыть();

  

Wobland

7 — 23.06.14 — 16:32

(6) не, там другая. прочитай её вслух

  

acsent

8 — 23.06.14 — 16:33

>>Форма = Документы.Акт.НайтиПоНомеру(«3034»);

Давай переменным нормальные имена и тогда ошибок будет в мног раз меньше

  

AlexBor

9 — 23.06.14 — 16:39

(7){Форма.ФормаОтчета(9)}: Ошибка при вызове метода контекста (ПолучитьФорму): Элемент не выбран!

    Форма.ПолучитьФорму().Открыть();

по причине:

Элемент не выбран!

  

an_str

10 — 23.06.14 — 16:39

(6), переменным да, лучше давать нормальные имена. Но ошибка, наверное, не из-за этого..скорее всего реально нет документа именно с таким номером. Может там номер «00003034» или еще какой-нибудь?

  

AlexBor

11 — 23.06.14 — 16:39

(8) А что не правильно то?

  

Wobland

12 — 23.06.14 — 16:39

(9) да? ну ладно. не найден документ с таким номером в этом периоде

  

Wobland

13 — 23.06.14 — 16:40

а ещё можно открывать значение

  

AlexBor

14 — 23.06.14 — 16:42

(11) но он есть

  

AlexBor

15 — 23.06.14 — 16:42

(13) пример можно?

  

dj_serega

16 — 23.06.14 — 16:42

(14) и с каким номером?

  

dj_serega

17 — 23.06.14 — 16:42

(15)

Глобальный контекст.ОткрытьЗначение (Global context.OpenValue)

Глобальный контекст (Global context)

ОткрытьЗначение (OpenValue)

Синтаксис:

ОткрытьЗначение(<Значение>)

Параметры:

<Значение> (обязательный)

Тип: Произвольный.

Значение любого типа, который может быть показан системой в диалоге.

Описание:

Показывает в диалоге переданное значение. Вид диалога зависит от типа переданного значения.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

  

Wobland

18 — 23.06.14 — 16:44

(14) неа

  

AlexBor

19 — 23.06.14 — 16:44

(16) Я пытаюсь открыть 1, c другими то же такая  же петрушка

  

Wobland

20 — 23.06.14 — 16:45

а есть же документация про НайтиПоНомеру? вроде было что-то такое

  

an_str

21 — 23.06.14 — 16:45

(18)+

  

AlexBor

22 — 23.06.14 — 16:46

(21) Значит у меня глюки

  

YF

23 — 23.06.14 — 16:46

Жду скрин в котором видно, что ОН есть

  

an_str

24 — 23.06.14 — 16:49

(22) давай скрин документа. У меня код

ФормаДокумента = Документы.ЗатратыАренда.НайтиПоНомеру(«000000046»).ПолучитьФорму();

    ФормаДокумента.Открыть();

отлично сделал свое дело

  

AlexBor

25 — 23.06.14 — 16:53

счас сделаю

  

AlexBor

26 — 23.06.14 — 16:56

  

YF

27 — 23.06.14 — 16:56

(26) смешно

  

arccos6pi

28 — 23.06.14 — 16:57

ОткрытьЗначениеотлично работает

ОткрытьЗначение(Справочники.Сотрудники.НайтиПоКоду(000000082))

  

Wobland

29 — 23.06.14 — 16:58

(24) наслаждайся. номер копипастил

http://i.imgur.com/vHakIMq.png

  

an_str

30 — 23.06.14 — 16:58

(26) и что на нем можно увидеть?

  

AlexBor

31 — 23.06.14 — 16:59

  

Wobland

32 — 23.06.14 — 16:59

(27) (30) а он ещё увеличивается ;)

  

YF

33 — 23.06.14 — 17:00

(29) А что это за консоль кода ИР? Конфа такая или внешняя обработка?

  

AlexBor

34 — 23.06.14 — 17:00

(30)

  

Wobland

35 — 23.06.14 — 17:00

  

AlexBor

36 — 23.06.14 — 17:00

(29) обработка

  

YF

37 — 23.06.14 — 17:01

(31) Форма = Документы.Акт.НайтиПоНомеру(«3034»); вообще не вижу такого номера да и смахивает на число номер

  

AlexBor

38 — 23.06.14 — 17:02

Да это число поэтому делаю без кавычек Форма = Документы.Акт.НайтиПоНомеру(1); Не прокатывает

  

Wobland

39 — 23.06.14 — 17:02

(38) а сколько таких первых в базе?

  

YF

40 — 23.06.14 — 17:03

(38) А что возвращает метод «НайтиПоНомеру»?

  

YF

41 — 23.06.14 — 17:03

+(40) вот прямо из СП цитату

  

AlexBor

42 — 23.06.14 — 17:03

(39) Я понял кажется, штуки 4 есть т.е. по одному с начала каждого года.

  

Wobland

43 — 23.06.14 — 17:04

(42) а я тебя когда спросил?

  

AlexBor

44 — 23.06.14 — 17:04

(41) {Форма.ФормаОтчета(12)}: Ошибка при вызове метода контекста (ПолучитьФорму): Элемент не выбран!

    ФормаДокумента = Документы.Акт.НайтиПоНомеру(«1»).ПолучитьФорму();

по причине:

Элемент не выбран!

  

AlexBor

45 — 23.06.14 — 17:05

(43) Как быть если нужно только этот год?

  

YF

46 — 23.06.14 — 17:05

(44) ответь на (40)

  

Wobland

47 — 23.06.14 — 17:05

(45) медитировать над СП, пока не достигнешь просветления

//плин, и вроде здоровый мужик

  

Крошка Ру

48 — 23.06.14 — 17:09

(45) Да добавь ты уже период!

  

AlexBor

49 — 23.06.14 — 17:12

(48) Это я понял если не трудно уточните каким образом?

  

Wobland

50 — 23.06.14 — 17:14

гуманитарий штоль? цитируй СП прямо сюда, не стесняйся

  

AlexBor

51 — 23.06.14 — 17:20

(50) Ну так что скажеш или нет?

  

Жан Пердежон

52 — 23.06.14 — 17:20

(50) суровые липецкие программисты

  

Крошка Ру

53 — 23.06.14 — 17:21

(49) Желательно, каким-нибудь естественным

  

AlexBor

54 — 23.06.14 — 17:22

(52) Ох хо хо как ты меня насмешил

  

Wobland

55 — 23.06.14 — 17:24

(51) нет

  

AlexBor

56 — 23.06.14 — 17:26

(55) ))) Млин я так на тебя расчитывал …. ты практически мне помог.

  

AlexBor

57 — 23.06.14 — 17:28

(53) А так конечно ты знаеш?

  

Жан Пердежон

58 — 23.06.14 — 17:29

(54) тут плакать надо

  

Крошка Ру

59 — 23.06.14 — 17:29

(57) Я не понимаю, тебе действительно лень Синтаксис-Помощник открыть или ты так троллишь?

  

Wobland

60 — 23.06.14 — 17:29

(57) всякий прочитавший СП знает

  

AlexBor

61 — 23.06.14 — 17:30

(58) Я не буду …. а ты сам знаеш конечно как надо?

  

AlexBor

62 — 23.06.14 — 17:31

(60) Ну хорошо я обещаю прочесть …. скажи пока так под честное слово.

  

dj_serega

63 — 23.06.14 — 17:31

(61) Найти в синтакс-помощнике и почитай. Там доступно описаною

  

dj_serega

64 — 23.06.14 — 17:32

(62) выдели слово и тыцни ctrl+f1. Там окошко откроется.

  

ДенисЧ

65 — 23.06.14 — 17:32

ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)

НайтиПоНомеру (FindByNumber)

Синтаксис:

НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>)

Параметры:

<НомерДокумента> (обязательный)

Тип: Число; Строка.

Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа.

<ДатаИнтервала> (необязательный)

Тип: Дата.

Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.

Параметр используется для документов с периодической нумерацией.

  

Wobland

66 — 23.06.14 — 17:32

(65) нашёлся благодетель. теперь объясни ТС значение этих диких слов

  

AlexBor

67 — 23.06.14 — 17:48

ФормаДокумента = Документы.Акт.НайтиПоНомеру(2,20140110125905).ПолучитьФорму();

    ФормаДокумента.Открыть();

Сделал вот так все равно не получается Почему?

  

Wobland

68 — 23.06.14 — 17:50

(67) потому что литерал даты в 1с задаётся несколько иначе

  

AlexBor

69 — 23.06.14 — 17:51

(68) Подскажи как?

  

Wobland

70 — 23.06.14 — 17:52

(69) <ДатаИнтервала> (необязательный)

Тип: Дата.

тыц по крайнему слову

  

AlexBor

71 — 23.06.14 — 17:57

(69)    ФормаДокумента = Документы.Акт.НайтиПоНомеру(2,20040814093941).ПолучитьФорму();

    ФормаДокумента.Открыть();

Так?

  

Wobland

72 — 23.06.14 — 17:58

(71) нет

  

Крошка Ру

73 — 23.06.14 — 17:58

Рукалицо

  

AlexBor

74 — 23.06.14 — 17:59

(72) Ясно

  

Крошка Ру

75 — 23.06.14 — 18:00

(71)Почему ты думаешь, что двадцать триллионов сорок миллиардов восемьсот четырнадцать миллионов девяносто три тысячи девятьсот сорок один — это дата?

  

AlexBor

76 — 23.06.14 — 18:01

(71) Хорошо как?

  

AlexBor

77 — 23.06.14 — 18:01

Я сдаюсь

  

YF

78 — 23.06.14 — 18:01

До сотки дотянет ли … не пятница ишо

  

Wobland

79 — 23.06.14 — 18:03

  

AlexBor

80 — 23.06.14 — 18:04

Дата (Date)

Описание:

Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до секунды.

Литералы:

Строка цифр, заключенная в одинарные кавычки вида: ‘ГГГГММДДччммсс’, где:

ГГГГ — четыре цифры года (включая тысячелетие и век);

ММ — две цифры месяца:

ДД — две цифры даты;

чч — две цифры часа (в 24-х часовом формате);

мм — две цифры минут;

сс — две цифры секунд;

Во встроенном языке в литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать ‘00010101’. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или

единице (для даты). В литерале даты допускается использование различных разделителей.

  

Wobland

81 — 23.06.14 — 18:04

мы его научили!

  

Крошка Ру

82 — 23.06.14 — 18:07

(81) Погоди, не сглазь!

  

AlexBor

83 — 23.06.14 — 18:07

Афигеть ….вот это да вы все талантливые люди  ….у меня получилось …. всем большое спасибо ….. у меня просто нет слов …. еще раз спасибо особенно    Wobland

  

Крошка Ру

84 — 23.06.14 — 18:09

Вот теперь можно и шампанское по бокалам разлить!

  

Wobland

85 — 23.06.14 — 18:09

(84) тут или валокардин или водки

  

dj_serega

86 — 23.06.14 — 18:10

(85) только не в месте.

  

AlexBor

87 — 23.06.14 — 18:10

Да да я просто поражен как все просто оказывется

  

dj_serega

88 — 23.06.14 — 18:10

(87) Там много чего интересного написано ;)

  

AlexBor

89 — 23.06.14 — 18:10

(85) Валакордин в водку

  

AlexBor

90 — 23.06.14 — 18:11

(88) Я обратил внимание

  

dj_serega

91 — 23.06.14 — 18:15

(78) да нет :)

  

Wobland

92 — 23.06.14 — 18:21

и это мы ещё ОткрытьЗначение не осваивали

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

Уважаемые пользователи форума, ору вам о помощи — не могли бы вы помочь устранить данную проблему

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
&НаКлиенте
Процедура Команда1(Команда)
НайтиИОткрыть();
КонецПроцедуры
 
&НаСервере
Процедура НайтиИОткрыть() 
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |   МАКСИМУМ(ВладельцыКатегорий.Номер) КАК Номер
                    |ИЗ
                    |   Документ.ВладельцыКатегорий КАК ВладельцыКатегорий
                    |ГДЕ
                    |   ВладельцыКатегорий.ПрисвоеннаяКатегория = &Параметр";
    Запрос.УстановитьПараметр("Параметр", объект.КатегорияТовара);
    
    Результат = Запрос.Выполнить().Выбрать();
    ИскомыйДокумент = Документы.ВладельцыКатегорий.НайтиПоНомеру(Результат);
    Форма = ИскомыйДокумент.ПолучитьФорму(); 
Форма.Открыть()
КонецПроцедуры;

Суть модуля заключается в следующем — необходим поиск Номера документа на основе параметра &КатегорияТовара и как результат открытие его формы на экране.
Выскакивает следующая ошибка {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма (18)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = ИскомыйДокумент.ПолучитьФорму();
по причине:
Элемент не выбран!

Добавлено через 23 минуты
Забыл добавить, что ВладельцыКатегорий — документ, а сам модуль написан на Справочник Номенклатура (с реквизитом категория товара — ссылка на соответствующий справочник)

asdfr1
16.01.2013 13:10 Прочитано: 2984

в сформированном отчёте при двойном щелчке необходимо вывести форму справочника, неудаётся дотянутся до самой формы.
Кодик=СписокИнф[2].Значение;
Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);

Область.Параметры.ФормаИзделия= Форма.Открыть();

Где ФормаИзделия -ПараметрРасшифровки

как то так, подскажите плиз

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

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

asdfr1
16.01.2013 13:53 Ответ № 1

Кодик=СписокИнф[2].Значение;
Найти=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);
Форма = Найти.ПолучитьФорму();
Откр= Форма.Открыть();

Область.Параметры.ФормаИзделия= Откр;

Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = Найти.ПолучитьФорму();
по причине:
Элемент не выбран!

E_Migachev
16.01.2013 13:54 Ответ № 2

(0) asdfr1, а это что? -СписокИнф[2].Значение;

вообще тебе надо в обработке расшифровки или Выбора получить код элемента справочника, который ты хочешь открыть, а далее как-то так:

Код 1C v 8.х

 Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); 
Форма.ПолучитьФорму().Открыть();
asdfr1
16.01.2013 13:56 Ответ № 3

СписокИнф[2].Значение — код элемента справочника

E_Migachev
16.01.2013 14:25 Ответ № 4

тогда Код 1C v 8.х

 Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(СписокИнф[2].Значение); 
Форма.ПолучитьФорму().Открыть();
asdfr1
16.01.2013 15:34 Ответ № 5

какой нить примерчик можно ? из книги Радченко и синтаксиспомошника воспроизвёл.Сравнение на Неопределено сделал.Возвращаяет ошибку «Обращение к процедуре объекта как к функции (Открыть)»
Для Каждого Строка ИЗ ТЗ Цикл
СправочникПоиск=Справочники.ИзделияВЭксплуатации.НайтиПоРеквизиту(«ЗаводскойНомер», ЗавНомерМля);

Если Строка.ИзделиеВЭксплуатацииЗаводскойНомер=СправочникПоиск Тогда // Неопределено

Сообщить(Строка.ИзделиеВЭксплуатацииЗаводскойНомер);
ОбластьДетальныхЗаписей.Параметры.Расшифровка=»Ёпта2″;

Иначе
ЗавНомерМля=ВыборкаДетальныеЗаписи.ИзделиеВЭксплуатацииЗаводскойНомер;

Ёпта1=СправочникПоиск.ПолучитьФорму();
Ёпта2=Ёпта1.Открыть();
ОбластьДетальныхЗаписей.Параметры.Расшифровка=Ёпта1;
КонецЕсли;
КонецЦикла;


Изменено 17.01.13 14:20:13 по причине: изменилась ошибка

asdfr1
17.01.2013 15:19 Ответ № 6

Вопрос закрыт!

Подсказка: Для быстрого поиска ответов — используйте ‘Поиск’

Открыть форму (Новый документ)

Автор KazakOFF, 24 июн 2014, 11:28

0 Пользователей и 1 гость просматривают эту тему.

Всем привет вот такой вопрос.

Создал внешнюю обработку в нее поместил форму ФормаДокумента из Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента немного отредактировал ее, и запускаю ее с главной формы вот так


Форма = ПолучитьФорму("ФормаДокумента");
Форма.Открыть();

Но выходит ошибка


{Форма.ФормаДокумента.Форма(141)}: Ошибка при вызове метода контекста (ЭтоНовый)
Если ЭтоНовый() Тогда
по причине:
Документ не выбран

Так вот вопрос как ее открыть в режиме Создания? а не открытия документа.


ДокументОбъект = Документы.ИмяДокумента.СоздатьДокумент();
ДокументОбъект.ПолучитьФорму().Открыть();

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Можно проще

ОткрытьФорму("Документ.ИмяДокумента.ФормаОбъекта");

Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


Это все хорошо, но как я уже написал я работаю с формой которая у меня в обработке.


Форма = ПолучитьФорму("ФормаДокумента");
Форма.ДокументОбъект = Документы.ИмяДокумента.СоздатьДокумент();
Форма.Открыть();

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Таже ошибка

Добавлено: 24 июн 2014, 15:42


Интересный момент если эму форму сделать как главную то при запуске она открывается нормально, но мне ее все таки нужно вызывать.


Попробуйте еще использовать:

ЦитироватьДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)

Тип: Строка; ОбъектМетаданных: Форма .
Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе. 

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Добавь в реквизиты формы реквизит МойОбъект с типом твоей обработки

и получай форму вот так

Форма = МойОбъект.ПолучитьФорму("ФормаДокумента");
Форма.ДокументОбъект = Документы.ИмяДокумента.СоздатьДокумент();
Форма.Открыть();

Добавлено: 24 июн 2014, 15:50


Подправил.

Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


Цитата: Dethmontt от 24 июн 2014, 15:48
Добавь в реквизиты формы реквизит МойОбъект с типом твоей обработки

и получай форму вот так

Форма = МойОбъект.ПолучитьФорму("ФормаДокумента");
Форма.ДокументОбъект = Документы.ИмяДокумента.СоздатьДокумент();
Форма.Открыть();

Добавлено: 24 июн 2014, 15:50


Подправил.

Сейчас, наверное задам очень глупый вопрос, но что такое — «тип обработки»? Как называется этот тип и как его присобачить к реквезиту?

Добавлено: 02 фев 2017, 15:29


Нашел, как это делается… Но мне немного другое надо :(


После выполнения документ не появляется в базе! А если Док.ПолучитьФорму.Открыть, а в форме нажать «Записать» тогда » Ошибка при вызове метода контекста (ЭтоНовый): Документ не выбран»

Док.Записать; а где этот код размещён?

Перемещение товаров ГЛ^00159 от 18.04.2008 12:50:03

Тогда плохо ищешь в базе :)

отбор в форме списка сбрось

Отборов нет! Период — без ограничения Пробовал на другой базе — тоже самое Создал новую обработку — в ней работает!

потому что старая «повисла» в памяти

эт как ? вчера было  тоже самое, после этого перегружался

Кароче — все просто Начатая и незавершенная транзакция Прошу у всех прощения

версия платформы у тебя какая?

Тэги:

Комментарии доступны только авторизированным пользователям

09.11.2015

Рассмотрим на примере обмена ЗУП 2.5 — Бухгалтерия 3.0.
В Источнике и в Приемнике есть справочник «Резервы», но в Приемнике есть элемент «Резерв на взносы в Федеральный ФОМС» с кодом «000000004», а в Источнике такого элемента нет.

Суть задачи: Нужно, чтобы при переносе документа «Отражение зарплаты в регламентированном учете» СубконтоДт1 (тип СправочникСсылка.Резервы) имело другое Значение, то есть значение не из Источника.

Рассмотрим картинку:

Нужно, чтобы при условии, когда СчетДт=»96″ и СчетКт = «69.03.1» тогда СубконтоДт было равно «Резерв на взносы в Федеральный ФОМС». (А не «На оплату предстоящих отпусков», как видно на картинке).

Уточнение: этого не видно на картинке, но на самом деле под СубконтоДт подразумевается СубконтоДт1, а значение «Резерв на взносы в Федеральный ФОМС» — это значение элемента из Приемника.

Ниже на картинке я покажу, как выглядят эти справочники в Источнике и в Приемнике.

Надеюсь, что пояснила понятно.

Теперь в Конвертации данных:

Итог выгрузки:

Добавлено 09.11.15:

От обилия красного прямо рябит в глазах. Извините, я не специально!

Вариант 2:

Еще один способ. Код останется со значением из источника, если у вас подобная ситуация, обработку правила можно просто отключить.

 

—————————————————————————————————————————————————————

Запрет выгрузки «Групп» справочников в конвертации данных.

 

Всё сделал практически. Подскажите такую штуку.Вылетает ошибка после того как документ полностью сформирован и записан(Установка цен номенклатуры в магазине) ошибка выглядит так
{ОбщийМодуль.РаботаСДиалогами(123)}: Ошибка при вызове метода контекста (ЭтоНовый): Документ не выбран
Если ДокументОбъект.ЭтоНовый() Тогда
по причине:
Документ не выбран

А вот код на создание дока

Док=Документы.УстановкаЦенНоменклатурыВМагазине.СоздатьДокумент();
Форм=Док.ПолучитьФорму(«формадокумента»);
табло2=Док.Товары.Добавить();
табло2.ЦенаВРознице=цена;
номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(ИмяНоменклатуры);
табло2.Номенклатура=Номенклатура;
форм.Открыть();
док.Записать();

Табличную часть заполняет,всё хорошо но вот ошибка,всё портит.

В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

Планшет

Приглашаем на
бесплатный вебинар!

18 апреля в 11:00 мск

40 мин.

Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;

Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;

Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник

Рис.3 Синтакс-помощник

В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.

Как открыть форму внешней обработки в Серверном режиме в Управляемых формах?

Я

  

D_Pavel

02.03.12 — 11:10

Делаю так:

Основнаяформа=ПолучитьФорму(«ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма», Новый Структура(«Ключ», ЭтотОбъект));

В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет:

Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма».

Как сделать чтобы в серверном работала?

  

D_Pavel

1 — 02.03.12 — 11:12

+0

&НаКлиенте

Функция МаяФункция() Экспорт

   Основнаяформа=ПолучитьФорму(«ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма», Новый Структура(«Ключ», ЭтотОбъект));

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

  

ДенисЧ

2 — 02.03.12 — 11:12

Запустить управляемого клиента?

  

andrewks

3 — 02.03.12 — 11:16

а она у тебя точно ТвАяОбработка?

  

D_Pavel

4 — 02.03.12 — 11:17

(2) конечно. А потом выходить ошибка которую я описать в (0)

  

D_Pavel

5 — 02.03.12 — 11:17

(3) Да, иначе в файловом варианте бы не открылась.

  

andrewks

6 — 02.03.12 — 11:17

а, ясно, «мы нэмэстные…»

  

D_Pavel

7 — 02.03.12 — 11:20

(6) Да, у нас на районе все пишут «МаяОбработка»

Ну так что по теме? Знает кто-нибудь?

  

andrewks

8 — 02.03.12 — 11:20

(5) и ты хочешь сказать, что в файловом в тонком клиенте она у тебя открывается?

  

D_Pavel

9 — 02.03.12 — 11:20

(8) в ТОЛСТОМ файловом открывается.

  

ptiz

10 — 02.03.12 — 11:20

В каком модуле располагается: Функция МаяФункция() Экспорт ?

  

andrewks

11 — 02.03.12 — 11:22

(9) ну а форма-то какая открывается? Управляемая, или обычная?

  

D_Pavel

12 — 02.03.12 — 11:23

(10) В общем модуле.

  

D_Pavel

13 — 02.03.12 — 11:24

(11) Управляемая. Она так и называется «УправляемаяФорма»

  

andrewks

14 — 02.03.12 — 11:27

(13) ну, мало ли. может, у вас там принято так называть обычные формы

  

aleks-id

15 — 02.03.12 — 11:27

кинь свою обработку на ифолдер. интересно поглядеть

  

D_Pavel

16 — 02.03.12 — 11:34

(15) Ща попробую. Там релиться не надо?

  

D_Pavel

17 — 02.03.12 — 11:35

  

aleks-id

18 — 02.03.12 — 11:41

а я не понял, где ты код из (0) пишешь? в другой обработке?

  

D_Pavel

19 — 02.03.12 — 11:43

(18) Код из (0) в модуле объекта.

  

aleks-id

20 — 02.03.12 — 11:43

ага. в модуле объекта нет клиента. там тока сервер.

  

aleks-id

21 — 02.03.12 — 11:44

и мне непонятно зафига ты так сделал вообще?

  

D_Pavel

22 — 02.03.12 — 11:45

(21) Потому что она вызывается из общего модуля общей командой для всех внешних обработок.

  

aleks-id

23 — 02.03.12 — 11:45

ты хочешь чтобы перед печатью этой внешней печатной формы вылезало окно настроек чтоли?

  

D_Pavel

24 — 02.03.12 — 11:46

  

D_Pavel

25 — 02.03.12 — 11:47

(20) Как сделать чтобы было клиент? Как я понял в файловом варианте само делается, потому что там нет сервера.

  

aleks-id

26 — 02.03.12 — 11:49

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

  

D_Pavel

27 — 02.03.12 — 11:50

(26) Ну да. А на серверном варианте как открыть форму?

  

Кириллка

28 — 02.03.12 — 11:51

во-первых, ЭтотОбъект доступен на «Сервер, толстый клиент, внешнее соединение».

  

DrShad

29 — 02.03.12 — 11:52

(28) и что?

  

D_Pavel

30 — 02.03.12 — 11:53

(28) ЭтотОбъект можно вообще убрать, он не нужен. Щас там просто Объект, реквизит обработки.

  

D_Pavel

31 — 02.03.12 — 11:57

К (0). Из внешнего модуля так вызывается:

   ИмяФайла = «C:МаяОбработка.epf»;

   Обработка = ВнешниеОбработки.Создать(ИмяФайла);

   Обработка.Объект = ОбъектИзБазы;

   ТабДокумент = Обработка.МаяФункция();

В (17) МаяФункция() заменена на функцию Печать()

  

D_Pavel

32 — 02.03.12 — 11:58

Вообще строка     Обработка.Объект = ОбъектИзБазы;    роли не играет, не обращайте внимания.

  

DrShad

33 — 02.03.12 — 11:59

ну не откроешь ты на сервере форму

  

Кириллка

34 — 02.03.12 — 12:00

во-вторых, внешняя обработка предварительно зарегистрированы в системе?

в-третьих, а как это открытие обработки на сервере? Кто ее ТАМ будет наблюдать?

может мы чего не поняли в твоей задуме?

  

ptiz

35 — 02.03.12 — 12:07

  

ptiz

36 — 02.03.12 — 12:08

У меня вот даже зарегистрировать внешнюю обработку не получается в толстом клиенте.

  

D_Pavel

37 — 02.03.12 — 12:11

(34) Не на сервере, а на клиенте в серверном варианте.

  

Кириллка

38 — 02.03.12 — 12:13

(37)ну значит нужно прояснить только второй вопрос :)

  

D_Pavel

39 — 02.03.12 — 12:15

(34) Как их регистировать в системе? И для чего?

  

DrShad

40 — 02.03.12 — 12:22

(39) +1 для чего? после этого платформа позволит из модуля обработки открывать формы?

  

aleks-id

41 — 02.03.12 — 12:34

короче. твоя печатная форма должна быть создана по технологии внешних обработок 8.2

только тогда ты сможешь открыть ее форму.

  

aleks-id

42 — 02.03.12 — 12:35

делается это так:

   ДобавитьКоманду(ТаблицаКоманд,

       «Бла-бла-ба, то что пишем в менюшке»,

       «ИМЯ_ТВОЕЙ_ФОРМЫ»,

       «ОткрытиеФормы»,

   );

  

aleks-id

43 — 02.03.12 — 12:36

+42 делается это в функции СведенияОВнешнейОбработке

  

Кириллка

44 — 02.03.12 — 12:38

Вот этого нужно тебе?

&НаКлиенте

Процедура ОткрытьОбработку(Команда)

   Перем стрИмя, стрАдрес;

   

   стрАдрес = «»;

   Если НЕ ПоместитьФайл(стрАдрес, «D:ИмяОбработки.epf», , Ложь) Тогда

       Возврат;

   КонецЕсли;

   
   стрИмя = ПодключитьВнешнююОбработку(стрАдрес);

   

   Основнаяформа = ПолучитьФорму(«ВнешняяОбработка.» + стрИмя + «.Форма.Форма»);

   Основнаяформа.Открыть();

КонецПроцедуры // ОткрытьОбработку()

&НаСервере

Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

   Возврат ВнешниеОбработки.Подключить(стрАдрес);

КонецФункции // ПодключитьВнешнююОбработку()

  

aleks-id

45 — 02.03.12 — 12:43

  

D_Pavel

46 — 02.03.12 — 12:49

Спасибо, буду разбираться

  

D_Pavel

47 — 02.03.12 — 13:48

(41) Не понял как это может помочь открыть форму внешней обработки. Это для типовой УТ? Похоже не то что нужно

  

aleks-id

48 — 02.03.12 — 13:53

(47) что конкретно тебе непонятно? ты делаешь дополнительную печатную форму для какого то документа. правильно?

  

D_Pavel

49 — 02.03.12 — 13:53

(44) Пишет:  Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

  

D_Pavel

50 — 02.03.12 — 13:54

(48) Да, но в той статье написано как сделать дополнительную печатную форму, это я сделал, работает.

Теперь мне надо открыть ее форму.

  

aleks-id

51 — 02.03.12 — 13:56

(50) я тебе дал код в (42)

ищи в своей обработке «ДобавитьКоманду(ТаблицаКоманд,»

и пиши туда вместо ИМЯ_ТВОЕЙ_ФОРМЫ имя формы как она у тебя обзывается в обработке

  

Кириллка

52 — 02.03.12 — 13:57

(49)я тебе рабочий код написал и выложил.

  

aleks-id

53 — 02.03.12 — 14:00

(52) и куда надо прикрутить этот «рабочий» код чтобы ТС мог напечатать внешнюю печатную форму?

  

Кириллка

54 — 02.03.12 — 14:03

(53)вопрос стоял, как открыть внешнюю обработку. Про печать ничего не слышал :)

  

aleks-id

55 — 02.03.12 — 14:13

  

Кириллка

56 — 02.03.12 — 14:32

(55)а в двух словах чего ему надо, если ты скачал и видел его файло.

  

aleks-id

57 — 02.03.12 — 14:35

(56) ровно то, что я написал. ему надо сделать внешнюю печатную форму для УТ11, которая прилепляется к нужным документам штатными средствами без изменения конфы и позволяет перед печатью открывать окно с некоторыми настройками.

  

aleks-id

58 — 02.03.12 — 14:36

но судя по тому, что ТС молчит, то предположу что он не осилил как же это сделать. видимо придется ему предложить купить эту форму ))))

  

D_Pavel

59 — 05.03.12 — 05:52

(51) Этот код не работает. ДобавитьКоманду — такая процедура не определена.

(57) Вообще-то не для УТ11. Интересует как открыть форму в принципе, «с нуля»

  

D_Pavel

60 — 05.03.12 — 05:54

(52) Код не работает.

Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

  

Кириллка

61 — 05.03.12 — 06:52

(60)покажи код.

  

D_Pavel

62 — 05.03.12 — 07:04

(61) Я его уже убрал. Смотри в (44)

  

Кириллка

63 — 05.03.12 — 07:08

(62)код в (44) работает.

  

D_Pavel

64 — 05.03.12 — 07:11

(63) Действительно, работает. Ошибся

  

D_Pavel

65 — 05.03.12 — 07:16

Почему-то в пятницу не работало. 1с перезапустил, заработало.

Вот так тоже рабюотает:

&НаКлиенте

Функция Печать() Экспорт

   Перем стрАдрес;

   

   стрАдрес = «»;

   Если НЕ ПоместитьФайл(стрАдрес, «C:Temptmp.epf», , Ложь) Тогда

       Возврат (Неопределено);

   КонецЕсли;

   

   Основнаяформа = ПолучитьФорму(«ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»);

   Основнаяформа.Открыть();

   

   Возврат(Неопределено);

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

  

Кириллка

66 — 05.03.12 — 07:19

(65)рандомный генератор пишешь?

  

D_Pavel

67 — 05.03.12 — 07:23

Вот так тоже теперь работает:

&НаКлиенте

Функция Печать() Экспорт

   //Перем стрАдрес;

   //

   //стрАдрес = «»;

   //Если НЕ ПоместитьФайл(стрАдрес, «C:Temptmp.epf», , Ложь) Тогда

   //    Возврат (Неопределено);

   //КонецЕсли;

   //

   Основнаяформа = ПолучитьФорму(«ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»);

   Основнаяформа.Открыть();

   

   Возврат(Неопределено);

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

  

D_Pavel

68 — 05.03.12 — 07:24

Что за фигня! В пятницу не работало, а сейчас работает без всяких дополнений! Всего-то платформу перезапустил

  

Кириллка

69 — 05.03.12 — 07:28

(68)не делай как в (65) и (67), делай как в (44).

  

D_Pavel

70 — 05.03.12 — 07:33

(69) Почему может быть такое сообщение?:

{ВнешняяОбработка.МаяОбработка.МодульОбъекта(52,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

  

Кириллка

71 — 05.03.12 — 07:36

(70)а давай я тебе по руке погадаю? Тыж меня в телепаты записал.

Я думаю, что сообщение об ошибке достаточно для понимания.

  

D_Pavel

72 — 05.03.12 — 07:40

(71) твой код. Пишется ошибка.

Закомментированная строка не работает. Переделал как во второй строке, ошибку не выдает:

   //стрИмя = ПодключитьВнешнююОбработку(стрАдрес);

   стрИмя = ВнешниеОбработки.Подключить(стрАдрес);

  

Кириллка

73 — 05.03.12 — 07:49

(67)Если предполагать, что ты используешь код из (67), дополнив его куском кода из (72), то у меня разрыв шаблона — метод Подключить имеет доступность «Сервер, внешнее соединение», хотя у тебя выставлено &НаКлиенте.

Ты занимаешься мозгоимением??

  

D_Pavel

74 — 05.03.12 — 07:52

&НаКлиенте

Функция Печать() Экспорт

   Перем стрИмя, стрАдрес;

   

   стрАдрес = «»;

   Если НЕ ПоместитьФайл(стрАдрес, «C:Temptmp.epf», , Ложь) Тогда

       Возврат (Неопределено);

   КонецЕсли;

   
   стрИмя = ВнешниеОбработки.Подключить(стрАдрес);

   

   Основнаяформа = ПолучитьФорму(«ВнешняяОбработка.» + стрИмя + «.Форма.УправляемаяФорма»);

   Основнаяформа.Открыть();

   

   Возврат(Неопределено);

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

&НаСервере

Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

   Возврат ВнешниеОбработки.Подключить(стрАдрес);

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

  

D_Pavel

75 — 05.03.12 — 07:53

Если использовать ПодключитьВнешнююОбработку вместо ВнешниеОбработки.Подключить, то выходит сообщение об ошибке:

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

  

D_Pavel

76 — 05.03.12 — 07:55

Еще один косяк: Если переименовать мою обработку в любое имя кроме «МаяОбработка», то выходит сообщение об ошибке:

Неизвестное имя формы. Имя: «ВнешняяОбработка.блаблабла.Форма.УправляемаяФорма»

  

D_Pavel

77 — 05.03.12 — 07:57

Третий косяк: Если взять другую обработку и задать ей имя «МаяОбработка», и открыть ее форму из той процедуры, то всё равно откроется форма старой обработки. Тоесть она как-то зарегистрировалась под этим именем, и не пойму когда и как она это сделала

  

Кириллка

78 — 05.03.12 — 08:17

(74)а где это «Функция Печать() Экспорт» расположено?

  

D_Pavel

79 — 05.03.12 — 08:23

(78) В модуле объекта внешней обработки

  

Кириллка

80 — 05.03.12 — 08:26

(79)ты каким-то чудом вызываешь метод «Печать» из одной внешней обработки, а потом хочешь открыть другую внешнюю обработку «tmp.epf»??

А как ты вызываешь «Печать»?

  

D_Pavel

81 — 05.03.12 — 08:31

(80) Из общего модуля вызываю:

   ИмяФайла = «C:Temptmp.epf»;

   Обработка = ВнешниеОбработки.Создать(ИмяФайла);

   ТабДокумент = Обработка.Печать();

  

D_Pavel

82 — 05.03.12 — 08:33

Я вызываю метод Печать одной внешней обработки, и хочу чтобы она сама открыла свою форму.

  

D_Pavel

83 — 05.03.12 — 09:00

Ап.

  

Кириллка

84 — 05.03.12 — 09:12

хз, чего там у тебя как работает, но (74) не должен работать: &НаКлиенте и ВнешниеОбработки.Подключить не должны вместе дружить.

Еще раз: в (44) код достаточен для твоей задачи. «ОткрытьОбработку(Команда)» — это вызов по команде/кнопке на форме.

Открыл форму, сделал настройки, там же нажал кнопку/команду печать.

  

D_Pavel

85 — 05.03.12 — 09:17

(84) Чтобы нажать кнопку на форме, нужно сперва открыть эту форму, а она не открывается. А вообще вызов внешней обработки и ее метода «Печать» нельзя менять. И почему работает ВнешниеОбработки.Подключить я не знаю. Могу выложить обработку чтобы посмотрели

  

D_Pavel

86 — 05.03.12 — 09:30

(84) Вот выложил: http://ifolder.ru/29092486

Кнопка на обработке открывает такую же обработку и вызывает «Печать()». И твой код не работает.

{Форма.УправляемаяФорма.Форма(4)}: Ошибка при вызове метода контекста (Создать)

   Обработка = ВнешниеОбработки.Создать(ИмяФайла);

по причине:

{ВнешняяОбработка.МаяОбработка.МодульОбъекта(11,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

   стрИмя = <<?>>ПодключитьВнешнююОбработку(стрАдрес);

  

D_Pavel

87 — 05.03.12 — 11:00

Ап.

  

mikeA

88 — 05.03.12 — 11:26

(86)

ВнешниеОбработки не доступно в тонком клиенте

ПодключитьВнешнююОбработку это метод объекта. чтобы его вызвать, нужно сначала получить объект с помощью РеквизитФормыВЗначение. но сделать это можно только на сервере

а вообще зачем всё это нужно?

  

D_Pavel

89 — 05.03.12 — 11:30

(88) У меня в ТОЛСТОМ клиенте

Этот метод вызывается в модуле объекта, тоесть получать объект не нужно, он уже есть.

Нужно просто разобраться. Почему оно не работает!

  

D_Pavel

90 — 05.03.12 — 11:32

И как могут работать два метода ПоместитьФайл и ВнешниеОбработки.Подключить в одной процедуре!??! У них же разная доступность на клиенте и на сервере!

  

mikeA

91 — 05.03.12 — 11:51

(89) тогда, ты будешь смеяться, всё работает

замени

   Основнаяформа = ПолучитьФорму(«ВнешняяОбработка.» + стрИмя + «.Форма.УправляемаяФорма»);

   Основнаяформа.Открыть();

на

   ОткрытьФорму(«ВнешняяОбработка.» + стрИмя + «.Форма.УправляемаяФорма»,,,Истина);

в принципе можно и ПолучитьФорму использовать и потом открывать, только при попытке передать туда ключ уникальности ругается на количество параметров, хотя параметры и там и там одинаковые

  

aleks-id

92 — 05.03.12 — 11:55

(90) ты для какой конфы это безобразие ваяешь?

для УТ11 я тебе дал все карты в руки. у меня все работает, подключается, открывает форму настроек и печатает.

  

D_Pavel

93 — 05.03.12 — 12:02

(91) если указать имя обработки «МаяОбработка», то работает. А если поменять имя и указать там новое имя, то не работает.

  

D_Pavel

94 — 05.03.12 — 12:02

(92) Для пустой конфы. Тестовой

  

D_Pavel

95 — 06.03.12 — 06:11

Выяснил что нужно хотябы раз открыть форму обработки через меню файл, и выполнить команду:

&НаКлиенте

Функция Команда1(Команда) Экспорт

   Перем стрИмя, стрАдрес;

   стрАдрес = «»;

   Если НЕ ПоместитьФайл(стрАдрес, «C:Temptmp.epf», , Ложь) Тогда

       Возврат (Неопределено);

   КонецЕсли;

   стрИмя = ВнешниеОбработки.Подключить(стрАдрес);

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

Тогда в следующий раз форма открывается из модуля объекта нормально. Но как сделать чтобы не нужно было открывать ее в первый раз вручную?

  

Кириллка

96 — 06.03.12 — 08:03

(95)свойства конфигурации — Обычное приложение???

  

D_Pavel

97 — 06.03.12 — 08:07

(96) Основной режим: Управляемое приложение

  

Кириллка

98 — 06.03.12 — 08:31

(97)да как так? открываю твою обработку в ут11 — в модуле формы уже ругань идет.

  

D_Pavel

99 — 06.03.12 — 08:47

(98) Щас скачал ту которую выкладывал, открывается форма с одной кнопкой. Как так?

  

D_Pavel

100 — 06.03.12 — 08:47

Платформа 8.2.15.289

Делаю так: В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма». Как сделать чтобы в серверном работала?

Делаю так: В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма». Как сделать чтобы в серверном работала?

Запустить управляемого клиента?

а она у тебя точно ТвАяОбработка?

конечно. А потом выходить ошибка которую я описать в

Да, иначе в файловом варианте бы не открылась.

а, ясно, «мы нэмэстные…»

Да, у нас на районе все пишут «МаяОбработка» Ну так что по теме? Знает кто-нибудь?

и ты хочешь сказать, что в файловом в тонком клиенте она у тебя открывается?

в ТОЛСТОМ файловом открывается.

В каком модуле располагается: Функция МаяФункция Экспорт ?

ну а форма-то какая открывается? Управляемая, или обычная?

Управляемая. Она так и называется «УправляемаяФорма»

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

кинь свою обработку на ифолдер. интересно поглядеть

Ща попробую. Там релиться не надо?

а я не понял, где ты код из пишешь? в другой обработке?

ага. в модуле объекта нет клиента. там тока сервер.

и мне непонятно зафига ты так сделал вообще?

Потому что она вызывается из общего модуля общей командой для всех внешних обработок.

ты хочешь чтобы перед печатью этой внешней печатной формы вылезало окно настроек чтоли?

Как сделать чтобы было клиент? Как я понял в файловом варианте само делается, потому что там нет сервера.

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

Ну да. А на серверном варианте как открыть форму?

во-первых, ЭтотОбъект доступен на «Сервер, толстый клиент, внешнее соединение».

ЭтотОбъект можно вообще убрать, он не нужен. Щас там просто Объект, реквизит обработки.

К . Из внешнего модуля так вызывается:

Вообще строка     Обработка.Объект = ОбъектИзБазы;    роли не играет, не обращайте внимания.

ну не откроешь ты на сервере форму

во-вторых, внешняя обработка предварительно зарегистрированы в системе? в-третьих, а как это открытие обработки на сервере? Кто ее ТАМ будет наблюдать? может мы чего не поняли в твоей задуме?

У меня вот даже зарегистрировать внешнюю обработку не получается в толстом клиенте.

Не на сервере, а на клиенте в серверном варианте.

ну значит нужно прояснить только второй вопрос

Как их регистировать в системе? И для чего?

+1 для чего? после этого платформа позволит из модуля обработки открывать формы?

короче. твоя печатная форма должна быть создана по технологии внешних обработок 8.2 только тогда ты сможешь открыть ее форму.

+42 делается это в функции СведенияОВнешнейОбработке

Вот этого нужно тебе? &НаКлиенте Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

Спасибо, буду разбираться

Не понял как это может помочь открыть форму внешней обработки. Это для типовой УТ? Похоже не то что нужно

что конкретно тебе непонятно? ты делаешь дополнительную печатную форму для какого то документа. правильно?

Пишет:  Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

Да, но в той статье написано как сделать дополнительную печатную форму, это я сделал, работает. Теперь мне надо открыть ее форму.

я тебе дал код в ищи в своей обработке «ДобавитьКоманду(ТаблицаКоманд,» и пиши туда вместо ИМЯ_ТВОЕЙ_ФОРМЫ имя формы как она у тебя обзывается в обработке

я тебе рабочий код написал и выложил.

и куда надо прикрутить этот «рабочий» код чтобы ТС мог напечатать внешнюю печатную форму?

вопрос стоял, как открыть внешнюю обработку. Про печать ничего не слышал

а в двух словах чего ему надо, если ты скачал и видел его файло.

ровно то, что я написал. ему надо сделать внешнюю печатную форму для УТ11, которая прилепляется к нужным документам штатными средствами без изменения конфы и позволяет перед печатью открывать окно с некоторыми настройками.

но судя по тому, что ТС молчит, то предположу что он не осилил как же это сделать. видимо придется ему предложить купить эту форму ))))

Этот код не работает. ДобавитьКоманду — такая процедура не определена. Вообще-то не для УТ11. Интересует как открыть форму в принципе, «с нуля»

Код не работает. Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

Я его уже убрал. Смотри в

Действительно, работает. Ошибся

Почему-то в пятницу не работало. 1с перезапустил, заработало. Вот так тоже рабюотает:

рандомный генератор пишешь?

Вот так тоже теперь работает:

Что за фигня! В пятницу не работало, а сейчас работает без всяких дополнений! Всего-то платформу перезапустил

не делай как в и , делай как в .

Почему может быть такое сообщение?: {ВнешняяОбработка.МаяОбработка.МодульОбъекта(52,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

а давай я тебе по руке погадаю? Тыж меня в телепаты записал. Я думаю, что сообщение об ошибке достаточно для понимания.

твой код. Пишется ошибка. Закомментированная строка не работает. Переделал как во второй строке, ошибку не выдает:

Если предполагать, что ты используешь код из , дополнив его куском кода из , то у меня разрыв шаблона — метод Подключить имеет доступность «Сервер, внешнее соединение», хотя у тебя выставлено &НаКлиенте. Ты занимаешься мозгоимением??

&НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

Если использовать ПодключитьВнешнююОбработку вместо ВнешниеОбработки.Подключить, то выходит сообщение об ошибке: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

Еще один косяк: Если переименовать мою обработку в любое имя кроме «МаяОбработка», то выходит сообщение об ошибке: Неизвестное имя формы. Имя: «ВнешняяОбработка.блаблабла.Форма.УправляемаяФорма»

Третий косяк: Если взять другую обработку и задать ей имя «МаяОбработка», и открыть ее форму из той процедуры, то всё равно откроется форма старой обработки. Тоесть она как-то зарегистрировалась под этим именем, и не пойму когда и как она это сделала

а где это «Функция Печать Экспорт» расположено?

В модуле объекта внешней обработки

ты каким-то чудом вызываешь метод «Печать» из одной внешней обработки, а потом хочешь открыть другую внешнюю обработку «tmp.epf»?? А как ты вызываешь «Печать»?

Из общего модуля вызываю:

Я вызываю метод Печать одной внешней обработки, и хочу чтобы она сама открыла свою форму.

хз, чего там у тебя как работает, но не должен работать: &НаКлиенте и ВнешниеОбработки.Подключить не должны вместе дружить. Еще раз: в код достаточен для твоей задачи. «ОткрытьОбработку(Команда)» — это вызов по команде/кнопке на форме. Открыл форму, сделал настройки, там же нажал кнопку/команду печать.

Чтобы нажать кнопку на форме, нужно сперва открыть эту форму, а она не открывается. А вообще вызов внешней обработки и ее метода «Печать» нельзя менять. И почему работает ВнешниеОбработки.Подключить я не знаю. Могу выложить обработку чтобы посмотрели

Вот выложил: Кнопка на обработке открывает такую же обработку и вызывает «Печать». И твой код не работает. {Форма.УправляемаяФорма.Форма}: Ошибка при вызове метода контекста (Создать)    Обработка = ВнешниеОбработки.Создать(ИмяФайла); по причине: {ВнешняяОбработка.МаяОбработка.МодульОбъекта(11,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

ВнешниеОбработки не доступно в тонком клиенте ПодключитьВнешнююОбработку это метод объекта. чтобы его вызвать, нужно сначала получить объект с помощью РеквизитФормыВЗначение. но сделать это можно только на сервере а вообще зачем всё это нужно?

У меня в ТОЛСТОМ клиенте Этот метод вызывается в модуле объекта, тоесть получать объект не нужно, он уже есть. Нужно просто разобраться. Почему оно не работает!

И как могут работать два метода ПоместитьФайл и ВнешниеОбработки.Подключить в одной процедуре!??! У них же разная доступность на клиенте и на сервере!

тогда, ты будешь смеяться, всё работает замени в принципе можно и ПолучитьФорму использовать и потом открывать, только при попытке передать туда ключ уникальности ругается на количество параметров, хотя параметры и там и там одинаковые

ты для какой конфы это безобразие ваяешь? для УТ11 я тебе дал все карты в руки. у меня все работает, подключается, открывает форму настроек и печатает.

если указать имя обработки «МаяОбработка», то работает. А если поменять имя и указать там новое имя, то не работает.

Для пустой конфы. Тестовой

Выяснил что нужно хотябы раз открыть форму обработки через меню файл, и выполнить команду: Тогда в следующий раз форма открывается из модуля объекта нормально. Но как сделать чтобы не нужно было открывать ее в первый раз вручную?

свойства конфигурации — Обычное приложение???

Основной режим: Управляемое приложение

да как так? открываю твою обработку в ут11 — в модуле формы уже ругань идет.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Делаю так: В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма». Как сделать чтобы в серверном работала?

Делаю так: В файловом режиме 1С работает, а в серверном не работает, клиент толстый. Пишет: Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма». Как сделать чтобы в серверном работала?

Запустить управляемого клиента?

а она у тебя точно ТвАяОбработка?

конечно. А потом выходить ошибка которую я описать в

Да, иначе в файловом варианте бы не открылась.

а, ясно, «мы нэмэстные…»

Да, у нас на районе все пишут «МаяОбработка» Ну так что по теме? Знает кто-нибудь?

и ты хочешь сказать, что в файловом в тонком клиенте она у тебя открывается?

в ТОЛСТОМ файловом открывается.

В каком модуле располагается: Функция МаяФункция Экспорт ?

ну а форма-то какая открывается? Управляемая, или обычная?

Управляемая. Она так и называется «УправляемаяФорма»

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

кинь свою обработку на ифолдер. интересно поглядеть

Ща попробую. Там релиться не надо?

а я не понял, где ты код из пишешь? в другой обработке?

ага. в модуле объекта нет клиента. там тока сервер.

и мне непонятно зафига ты так сделал вообще?

Потому что она вызывается из общего модуля общей командой для всех внешних обработок.

ты хочешь чтобы перед печатью этой внешней печатной формы вылезало окно настроек чтоли?

Как сделать чтобы было клиент? Как я понял в файловом варианте само делается, потому что там нет сервера.

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

Ну да. А на серверном варианте как открыть форму?

во-первых, ЭтотОбъект доступен на «Сервер, толстый клиент, внешнее соединение».

ЭтотОбъект можно вообще убрать, он не нужен. Щас там просто Объект, реквизит обработки.

К . Из внешнего модуля так вызывается:

Вообще строка     Обработка.Объект = ОбъектИзБазы;    роли не играет, не обращайте внимания.

ну не откроешь ты на сервере форму

во-вторых, внешняя обработка предварительно зарегистрированы в системе? в-третьих, а как это открытие обработки на сервере? Кто ее ТАМ будет наблюдать? может мы чего не поняли в твоей задуме?

У меня вот даже зарегистрировать внешнюю обработку не получается в толстом клиенте.

Не на сервере, а на клиенте в серверном варианте.

ну значит нужно прояснить только второй вопрос :)

Как их регистировать в системе? И для чего?

+1 для чего? после этого платформа позволит из модуля обработки открывать формы?

короче. твоя печатная форма должна быть создана по технологии внешних обработок 8.2 только тогда ты сможешь открыть ее форму.

+42 делается это в функции СведенияОВнешнейОбработке

Вот этого нужно тебе? &НаКлиенте Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

Спасибо, буду разбираться

Не понял как это может помочь открыть форму внешней обработки. Это для типовой УТ? Похоже не то что нужно

что конкретно тебе непонятно? ты делаешь дополнительную печатную форму для какого то документа. правильно?

Пишет:  Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

Да, но в той статье написано как сделать дополнительную печатную форму, это я сделал, работает. Теперь мне надо открыть ее форму.

я тебе дал код в ищи в своей обработке «ДобавитьКоманду(ТаблицаКоманд,» и пиши туда вместо ИМЯ_ТВОЕЙ_ФОРМЫ имя формы как она у тебя обзывается в обработке

я тебе рабочий код написал и выложил.

и куда надо прикрутить этот «рабочий» код чтобы ТС мог напечатать внешнюю печатную форму?

вопрос стоял, как открыть внешнюю обработку. Про печать ничего не слышал :)

а в двух словах чего ему надо, если ты скачал и видел его файло.

ровно то, что я написал. ему надо сделать внешнюю печатную форму для УТ11, которая прилепляется к нужным документам штатными средствами без изменения конфы и позволяет перед печатью открывать окно с некоторыми настройками.

но судя по тому, что ТС молчит, то предположу что он не осилил как же это сделать. видимо придется ему предложить купить эту форму ))))

Этот код не работает. ДобавитьКоманду — такая процедура не определена. Вообще-то не для УТ11. Интересует как открыть форму в принципе, «с нуля»

Код не работает. Ошибка при вызове метода контекста (ПолучитьФорму): Неизвестное имя формы. Имя: «ВнешняяОбработка.МаяОбработка.Форма.УправляемаяФорма»

Я его уже убрал. Смотри в

Действительно, работает. Ошибся

Почему-то в пятницу не работало. 1с перезапустил, заработало. Вот так тоже рабюотает:

рандомный генератор пишешь?

Вот так тоже теперь работает:

Что за фигня! В пятницу не работало, а сейчас работает без всяких дополнений! Всего-то платформу перезапустил

не делай как в и , делай как в .

Почему может быть такое сообщение?: {ВнешняяОбработка.МаяОбработка.МодульОбъекта(52,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

а давай я тебе по руке погадаю? Тыж меня в телепаты записал. Я думаю, что сообщение об ошибке достаточно для понимания.

твой код. Пишется ошибка. Закомментированная строка не работает. Переделал как во второй строке, ошибку не выдает:

Если предполагать, что ты используешь код из , дополнив его куском кода из , то у меня разрыв шаблона — метод Подключить имеет доступность «Сервер, внешнее соединение», хотя у тебя выставлено &НаКлиенте. Ты занимаешься мозгоимением??

&НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес)

Если использовать ПодключитьВнешнююОбработку вместо ВнешниеОбработки.Подключить, то выходит сообщение об ошибке: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

Еще один косяк: Если переименовать мою обработку в любое имя кроме «МаяОбработка», то выходит сообщение об ошибке: Неизвестное имя формы. Имя: «ВнешняяОбработка.блаблабла.Форма.УправляемаяФорма»

Третий косяк: Если взять другую обработку и задать ей имя «МаяОбработка», и открыть ее форму из той процедуры, то всё равно откроется форма старой обработки. Тоесть она как-то зарегистрировалась под этим именем, и не пойму когда и как она это сделала

а где это «Функция Печать Экспорт» расположено?

В модуле объекта внешней обработки

ты каким-то чудом вызываешь метод «Печать» из одной внешней обработки, а потом хочешь открыть другую внешнюю обработку «tmp.epf»?? А как ты вызываешь «Печать»?

Из общего модуля вызываю:

Я вызываю метод Печать одной внешней обработки, и хочу чтобы она сама открыла свою форму.

хз, чего там у тебя как работает, но не должен работать: &НаКлиенте и ВнешниеОбработки.Подключить не должны вместе дружить. Еще раз: в код достаточен для твоей задачи. «ОткрытьОбработку(Команда)» — это вызов по команде/кнопке на форме. Открыл форму, сделал настройки, там же нажал кнопку/команду печать.

Чтобы нажать кнопку на форме, нужно сперва открыть эту форму, а она не открывается. А вообще вызов внешней обработки и ее метода «Печать» нельзя менять. И почему работает ВнешниеОбработки.Подключить я не знаю. Могу выложить обработку чтобы посмотрели

Вот выложил: Кнопка на обработке открывает такую же обработку и вызывает «Печать». И твой код не работает. {Форма.УправляемаяФорма.Форма}: Ошибка при вызове метода контекста (Создать)    Обработка = ВнешниеОбработки.Создать(ИмяФайла); по причине: {ВнешняяОбработка.МаяОбработка.МодульОбъекта(11,14)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)

ВнешниеОбработки не доступно в тонком клиенте ПодключитьВнешнююОбработку это метод объекта. чтобы его вызвать, нужно сначала получить объект с помощью РеквизитФормыВЗначение. но сделать это можно только на сервере а вообще зачем всё это нужно?

У меня в ТОЛСТОМ клиенте Этот метод вызывается в модуле объекта, тоесть получать объект не нужно, он уже есть. Нужно просто разобраться. Почему оно не работает!

И как могут работать два метода ПоместитьФайл и ВнешниеОбработки.Подключить в одной процедуре!??! У них же разная доступность на клиенте и на сервере!

тогда, ты будешь смеяться, всё работает замени в принципе можно и ПолучитьФорму использовать и потом открывать, только при попытке передать туда ключ уникальности ругается на количество параметров, хотя параметры и там и там одинаковые

ты для какой конфы это безобразие ваяешь? для УТ11 я тебе дал все карты в руки. у меня все работает, подключается, открывает форму настроек и печатает.

если указать имя обработки «МаяОбработка», то работает. А если поменять имя и указать там новое имя, то не работает.

Для пустой конфы. Тестовой

Выяснил что нужно хотябы раз открыть форму обработки через меню файл, и выполнить команду: Тогда в следующий раз форма открывается из модуля объекта нормально. Но как сделать чтобы не нужно было открывать ее в первый раз вручную?

свойства конфигурации — Обычное приложение???

Основной режим: Управляемое приложение

да как так? открываю твою обработку в ут11 — в модуле формы уже ругань идет.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

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

Интересное по теме:

  • Полчаса пролетели как одно мгновение ошибка
  • Получено сообщение о неустранимой ошибке 70 schannel
  • Получитьимявременногофайла 1с ошибка
  • Получается ты спортсмен да типа того ошибка
  • Получено следующее предупреждение о неустранимой ошибке 70 schannel

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: