Справочник - ВнутренниеДокументы
Модуль объекта
Событие ПередЗаписью
КОД
Почему такое может происходить?
ИНОГДА я не могу получить ссылку нового и получаю объект не найден, весь код выполняется но на протяжении всего выполнения ошибка остается.
Это стандартный кусок кода написанный 1с никами, это не расширение итп.
Как такое может быть? И собственно что делать.
Модуль объекта
Событие ПередЗаписью
КОД
// Обработка рабочей группы
СсылкаОбъекта = Ссылка;
// Установка ссылки нового
Если Не ЗначениеЗаполнено(СсылкаОбъекта) Тогда
СсылкаОбъекта = ПолучитьСсылкуНового();
Если Не ЗначениеЗаполнено(СсылкаОбъекта) Тогда
СсылкаНового = Справочники.ВнутренниеДокументы.ПолучитьСсылку();
УстановитьСсылкуНового(СсылкаНового);
СсылкаОбъекта = СсылкаНового;
КонецЕсли;
КонецЕсли;
ПоказатьПочему такое может происходить?
ИНОГДА я не могу получить ссылку нового и получаю объект не найден, весь код выполняется но на протяжении всего выполнения ошибка остается.
Это стандартный кусок кода написанный 1с никами, это не расширение итп.
Как такое может быть? И собственно что делать.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А в чем именно проблема?
"СсылкаОбъекта" - будущая ссылка на новый записываемый объект. Пока он не записан, по этой ссылке в базе данных информации нет. Соответственно попытка получить в отладчике представление объекта по этой ссылке заканчивается отображением "Объект не найден". После завершения обработчика "ПерезЗаписью", то есть после записи объекта по этой ссылке уже можно будет получить нормальное представление только что записанного объекта.
"СсылкаОбъекта" - будущая ссылка на новый записываемый объект. Пока он не записан, по этой ссылке в базе данных информации нет. Соответственно попытка получить в отладчике представление объекта по этой ссылке заканчивается отображением "Объект не найден". После завершения обработчика "ПерезЗаписью", то есть после записи объекта по этой ссылке уже можно будет получить нормальное представление только что записанного объекта.
(2)
УстановитьСсылкуНового (SetNewObjectRef)
Синтаксис:
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка.<Имя справочника>.
Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Другими словами, тут у нас лежит БУДУЩИЙ объект, что бы можно было связать его с другими данными на стадии при записи.
данных информации нет.
УстановитьСсылкуНового (SetNewObjectRef)
Синтаксис:
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка.<Имя справочника>.
Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Другими словами, тут у нас лежит БУДУЩИЙ объект, что бы можно было связать его с другими данными на стадии при записи.
(5) для простоты понимания.
У меня описан механизм как бы РЕЗЕРВИРОВАНИЯ ссылки.
То-есть мы обращаемся к справочнику получаем ссылку которая БУДЕТ для этого объекта, резервируем.
И устанавливаем ее.
Далее без записи объекта мы можем связывать его с чем угодно и уже потом, после записи объекта будет установлена зарезервированная ссылка.
Запись не нужна.
У меня описан механизм как бы РЕЗЕРВИРОВАНИЯ ссылки.
То-есть мы обращаемся к справочнику получаем ссылку которая БУДЕТ для этого объекта, резервируем.
И устанавливаем ее.
Далее без записи объекта мы можем связывать его с чем угодно и уже потом, после записи объекта будет установлена зарезервированная ссылка.
Запись не нужна.
(8) Еще раз.
Для простоты понимания.
Пока вы не запишите объект по этой зарезервированной ссылке, в представлении ссылки будет "Объект не найден".
В отладчике для переменной СсылкаОбъекта отображается представление ссылки.
Если же проблема в том, что при каких-то действиях пользователя вместо ссылки на объект остается "Объект не найден" в других связанных объектах в которых эта ссылка присваивается, то причина в том, что объект не был записан пользователем.
Для простоты понимания.
Пока вы не запишите объект по этой зарезервированной ссылке, в представлении ссылки будет "Объект не найден".
В отладчике для переменной СсылкаОбъекта отображается представление ссылки.
Если же проблема в том, что при каких-то действиях пользователя вместо ссылки на объект остается "Объект не найден" в других связанных объектах в которых эта ссылка присваивается, то причина в том, что объект не был записан пользователем.
(9) ты говоришь о том, что в конфигураторе я это не увижу ?
Суть проблемы в том.
Есть механизм связывания документа с договором.
Почти всегда все отрабатывает верно, но иногда связь установиться не может.
Потому что мол нельзя сделать запись в регистр без ссылки на документ.
Так как ошибка возникает периодически вывод такой, что обычно установитьссылкунового работает корректно.
Но иногда нет.
Получается конфигуратором не отловить что ли.
Суть проблемы в том.
Есть механизм связывания документа с договором.
Почти всегда все отрабатывает верно, но иногда связь установиться не может.
Потому что мол нельзя сделать запись в регистр без ссылки на документ.
Так как ошибка возникает периодически вывод такой, что обычно установитьссылкунового работает корректно.
Но иногда нет.
Получается конфигуратором не отловить что ли.
(10) Я говорю только о том, что представление ссылки "Объект не найден" в приведенном коде (в ПередЗаписью) не является ошибкой. Это нормальное поведение платформы для ссылки, которая еще не была записана.
Нужно найти способ воспроизведения проблемы. И уже тогда разбираться, как такое возникает.
Скорее всего где-то присваивается "Ссылка", вместо "СсылкаОбъекта".
Нужно найти способ воспроизведения проблемы. И уже тогда разбираться, как такое возникает.
Скорее всего где-то присваивается "Ссылка", вместо "СсылкаОбъекта".
(13) кажется проблема в том, что вы не понимаете, что такое ССЫЛКА.
Ссылка - это некий уникальный идентификатор места в памяти, где хранятся данные Объекта.
Вполне логично, что пока Объект не записан в память, то и ссылка(путь где он записан) - весьма условное понятие.
Команда УстановитьСсылкуНового() - резервирует это место памяти под будущую запись объекта, но это не означает, что Объект там появился. т.е. до Записи по этой ссылке вы ничего не получите( Объект не найден(гуид) ).
Ссылка - это некий уникальный идентификатор места в памяти, где хранятся данные Объекта.
Вполне логично, что пока Объект не записан в память, то и ссылка(путь где он записан) - весьма условное понятие.
Команда УстановитьСсылкуНового() - резервирует это место памяти под будущую запись объекта, но это не означает, что Объект там появился. т.е. до Записи по этой ссылке вы ничего не получите( Объект не найден(гуид) ).
(16) ПолучитьСсылку() всегда возвращает ссылку существующего объекта, даже если его не существует в базе данных, для 1С это ссылка на существующий объект и у нее признак ЭтоНовый будет ложь. Так как объекта с таким идентификатором в базе нет, то в отладчике Вы видите "Объект не найден". Как Вы правильно заметили, у нового объекта такого представления не бывает.
Приведенный код, делает чушь и стоит наверное проверить, точно ли он типовой
Приведенный код, делает чушь и стоит наверное проверить, точно ли он типовой
(22)
Эм, чушь несете вы.
Приведенный код, делает чушь
Эм, чушь несете вы.
ПолучитьСсылку (GetRef)
Синтаксис:
ПолучитьСсылку(<УникальныйИдентификатор>)
Параметры:
<УникальныйИдентификатор> (необязательный)
Тип: УникальныйИдентификатор.
Уникальный идентификатор, из которого будет формироваться ссылка.
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>.
Описание:
Формирует ссылку из значения типа УникальныйИдентификатор.
Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Если параметр не указан, то будет сформирована новая уникальная ссылка.
Показать
"При выводе ссылочных полей в отчет (а также в тех местах, где необходимо отображать представление, например, при выводе значения при помощи функции "Сообщить") следует учитывать тот факт, что при выводе значения-ссылки программа будет выполнять дополнительный запрос для получения представления поля."
В отладчике Вычисляется представление ссылочного типа. Т.е. выполняются такие же действия. Делается запрос за полями для представления ссылки. Так как ссылки в базе еще нет, то и выводится сообщение "Объект не найден".
В отладчике Вычисляется представление ссылочного типа. Т.е. выполняются такие же действия. Делается запрос за полями для представления ссылки. Так как ссылки в базе еще нет, то и выводится сообщение "Объект не найден".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот