|
v7: Загадочный вылет 1С 7.7 с табличным полем | ☑ | ||
---|---|---|---|---|
0
ildary
29.04.15
✎
22:54
|
Уважаемые специалисты, посоветуйте пожалуйста, как исправить следующую проблему: сделал обработку с табличным полем, она работает, все довольны, на том же самом компьютере скопировал ее в другую конфигурацию (со всеми требуемыми функциями и вызовами ВК) - и в новой конфигурации начались странные вылеты - если открыть обработку и попробовать открыть какой-нибудь документ дабл-кликом по нему. Проверил все, включая классы и ВК - обновил все до версий, рекомендуемых сайтом 1С++ - но вылеты не исчезли. Куда лучше посмотреть в данном случае?
|
|||
1
FN
29.04.15
✎
22:58
|
в отладчик посмотри. после какой строки кода вылетает...
обычно такое происходит когда дергаешь форму до ее создания. ну или конфликт ВК |
|||
2
Garykom
гуру
29.04.15
✎
23:26
|
(0) "downgrade" спасет отца русской демократии...
|
|||
3
EvgeniuXP
29.04.15
✎
23:29
|
(2) +100500
|
|||
4
ADirks
30.04.15
✎
08:04
|
Если поставщик данных ODBC, то проверь ключ порядка на предмет уникальности. Это основной источник загадочных падений ТП.
Версию 1С++ лучше взять самую последнюю, 3.2.4.2 http://www.1cpp.ru/forum/YaBB.pl?num=1332077808/5#5 http://www.1cpp.ru/forum/YaBB.pl?num=1390467243 |
|||
5
ildary
30.04.15
✎
14:26
|
(4) поставщик данных - документ. Версия 1с++: 3.2.4.1, менять пока боюсь - в Вашей версии внесены изменения, которые касаются классов, я пока не готов их менять.
(1) спасибо за совет, я с горя не догадался так поступить. Заремливание помогло, вылетает вот такой код (валится последняя процедура: Функция глТП_ПолучитьТекКолТП( ТабПоле, ТекКол = "" ) Экспорт Если ПустоеЗначение( ТекКол ) = 1 Тогда ТекКол = ТабПоле.ТекущаяКолонка.Имя; КонецЕсли; Если Прав( ТекКол, 3 ) = "Вид" Тогда ТекКол = Лев( ТекКол, СтрДлина(ТекКол) - 3 ); КонецЕсли; Возврат ТекКол; КонецФункции Функция ПередНачаломИзмененияТП( ТабПоле, ТекКол, ФСО ) Если Найти( "/Пометка/", "/" + ТекКол + "/" ) <> 0 Тогда //Возврат 0 - т.к. отработает ПриВыбореФлажка Возврат 0; КонецЕсли; ТекКол = глТП_ПолучитьТекКолТП( ТабПоле ); Возврат 1; КонецФункции //ПередНачаломИзмененияТП Процедура тпДокументПередНачаломИзменения( ТабПоле, ФСО ) ТекКол = ""; Если ПередНачаломИзмененияТП( ТабПоле, ТекКол, ФСО ) = 0 Тогда //Возврат Возврат; КонецЕсли; ФСО = 0; ТекТаб = ТабПоле.ТекущиеДанные; ТекЗнач = ТекТаб.Получить( ТекКол ); ОткрытьФорму( ТекТаб.Получить( "ТекущийДокумент" ),, -1 ); КонецПроцедуры //ПередНачаломИзменения |
|||
6
trad
30.04.15
✎
14:44
|
тпДокументПередНачаломИзменения откуда вызывается эта процедура? У базового ТП такого события нет.
Класс "ПоставщикДанных"? http://www.1cpp.ru/forum/YaBB.pl?num=1273512019 1. Если он сравни версии этого класса в обеих конфах. 2. Установи крайнюю версию этого класса 3. Напиши так ТекТаб = ТабПоле.ТекущиеДанные; Если ПустоеЗначение(ТекТаб)=0 Тогда ТекЗнач = ТекТаб.Получить( ТекКол ); ОткрытьФорму( ТекТаб.Получить( "ТекущийДокумент" ),, -1 ); КонецЕсли; |
|||
7
ildary
30.04.15
✎
15:23
|
На форме создано табличное поле тпДокумент, процедура тпДокументПередНачаломИзменения() - является унаследованной от ПередНачаломИзменения(). Ну по крайней меря я так думал.
|
|||
8
sapphire
30.04.15
✎
15:28
|
(0) 1С++
загружаешь дважды |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |