Kaukass
16.11.15
✎
11:11
тпТовары — это Табличное поле на форме обработки.
Процедура Кнопка2Нажатие(Элемент)
ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);
ФормаВыбора.ЗакрыватьПриВыборе = ложь;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.Открыть();
КонецПроцедуры
Текст ошибки
{Обработка.Обработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ПолучитьФорму)
ФормаВыбора = ЭтотОбъект.ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);
по причине:
Несоответствие типов (параметр номер ‘2’)
Любопытная
16.11.15
✎
11:14
Синтаксис:
ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Владелец — третий параметр, а не второй
JastAMan
16.11.15
✎
11:16
Не так понял СП:
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
ПолучитьФорму (GetForm)
Синтаксис:
ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Любопытная
16.11.15
✎
11:17
На как бы… Разные методы же
Kaukass
16.11.15
✎
11:19
Если так
ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,,ЭлементыФормы.тпТовары, КлючУникальности);
то ошибка: Слишком много фактических параметров
cw014
16.11.15
✎
11:23
Я один не понимаю момент:
ФормаВыбора = ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);
И там где ошибка:
ФормаВыбора = ЭтотОбъект.ПолучитьФорму(«Справочник.Номенклатура.ФормаВыбора»,ЭлементыФормы.тпТовары, КлючУникальности);
Где вранье?
Kaukass
16.11.15
✎
11:32
(5)В (4) вранье.
Kaukass
16.11.15
✎
11:33
Спасибо — заработало
| asdfr1 |
|
||
|---|---|---|---|
|
|
в сформированном отчёте при двойном щелчке необходимо вывести форму справочника, неудаётся дотянутся до самой формы.
Кодик=СписокИнф[2].Значение; Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); Область.Параметры.ФормаИзделия= Форма.Открыть(); Где ФормаИзделия -ПараметрРасшифровки как то так, подскажите плиз |
| Yandex |
|
||
|---|---|---|---|
|
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
Кодик=СписокИнф[2].Значение;
Найти=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); Форма = Найти.ПолучитьФорму(); Откр= Форма.Открыть(); Область.Параметры.ФормаИзделия= Откр; Ошибка при вызове метода контекста (ПолучитьФорму) |
| E_Migachev |
|
||
|---|---|---|---|
|
|
(0) asdfr1, а это что? -СписокИнф[2].Значение;
вообще тебе надо в обработке расшифровки или Выбора получить код элемента справочника, который ты хочешь открыть, а далее как-то так: Код 1C v 8.х
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
СписокИнф[2].Значение — код элемента справочника |
| E_Migachev |
|
||
|---|---|---|---|
|
|
тогда Код 1C v 8.х
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
какой нить примерчик можно ? из книги Радченко и синтаксиспомошника воспроизвёл.Сравнение на Неопределено сделал.Возвращаяет ошибку «Обращение к процедуре объекта как к функции (Открыть)»
Для Каждого Строка ИЗ ТЗ Цикл СправочникПоиск=Справочники.ИзделияВЭксплуатации.НайтиПоРеквизиту(«ЗаводскойНомер», ЗавНомерМля); Если Строка.ИзделиеВЭксплуатацииЗаводскойНомер=СправочникПоиск Тогда // Неопределено Сообщить(Строка.ИзделиеВЭксплуатацииЗаводскойНомер); Иначе Ёпта1=СправочникПоиск.ПолучитьФорму(); Изменено 17.01.13 14:20:13 по причине: изменилась ошибка |
| asdfr1 |
|
||
|---|---|---|---|
|
|
Вопрос закрыт! |
Подсказка: Для редактирования своего ответа щелкните по значку (справа) |

Уважаемые пользователи форума, ору вам о помощи — не могли бы вы помочь устранить данную проблему
| 1C | ||
|
Суть модуля заключается в следующем — необходим поиск Номера документа на основе параметра &КатегорияТовара и как результат открытие его формы на экране.
Выскакивает следующая ошибка {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(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 | ||
|
Суть модуля заключается в следующем — необходим поиск Номера документа на основе параметра &КатегорияТовара и как результат открытие его формы на экране.
Выскакивает следующая ошибка {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма (18)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = ИскомыйДокумент.ПолучитьФорму();
по причине:
Элемент не выбран!
Добавлено через 23 минуты
Забыл добавить, что ВладельцыКатегорий — документ, а сам модуль написан на Справочник Номенклатура (с реквизитом категория товара — ссылка на соответствующий справочник)
| asdfr1 |
|
||
|---|---|---|---|
|
|
в сформированном отчёте при двойном щелчке необходимо вывести форму справочника, неудаётся дотянутся до самой формы. Область.Параметры.ФормаИзделия= Форма.Открыть(); Где ФормаИзделия -ПараметрРасшифровки как то так, подскажите плиз |
| Yandex |
|
||
|---|---|---|---|
|
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
Кодик=СписокИнф[2].Значение; Область.Параметры.ФормаИзделия= Откр; Ошибка при вызове метода контекста (ПолучитьФорму) |
| E_Migachev |
|
||
|---|---|---|---|
|
|
(0) asdfr1, а это что? -СписокИнф[2].Значение; вообще тебе надо в обработке расшифровки или Выбора получить код элемента справочника, который ты хочешь открыть, а далее как-то так: Код 1C v 8.х
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
СписокИнф[2].Значение — код элемента справочника |
| E_Migachev |
|
||
|---|---|---|---|
|
|
тогда Код 1C v 8.х
|
| asdfr1 |
|
||
|---|---|---|---|
|
|
какой нить примерчик можно ? из книги Радченко и синтаксиспомошника воспроизвёл.Сравнение на Неопределено сделал.Возвращаяет ошибку «Обращение к процедуре объекта как к функции (Открыть)» Если Строка.ИзделиеВЭксплуатацииЗаводскойНомер=СправочникПоиск Тогда // Неопределено Сообщить(Строка.ИзделиеВЭксплуатацииЗаводскойНомер); Иначе Ёпта1=СправочникПоиск.ПолучитьФорму(); Изменено 17.01.13 14:20:13 по причине: изменилась ошибка |
| asdfr1 |
|
||
|---|---|---|---|
|
|
Вопрос закрыт! |
| Подсказка: Для быстрого поиска ответов — используйте ‘Поиск’ |
Открыть форму (Новый документ)
Автор 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С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;
1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.
В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 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
Комментарии доступны только авторизированным пользователям


(справа)












