|
Ошибка при обмене | ☑ | ||
---|---|---|---|---|
0
Alekzander Wolf
04.08.20
✎
12:40
|
Ошибка при вызове контекста (ПолучитьОбъект). К сожалению отладчиком пройтись не получится.
Ругается на строчку: ФизЛицо = ?(ТипЗнч(Выборка.Ссылка)=Тип("СправочникСсылка.ФизическиеЛица") И ЗначениеЗаполнено(Выборка.Ссылка), Выборка.Ссылка.ПолучитьОбъект(), Справочники.ФизическиеЛица.СоздатьЭлемент()); Что может быть не так? |
|||
1
acht
04.08.20
✎
12:43
|
Ошибка компиляции модуля объекта в используемом режиме
|
|||
2
Alekzander Wolf
04.08.20
✎
12:53
|
Забыл добавить, что это обычные формы
|
|||
3
craxx
04.08.20
✎
12:56
|
Выборка.ССылка=null скорее всего
|
|||
4
Alekzander Wolf
04.08.20
✎
12:58
|
(3) Данная проверка стояла изначально, ошибок было на порядок больше. Да и в данном случае, она не должна была пройти по условию
|
|||
5
RomanYS
04.08.20
✎
13:01
|
(0) Попробуй открыть форму справочника ФизическиеЛица и создать новый элемент. Вероятно (1) прав и получишь ошибку
|
|||
6
fisher
04.08.20
✎
13:02
|
Действительно, интересно...
Если бы была ошибка в модуле объекта справочника физ-лиц, то по-идее ругнулось бы на конкретную строчку с ошибкой. Если бы модуль объекта справочника физ-лиц не компилировался - то валилось бы всегда, даже при открытии карточки физ-лица. Почтальон Печкин какой-то :) Непустая ссылка нужного типа есть, но объект я вам не отдам :) |
|||
7
acht
04.08.20
✎
13:14
|
(6) То, что в ОФ открывается форма - вообще ничего не значит.
У него не может собраться объект в текущем режиме исполнения - внешнее соединение, сервер и т.п. При получении объекта (кроме компиляции и выполнения области инициализации) также проверяеися доступность всех подписок для этого объекта - читай "расстановка галочек" на модулях с обработчиками. Открывай журнал регистрации/технологический журнал - там все будет написано. |
|||
8
Ёпрст
04.08.20
✎
13:19
|
(0)для битой ссылки будет и значениезаполнено и тип нужный.
|
|||
9
acht
04.08.20
✎
13:20
|
(8) И ПолучитьОбъект вернет Неопределено
|
|||
10
Alekzander Wolf
04.08.20
✎
13:23
|
(8) БИТАЯССЫЛКА.ПолучитьОбъект() не должно же ругаться. У меня в ЖР конкретная строка указана: Ошибка при вызове метода контекста (ПолучитьОбъект)
|
|||
11
Alekzander Wolf
04.08.20
✎
13:26
|
(7) у меня не всегда ошибка по данной строке, она в цикле находится
|
|||
12
Ёпрст
04.08.20
✎
13:27
|
(11) больше кода.
|
|||
13
Ёпрст
04.08.20
✎
13:28
|
возможно, где-то переопределяешь значение переменной
|
|||
14
Ёпрст
04.08.20
✎
13:29
|
и выборка, надеюс с запроса, а не с менеджера справочника с выбрать ?
|
|||
15
RomanYS
04.08.20
✎
13:30
|
(11) Откуда запускается код? Не из внешнего соединения?
Добавь Попытку и пиши отладочную информацию в ЖР или текстовый файл |
|||
16
ZDenis
04.08.20
✎
13:31
|
Ставлю на (1) и где-нибудь в модуле стоит Вопрос(...
|
|||
17
Alekzander Wolf
04.08.20
✎
13:31
|
(12) Запрос.Текст ="ВЫБРАТЬ
| торо_КвалификацияРемонтногоПерсоналаСрезПоследних.Сотрудник КАК Сотрудник, | торо_КвалификацияРемонтногоПерсоналаСрезПоследних.Квалификация КАК Квалификация |ПОМЕСТИТЬ ПоследняяОсновнаяКвалификации |ИЗ | (ВЫБРАТЬ | КвалификацияРемонтногоПерсоналаСрезПоследних.Сотрудник КАК Сотрудник, | МАКСИМУМ(КвалификацияРемонтногоПерсоналаСрезПоследних.Период) КАК Период | ИЗ | РегистрСведений.торо_КвалификацияРемонтногоПерсонала.СрезПоследних(&Период, Основная = ИСТИНА) КАК КвалификацияРемонтногоПерсоналаСрезПоследних | | СГРУППИРОВАТЬ ПО | КвалификацияРемонтногоПерсоналаСрезПоследних.Сотрудник) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.торо_КвалификацияРемонтногоПерсонала.СрезПоследних(&Период, Основная = ИСТИНА) КАК торо_КвалификацияРемонтногоПерсоналаСрезПоследних | ПО ВложенныйЗапрос.Период = торо_КвалификацияРемонтногоПерсоналаСрезПоследних.Период | И ВложенныйЗапрос.Сотрудник = торо_КвалификацияРемонтногоПерсоналаСрезПоследних.Сотрудник |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеФизЛиц.Наименование КАК Наименование, | ДанныеФизЛиц.ИНН КАК ИНН, | ДанныеФизЛиц.КодИМНС КАК КодИМНС, | ДанныеФизЛиц.СтраховойНомерПФР КАК СтраховойНомерПФР, | ДанныеФизЛиц.ДатаРождения КАК ДатаРождения, | ДанныеФизЛиц.Пол КАК Пол, | ДанныеФизЛиц.МестоРождения КАК МестоРождения, | ДанныеФизЛиц.ГУИД_кадры КАК ГУИД_кадры, | ДанныеФизЛиц.ТабельныйНомер КАК ТабельныйНомер, | ДанныеФизЛиц.Филиал КАК Филиал, | ДанныеФизЛиц.Должность КАК Должность, | ДанныеФизЛиц.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния, | ДанныеФизЛиц.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок, | ДанныеФизЛиц.ПодразделениеОрганизации КАК ПодразделениеОрганизации, | ДанныеФизЛиц.ПаспортВид КАК ПаспортВид, | ДанныеФизЛиц.ПаспортСерия КАК ПаспортСерия, | ДанныеФизЛиц.ПаспортНомер КАК ПаспортНомер, | ДанныеФизЛиц.ПаспортДатаВыдачи КАК ПаспортДатаВыдачи, | ДанныеФизЛиц.ПаспортКемВыдан КАК ПаспортКемВыдан, | ДанныеФизЛиц.ПаспортКодПодразделения КАК ПаспортКодПодразделения, | ДанныеФизЛиц.ПаспортДатаРегистрацииПоМестуЖительства КАК ПаспортДатаРегистрацииПоМестуЖительства, | ДанныеФизЛиц.КвалификационныйРазряд КАК КвалификационныйРазряд, | ДанныеФизЛиц.ГрафикРаботы КАК ГрафикРаботы, | ДанныеФизЛиц.КатегорияСтатистическогоУчета КАК КатегорияСтатистическогоУчета, | ДанныеФизЛиц.РемонтныйПерсонал КАК РемонтныйПерсонал |ПОМЕСТИТЬ ДанныеФизЛиц |ИЗ | &ДанныеФизЛиц КАК ДанныеФизЛиц |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеФизЛиц.Наименование КАК Наименование, | ДанныеФизЛиц.ИНН КАК ИНН, | ДанныеФизЛиц.КодИМНС КАК КодИМНС, | ДанныеФизЛиц.СтраховойНомерПФР КАК СтраховойНомерПФР, | ДанныеФизЛиц.ДатаРождения КАК ДатаРождения, | ДанныеФизЛиц.Пол КАК Пол, | ДанныеФизЛиц.МестоРождения КАК МестоРождения, | ДанныеФизЛиц.ГУИД_кадры КАК ГУИД_кадры, | ДанныеФизЛиц.ТабельныйНомер КАК ТабельныйНомер, | ДанныеФизЛиц.Должность КАК ДолжностьСтрока, | ДанныеФизЛиц.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок, | ДанныеФизЛиц.ПодразделениеОрганизации КАК ПодразделениеОрганизации, | ДанныеФизЛиц.КвалификационныйРазряд КАК КвалификационныйРазряд, | ДанныеФизЛиц.ГрафикРаботы КАК ГрафикРаботы, | ДанныеФизЛиц.КатегорияСтатистическогоУчета КАК КатегорияСтатистическогоУчета, | ДанныеФизЛиц.РемонтныйПерсонал КАК РемонтныйПерсонал, | ФизическиеЛица.Ссылка КАК Ссылка, | Организации.Ссылка КАК Филиал, | Должности.Ссылка КАК Должность, | ПричиныИзмененияСостояния.Ссылка КАК ПричинаИзмененияСостояния, | СотрудникиОрганизаций.Ссылка КАК Сотрудник, | РаботникиОрганизацийСрезПоследних.Период КАК Период, | ПоследняяОсновнаяКвалификации.Квалификация КАК КвалификационныйРазрядЕКУД |ИЗ | ДанныеФизЛиц КАК ДанныеФизЛиц | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО (ДанныеФизЛиц.ГУИД_кадры = ФизическиеЛица.ГУИД_кадры | ИЛИ ФизическиеЛица.ГУИД_кадры = """" | И ДанныеФизЛиц.Наименование = ФизическиеЛица.Наименование | И ДанныеФизЛиц.ИНН = ФизическиеЛица.ИНН) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МАКСИМУМ(ДолжностиОрганизаций.Ссылка) КАК Ссылка, | ДолжностиОрганизаций.Наименование КАК Наименование | ИЗ | Справочник.ДолжностиОрганизаций КАК ДолжностиОрганизаций | | СГРУППИРОВАТЬ ПО | ДолжностиОрганизаций.Наименование) КАК Должности | ПО ДанныеФизЛиц.Должность = Должности.Наименование | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации | ПО (ВЫБОР | КОГДА Организации.КПП_ЗУП <> """" | ТОГДА ДанныеФизЛиц.Филиал = Организации.КПП_ЗУП | ИНАЧЕ ДанныеФизЛиц.Филиал = Организации.КПП | КОНЕЦ) | И (Организации.Ссылка = &Организация | ИЛИ Организации.ГоловнаяОрганизация = &Организация) | ЛЕВОЕ СОЕДИНЕНИЕ ПричиныИзмененияСостояния КАК ПричиныИзмененияСостояния | ПО ДанныеФизЛиц.ПричинаИзмененияСостояния = ПричиныИзмененияСостояния.Наименование | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО (ФизическиеЛица.Ссылка = СотрудникиОрганизаций.Физлицо) | И (Организации.Ссылка = СотрудникиОрганизаций.Организация) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних( | &Период, | Организация = &Организация | ИЛИ Организация.ГоловнаяОрганизация = &Организация) КАК РаботникиОрганизацийСрезПоследних | ПО (СотрудникиОрганизаций.Ссылка = РаботникиОрганизацийСрезПоследних.Сотрудник) | И (Организации.Ссылка = РаботникиОрганизацийСрезПоследних.Организация) | ЛЕВОЕ СОЕДИНЕНИЕ ПоследняяОсновнаяКвалификации КАК ПоследняяОсновнаяКвалификации | ПО (СотрудникиОрганизаций.Ссылка = ПоследняяОсновнаяКвалификации.Сотрудник) |ГДЕ | (ФизическиеЛица.Ссылка ЕСТЬ NULL | ИЛИ ДанныеФизЛиц.Наименование <> ФизическиеЛица.Наименование | ИЛИ ДанныеФизЛиц.ИНН <> ФизическиеЛица.ИНН | ИЛИ ДанныеФизЛиц.КодИМНС <> ФизическиеЛица.КодИМНС | ИЛИ ДанныеФизЛиц.СтраховойНомерПФР <> ФизическиеЛица.СтраховойНомерПФР | ИЛИ ДанныеФизЛиц.ДатаРождения <> ФизическиеЛица.ДатаРождения | ИЛИ ДанныеФизЛиц.Пол <> ФизическиеЛица.Пол | ИЛИ ДанныеФизЛиц.МестоРождения <> ФизическиеЛица.МестоРождения | ИЛИ РаботникиОрганизацийСрезПоследних.Период ЕСТЬ NULL | ИЛИ ДанныеФизЛиц.ЗанимаемыхСтавок <> РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок | ИЛИ Должности.Ссылка <> РаботникиОрганизацийСрезПоследних.Должность | ИЛИ ДанныеФизЛиц.КатегорияСтатистическогоУчета <> РаботникиОрганизацийСрезПоследних.КатегорияСтатистическогоУчета | ИЛИ ДанныеФизЛиц.ПодразделениеОрганизации <> РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации | ИЛИ ДанныеФизЛиц.ГрафикРаботы <> РаботникиОрганизацийСрезПоследних.ГрафикРаботы | ИЛИ ДанныеФизЛиц.РемонтныйПерсонал <> РаботникиОрганизацийСрезПоследних.Сотрудник.РемонтныйПерсонал | ИЛИ ПричиныИзмененияСостояния.Ссылка <> РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния | ИЛИ НЕ ДанныеФизЛиц.КвалификационныйРазряд = ЗНАЧЕНИЕ(Справочник.торо_КвалификацииРемонтногоПерсонала.ПустаяСсылка) | И ПоследняяОсновнаяКвалификации.Квалификация ЕСТЬ NULL | ИЛИ ДанныеФизЛиц.КвалификационныйРазряд <> ПоследняяОсновнаяКвалификации.Квалификация)"; Запрос.УстановитьПараметр("ДанныеФизЛиц", ФизЛица); Запрос.УстановитьПараметр("Период", ДатаДанных); Запрос.УстановитьПараметр("Организация", ОбщегоНазначения.ГоловнаяОрганизация(Организация)); РезультатЗапроса = Запрос.Выполнить(); Пока Выборка.Следующий() Цикл Попытка ФизЛицо = ?(ТипЗнч(Выборка.Ссылка) = Тип("СправочникСсылка.ФизическиеЛица") И ЗначениеЗаполнено(Выборка.Ссылка) И Выборка.Ссылка <> Null,Выборка.Ссылка.ПолучитьОбъект(), Справочники.ФизическиеЛица.СоздатьЭлемент()); //Если Выборка.Ссылка = null Тогда //Сообщить("Физ. лицо: "+Выборка.Наименование+" - "+Выборка.ТабельныйНомер); //КонецЕсли; //Если Выборка.Сотрудник = null Тогда // Сообщить("Сотрудник: "+Выборка.Наименование+" - "+Выборка.ТабельныйНомер); //КонецЕсли; //Сообщить(""+Выборка.Наименование); //Продолжить; Исключение ВызватьИсключение; //ЗаписьЖурналаРегистрации("ОшибкаЗаписиФизЛица",УровеньЖурналаРегистрации.Информация,ФизЛицо.Метаданные(), ФизЛицо,Строка(ФизЛицо)); КонецПопытки; |
|||
18
Alekzander Wolf
04.08.20
✎
13:33
|
(15) так пишу
|
|||
19
Ёпрст
04.08.20
✎
13:35
|
И где в коде Выборка = РезультатЗапроса.Выбрать() ?
РезультатЗапроса = Запрос.Выполнить(); Пока Выборка.Следующий() Цикл |
|||
20
Alekzander Wolf
04.08.20
✎
13:37
|
(19) Я всю портянку не коппировал, естественно эта строка есть.
|
|||
21
Ёпрст
04.08.20
✎
13:38
|
(20) лучше б скопировал.. а воообще проверка на нулл не нужна
|
|||
22
Ёпрст
04.08.20
✎
13:39
|
И попытка там тоже не ннужна
|
|||
23
Alekzander Wolf
04.08.20
✎
13:42
|
(21) ну да, это уже перебор вариантов пошел. Самое интересное, что я никак не могу понять, что у меня в Выборка.ССылка находится. Вроде как значение заполнено, но что там не понятно
|
|||
24
ДенисЧ
04.08.20
✎
13:43
|
Тернарные операторы - зло...
|
|||
25
ДенисЧ
04.08.20
✎
13:43
|
Разбей на отдельные если тогда иначе. Видней будет ошибку.
|
|||
26
Ёпрст
04.08.20
✎
13:45
|
Ну значит, ошибка в самом справочнике ФизЛица.
Тупо создай обработку, поместит туда реквизит с типом и попробуй у него ПолучитьОбъект() - будет тоже ошибка |
|||
27
Ёпрст
04.08.20
✎
13:46
|
ищи ошибку м модуле справочника
|
|||
28
Alekzander Wolf
04.08.20
✎
13:57
|
(26) нет, пробовал уже
|
|||
29
Alekzander Wolf
04.08.20
✎
13:57
|
(27) Если бы ошибка была в момент записи, то искал бы там.
|
|||
30
RomanYS
04.08.20
✎
14:00
|
(29) а что по твоему происходит при ПолучитьОбъект()?
|
|||
31
ZDenis
04.08.20
✎
14:07
|
(0) "К сожалению отладчиком пройтись не получится."
Почему нельзя отладчиком посмотреть что там в момент ошибки? |
|||
32
Alekzander Wolf
04.08.20
✎
14:09
|
(31) обработка работает в фоновом режиме на сервере
|
|||
33
fisher
04.08.20
✎
14:10
|
(32) А сразу нельзя было сказать?
|
|||
34
RomanYS
04.08.20
✎
14:13
|
(33) Интриги тогда не будет)
|
|||
35
ZDenis
04.08.20
✎
14:14
|
(32) Но ее можно веди и не фоново запустить для проверки
|
|||
36
ZDenis
04.08.20
✎
14:16
|
+ в конце концов когда что-то не работает- чисти кэши)
|
|||
37
fisher
04.08.20
✎
14:16
|
(32) Раз падает не всегда, тогда это не ошибка компиляции модуля объекта на сервере. Вероятно, ошибка инициализации модуля в каких-то вариантах в серверном контексте. Смотри секцию инициализации модуля первым делом. Чего там выполняется.
|
|||
38
Alekzander Wolf
04.08.20
✎
17:30
|
(37) Да, да какая то херь, я понял
|
|||
39
fisher
04.08.20
✎
17:52
|
(38) Херь, вероятная точка входа которой - секция инициализации модуля объекта справочника физ-лиц. Чего у тебя там понаписано кроме объявления процедур/фукнций/переменных? Есть какой-то код (обычно в самом низу)?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |