Имя: Пароль:
1C
Админ
v8: Ошибка платформы 1С 8.2
0 zarcom
 
02.12.11
13:32
При вызове метода получить форму "ПолучитьФорму(ИмяФормы)" вылетает ошибка... Что делать? Форма есть.
1 Азат
 
02.12.11
13:33
Читать СП до посинения?
2 Wobland
 
02.12.11
13:33
форма есть, а получить нельзя. парадокс
3 dryms
 
02.12.11
13:33
откуда получаешь?
4 dryms
 
02.12.11
13:34
Ты из модуля формы хочешь получить?
5 Cube
 
02.12.11
13:35
(3) Видимо, он со всех сторон получает)
6 Wobland
 
02.12.11
13:35
ну сказал же человек, из платформы 8.2 получает
7 dryms
 
02.12.11
13:36
(6) как емко))
8 NcSteel
 
02.12.11
13:37
Документ.Траляля.Форма.ИмяФормы , так ?
9 dryms
 
02.12.11
13:37
(8) Уж точно не так))
10 Armando
 
02.12.11
13:39
(0) "вылетает ошибка" какая?
поди еще с сервера получить пытаешься?
11 Wobland
 
02.12.11
13:40
это какой-то аттракцион "почувствуй себя телепатом"
12 mozzga
 
02.12.11
13:40
ОткрытьФорму()
13 zarcom
 
02.12.11
13:43
Получаю из формы документа Чек ККМ "ФормаРегистрацииПродаж" другую форму: ПолучитьФорму("ФормаДанныхПокупателя")
ФормаДанныхПокупателя не типовая, добавлена при разработке
дословно код выглядит так:
ФормаДанныхПокупателя = ПолучитьФорму("ФормаДанныхПокупателя");
И тут вылетает, причем не стабильно, а периодически 1 раз на 100-200 примерно
14 guitar_player
 
02.12.11
13:44
(13) пичалька
15 mozzga
 
02.12.11
13:45
шоу экстасенсов продолжается! С какой ошибкой падает?
16 Wobland
 
02.12.11
13:45
(15) буква А!
17 dryms
 
02.12.11
13:46
Объект=Ссылка.Получитьобъект();
Форма=Объект.получитьФорму("МояФорма");
18 dryms
 
02.12.11
13:47
А форма куда добавлена? К этому же документу, в общие формы, во внешнюю обработку, в справочник или куда там еще?
19 mozzga
 
02.12.11
13:48
ну кто еще погадает?
20 zarcom
 
02.12.11
13:49
Да я не скопировал ошибку, дословно не могу сказать, просто на магазинах звонят, подключаешься заходишь в отладчик, проходишь до этой точки и только встаешь на
ФормаДанныхПокупателя = ПолучитьФорму("ФормаДанныхПокупателя");
всё вылетает пишет (не дословно) не обнаружена ФормаДанныхПокупателя

Повторилась ошибка раза 3, вот решил написать может кто сталкивался
В следующий раз как вылетит скину дословный вариант ошибки
21 zarcom
 
02.12.11
13:49
Форма добавлена в документ ЧекККМ
22 Cube
 
02.12.11
13:50
(13) Скажи там рядом стоящим, чтоб перестали тебя по голове бить, а то ты на наши вопросы не отвечаешь... :)
23 Wobland
 
02.12.11
13:50
(20) читал (18)?
24 dryms
 
02.12.11
13:51
Попробуй (17)!
25 dryms
 
02.12.11
13:53
Закоменти строчку из(20) на 2 строчки
Объект=Ссылка.Получитьобъект();
ФормаДанныхПокупателя = Объект.ПолучитьФорму("ФормаДанныхПокупателя");
26 zarcom
 
02.12.11
13:59
Можно конечно 17, но вот я думаю теряется либо форма, либо сам объект, потому что в строке  с кодом ВладелецДисконтнойКарты = ДисконтнаяКарта.ВладелецКарты;
Вылетело, что типо нет "ДисконтнаяКарта", хотя это в модуле формы "ФормаРегистрацииПродаж", которая в метаданных ЧекККМ, а "ДисконтнаяКарта" это реквизит документа ЧекККМ.
Мне типо все обращения проводить через
Объект=Ссылка.Получитьобъект();
НужныйРеквизит = Объект.НужныйРеквизит
27 Wobland
 
02.12.11
14:04
(26) лишишься коленки, если станешь делать так ;)
28 dryms
 
02.12.11
14:05
Реквизиты Документа можно в твоем случае напрямую получать:
перем=НужныйРеквизит;
Реквизиты формы из ФормаДанныхПокупателя :
Перем=ФормаДанныхПокупателя.элементыФормы.НужныйРеквизит;
29 zarcom
 
02.12.11
14:09
(28) Я имею в виду, что в какой-то момент выскакивает ошибка, примерно так как будто я обращаюсь не с Чека ККМ к реквизиту ДисконтнаяКарта, а с какого-то другого модуля который конечно не видит реквизиты Чека. Как будто сам модуль потерял "ссылку" на объект, (17) пока не пробовал, хотя хотел указать явно вроде: ДокументОбъект.Реквизит, но млин это же жуть всё переписывать.
30 dryms
 
02.12.11
14:15
А форме во вкладке реквизиты есть реквизит ДокументОбъект и он выделен жирным????
31 zarcom
 
02.12.11
14:15
Может быть такое, что в форме в реквизит ДокументОбъект с типом ЧекККМ, попало как-то неопределено или что-то в этом роде?
Ещё вылетало тоже на каком-то реквизите не помню на каком, тоже не видел его.
Это 8.2 глючит или что не так надо делать на 8.2
32 zarcom
 
02.12.11
14:16
Да он жирным, т.е форма Чековская если ты об этом
33 zarcom
 
02.12.11
14:25
Главное ошибка повторяется периодически т.е. не стабильно, причем если уж она возникла, то всё хоть сто раз инициируй процедуру, стабильно будет вылетать. Даже подключишься к сеансу отладчиком, будешь по шагам идти, доходишь до места, всё вылетает зараза. Чаше всего на ПолучитьФорму() раз 3, 1 раз не увидел свой же реквизит ДисконтнаяКарта, и 1 раз ещё какой-то реквизит.
Помогает только перезапуск 1С
34 dryms
 
02.12.11
14:25
Надо ловить момент  и воспроизвести ситуацию когда так происходит, тогда и причина ясна будет, если то работает, то нет. склоняюсь к мнению, что это не из-за платформы!
35 zarcom
 
02.12.11
14:27
Происходит при проведении документа ЗакрытиеЧека, если перезапустить 1С то всё ок! на этом же документе, если нет то нажимаешь шагаешь вылетаешь.
36 zarcom
 
02.12.11
14:29
Уточняю в процедуре ЗакрытьЧек() получается даже до записи или проведения, документа
37 dryms
 
02.12.11
14:33
Хотя, вроде бывает, что форма не "привязывается" к документу. Можно попробовать переименовать форму, добавить новую с нужным именем и перенести туда все содержимое. если происходит только на конкретном компе, то удали базу из списка баз и добавь заново.
38 dva1c
 
02.12.11
14:35
(37)+1
(36) дельный совет: "...то удали базу из списка баз и добавь заново"
39 zarcom
 
02.12.11
14:41
Я вот тоже подумал что форма не привязалась, прошелся только что по коду, после закрытия чека происходит перепривязка формы к новому объекту:
ЭтаФорма.Закрыть();
ДокументОбъект = Документы.ЧекККМ.СоздатьДокумент();
ДокументОбъект.Дата = РабочаяДата;
ПриОткрытии();
Обновить();
Я подумал наверное в этом месте что-то глюкнуло, и в ДокументОбъект что-то типо нулл, и когда в след раз пытаешься обратиться к реквизиту, я получаю свою ошибку
40 zarcom
 
02.12.11
14:42
попробую список баз помучить
41 zarcom
 
02.12.11
14:51
Хотя я не прав, насчет (39), там же есть ДокументОбъект.Дата = РабочаяДата;, которое проходит без ошибок, значит привязка формы прошла удачно. Выходит форма позже отвязывается???
эту 8.2 я не могу понять, там ещё глюки с формированием движения документов, просто капец, когда стоит автоматом удалять движения, конечно это не по теме, но всё равно не хватает нервов на эту 8.2
неужели только у меня эти глюки
42 dryms
 
02.12.11
15:02
(41)ДокументОбъект и Форма-это разные вещи!+ попробуй платформу обнови, у меня нет таких проблем
43 zarcom
 
02.12.11
16:07
(42) да форма и документ это конечно не одно и тоже, там же связка формы и документа, через ДокументОбъект на сколько я понимаю, что когда пишешь ДисконтнаяКарта отладчик понимает как ДокументОбъект.ДисконтнаяКарта и если в ДокументОбъект находится не тип Чек ККМ, то вылетает ошибка.
И вот фиг поймет когда в "реквизите" формы ДокументОбъект помещается не тип Чек ККМ.
Платформа вроде последняя, даже не знаю в чем дело, буду копаться.

Всем спасибо за участие! Если что накопаете напишите плиз.
44 zarcom
 
05.12.11
09:29
Проблема решилась!
Причина незакрытая транзакция.
Видимо где-то в глобальнике открывалась и не закрывалась.
Просто поставил условие
Если ТранзакцияАктивна() Тогда
ЗафиксироватьТранзакцию();
КонецЕсли;
45 vmv
 
05.12.11
09:45
(44) извинись терерь за клевету на платформу - будь мужчиной
46 zarcom
 
07.12.11
12:41
Насчет транзакции, признаю что дело не в платформе.
Я бы с радостью извинился!
Но на данный момент я не могу сказать что 8.2 "рабочая" у меня версия 8.2.14.537 Кто хочет удостовериться проверьте и подскажите если найдете решение. Создайте в новой конфе любой документ (режим удаления движений =автоматически) сделайте в обработке проведения одно движение, по любому регистру накопления. У меня при проведении получается либо 0, 2, 4 и т.д. проводок.
В 8.1 тот же код отрабатывает нормально, пока решение не нашел (разве что вручную делать как в типовых вручную "следить за движениями")
Не уверенность в платформе очень мешает и путает, в 8.1 я бы бился до конца и вряд ли бы вообще ветка создалась и время бы не отнимал у форумчан, так что извиняться пока перед 8.2 нет желания.
Если же косяк опять у меня, то повторю с радостью извинюсь!
47 shuhard
 
07.12.11
12:42
(46) пипец
свойство у документа записывать модифицированные движения поставь как надо
48 GROOVY
 
07.12.11
12:44
(46) Открой для себя работу с управляемыми формами. Напиши в модуле Очистить() у набора записей или кури "Удаление движений" и "Записывать выбранные" в свойствах документа.
RTFM LMD.
49 GROOVY
 
07.12.11
12:44
"Платформа глючит"... Мдя...
50 shuhard
 
07.12.11
12:45
(48)[Открой для себя работу с управляемыми формами]
формы здесь не причем
51 zarcom
 
07.12.11
12:46
(46) Спасибо большое!
(44) Извиняюсь за клевету!
52 hhhh
 
07.12.11
12:47
(51) чего курил? Сам с собой разговариваешь.
53 Buster007
 
07.12.11
12:48
(46) чет не получается так как у тебя.
54 GROOVY
 
07.12.11
12:49
(50) Еще как причем, не совсем формы, хотя они тоже в теме.
Сценарий:
1.Конфигуратор. Основной режим запуска "Управляемое приложение".
2.Создаем док. Конструктором формируем движение по некому регистру.
3.Открываем предприятие. Проводим док. Не закрывая форму перепроводим. Смотрим движения. Все ок.
4.Конфигуратор, создаем обычную форму у дока. Запускаем систему в режиме обычного приложения.
5. Повторяем п2. Смотрим движения. Профит. Движения дублируются.

Кто объяснит в чем дело тому конфетку :)

ЗЫ: я знаю ответ.
55 zarcom
 
07.12.11
12:49
(52) благодарил (47) shuhard
56 shuhard
 
07.12.11
12:51
(55) топик закрыт ?
тогда попросим GROOVY переименовать его в
""Наглая клевета подлых наймитов не прошла"