|
Как отлаживать современные типовые на управляемых формах. | ☑ | ||
---|---|---|---|---|
0
YaFedor
30.01.25
✎
08:57
|
При выполнении обновления ошибка:
Ошибка при установке значения атрибута контекста (ТипЗначения) {ОбщийМодуль.ОбновлениеСПредыдущейРедакции.Модуль(1042)}:ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТипов); {ОбщийМодуль.ОбновлениеСПредыдущейРедакции.Модуль(214)}:ПереносДопСвойствПриОбновленииС20(); {(1)}:ОбновлениеСПредыдущейРедакции.ПереносКИиДопСвойствПриОбновленииС20() {ОбщийМодуль.ОбщегоНазначения.Модуль(6007)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(9763)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика); {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1551)}:ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры); {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2808)}:ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры); // @skip-check query-in-loop - выполнение монопольных и оперативных обработчиков. {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(111)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры); {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(3187)}:Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления); {(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(6007)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(1831)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); {ОбщийМодуль.ДлительныеОперации.Модуль(1792)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения); [ОшибкаВоВремяВыполненияВстроенногоЯзыка] по причине: Тип не является подмножеством типа значений плана видов характеристик [ОшибкаИспользованияВстроенногоЯзыка] Вопрос: где же именно ошибка, в какой строке? Я предположил, что здесь: {ОбщийМодуль.ОбновлениеСПредыдущейРедакции.Модуль(1042)}:ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТипов); Поставил точку останова - не останавливается, ошибка появляется. |
|||
1
arsik
гуру
30.01.25
✎
08:59
|
Отладка криво настроена.
Попробуй войти в 1С с ключем /C РежимОтладки |
|||
2
Smit1C
30.01.25
✎
09:11
|
Подключиться к фоновым заданиям и галку поставить Остановка на ошибках
|
|||
3
DrZombi
гуру
30.01.25
✎
09:33
|
(0) Запустить отладку, на сервере 1С :)
|
|||
4
ptiz
30.01.25
✎
09:45
|
(0) База нетиповая (доработанная)? Кто-то ковырял планы видов характеристик?
|
|||
5
YaFedor
30.01.25
✎
09:53
|
Да, база была доработанная - привожу к типовой.
Расширением отключил обработку доп. свойств, пока идет дальше. Если что, это тестовая база. Но все равно остается непонимание текста ошибки. вот помню раньше, в обычных формах в ошибке была одна конкретная строка модуля, где эта ошибка возникает, а тут ... |
|||
6
PLUT
30.01.25
✎
10:13
|
(5) которая из букв непонятная?
стек вызовов жы. если самая верхняя строка с ашипкой непонятная - читай следующую строку - процедура или функция, откуда вызов произошел... а чтобы точки останова работали в пофигураторе - нужно (1) и (3)и галочки в настройках автоподключения Отладки - клеентские и внешние вызовы + фоновые задания а уж если совсем неясно-непонятно чё происходит - можно замер производительности включить и выключить... там очень много букв будет, но станет яснее и понятнее - какие процедуры/функции пофигурации вызывались... |
|||
7
d4rkmesa
30.01.25
✎
10:13
|
(5) Там куча фоновых заданий, можно поставить точку останова и подцепиться к ним. Правда, иногда это отвратительно работает.
Еще можно сделать копию с обновляемой базой и сделать простую обработку с вызовом ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОтложенноеОбновлениеСейчас() НЯП, так как раз все начнет медленно, но верно обновляться в один поток без фоновых заданий и можно будет поставить точку останова без геморроя. Правда, ждать придется дольше обычного. |
|||
8
ptiz
30.01.25
✎
10:15
|
(5) Что непонятного в строке?
{ОбщийМодуль.ОбщегоНазначения.Модуль(6007)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; Команда Выполнить(...) выполняет код. Состав ПВХ надо привести в соответствие с типовым. |
|||
9
arsik
гуру
30.01.25
✎
11:33
|
(1)+
Всегда так делаю. /C РежимОтладки Это запускает все фоновые в "не фоновом" режиме и они становятся доступны для отладки без подключения к фоновым заданиям. Фоновых заданий может генерироваться уйма и отладка в них очень кривовасто работает если идти по шагам. |
|||
10
DrZombi
гуру
30.01.25
✎
11:06
|
(5) привыкните :)
|
|||
11
DrZombi
гуру
30.01.25
✎
11:08
|
(8) Странно... в строке 6007, как раз ошибок нет :)
А вот ошибка в 1042. А дальше надо разматывать в отладчике, причину такой ошибки :) {ОбщийМодуль.ОбновлениеСПредыдущейРедакции.Модуль(1042)}:ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТипов); |
|||
12
Gucci76
30.01.25
✎
11:51
|
(9) А что означает "/С" ???
Я без него запускаю. Правда при таком запуске в ЗУП бывают проблемы когда хочешь посмотреть средний в отпуске.
|
|||
13
Fedor-1971
30.01.25
✎
12:06
|
(12) вот это поле и передаётся в /C
по факту, строка запуска может выглядеть примерно так: "C:\Program Files\1cv8\common\1cestart.exe" /C РежимОтладки |
|||
14
Gucci76
30.01.25
✎
12:11
|
Это для ярлыка запуска (или дополнительные парам запуска)?
Типа ключ? Из конфигуратора это не требуется? Работает ведь. |
|||
15
Гипервизор
30.01.25
✎
12:11
|
(12) Это в командной строке.
|
|||
16
PLUT
30.01.25
✎
12:13
|
(14) в окне запуска 1С в свойствах ИБ это доп.параметр
если один доп.параметр, то в это поле можно просто написать без /С РежимОтладки |
|||
17
Lite777888
naïve
30.01.25
✎
15:09
|
(0) {ОбщийМодуль.ОбновлениеСПредыдущейРедакции.Модуль(1042)}:ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТипов); Отладка , галка фоновые задания ,+ точка останова
|
|||
18
craxx
30.01.25
✎
16:27
|
(0) тебе же там русским языком написано, что тип в массиве типов не является типом, который в характеристике ПВХ. Галочка в ПВХ на этом типе не стоит.
|
|||
19
Garykom
гуру
30.01.25
✎
19:48
|
(17) имхо я бы заменил кусок кода
ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТипов); расширением на МассивТиповНакопительный = Новый Массив; Для Каждого ТекТип Из МассивТипов Цикл МассивТиповНакопительный.Добавить(ТекТип); Попытка ОбъектПВХ.ТипЗначения = Новый ОписаниеТипов(МассивТиповНакопительный); Исключение Сообщить("Ошибка с типом: "+ТекТип); КонецПопытки; КонецЦикла; |
|||
20
Garykom
гуру
30.01.25
✎
19:45
|
(19)+ вместо Сообщить можно сделать запись в ЖР
|
|||
21
Сергиус
31.01.25
✎
00:27
|
(0)Ошибка в самой верхней строке, дальше просто стек вызовов процедур перед этим. Если отладка не подключается в серверном или клиентском режиме, проверьте чтобы стояла галочка на автоматическое подключение фоновых заданий в настройках отладчика.
|
|||
22
X Leshiy
31.01.25
✎
00:43
|
(20) О да, сам использую этот лайфхак во всякой херне, которую хрен отладкой поймаешь)
|
|||
23
bolder
31.01.25
✎
09:39
|
(22) Это вообще единственный способ вытащить что-либо из фонового задания. Сообщать-то там некому.
|
|||
24
arsik
гуру
31.01.25
✎
08:18
|
(23) А вот и нет.
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(КлючЗадания); МассивСообщений = ФоновоеЗадание.ПолучитьСообщенияПользователю(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |