Имя: Пароль:
1C
1С v8
Ошибка при обмене
,
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) Херь, вероятная точка входа которой - секция инициализации модуля объекта справочника физ-лиц. Чего у тебя там понаписано кроме объявления процедур/фукнций/переменных? Есть какой-то код (обычно в самом низу)?
Программист всегда исправляет последнюю ошибку.