#0
by ИС-2
Загрузка данных от поставщика. Какой код Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДКонтрагента)); функция ЗначениеЗаполнено для <оюъект не найден> возвращает истину. Какие есть нормальные способы, чтобы обрабатывались, только действительно заполненные контрагенты? Как определить, что существует ссылка с этим ГУИДом или нет? Проверять по заполнению кода/наименования не хочу, по наличию текста <объект не найден> тоже
#5
by ИС-2
<объект не найден> = .пустаяссылка и ВасяПукин = .пустаяссылка вернет одно и тоже значение речь по код, а не запрос скиньте, пжс, код доооолго будет работать
#11
by ИС-2
и какое преимущество у запроса перед ЗначениеЗаполнено(Контр.Код) она всегда будет равна ложь
#16
by Kyon8
Контр.Код подтянет и закеширует все реквизиты объекта, так что в БСП всё правильно. Плюс контрагент может быть без кода (через обмен данными криво загрузился, например).
#17
by Torquader
Нет, а что такого страшного в битых ссылках ? Просто в одной таблице есть запись, которой нет в другой таблице - для самой базы данных это не критично. И проверить ссылку на небитость можно только обращением в основную таблицу объекта - нужно, всего лишь, узнать - есть ли там запись с таким UID или нет. Так что в всё просто и понятно написано - можно, конечно, выбирать не ссылку, а количество записей, чтобы не было никаких потугов с загрузкой представления для ссылки (но оно-то всё равно будет загружено ещё до начала исполнения запроса, так как ссылка у нас).
#21
by oleg_km
А что, сама 1С предусмотрела однозначный механизм выявления таких ссылок? Т.е. есть константа, функция или метод, с помощью который документированным способом определить, что это ссылка на объект, который отсутствует в базе? Так 1С сама хороша в таком случае. Я бы ее тоже бы приложил за такое.
#23
by oleg_km
На месте 1С? Я же написал: сделал бы или литерал или функцию глобального контекста, либо метод ссылки или менеджера. А как сделала 1С? Может мне прост неведомо сакральное знание и где-то в методичках есть рекомендованный 1С способ?
#24
by Леша1с
У 1С не существует такого объекта "объект не найден". Поэтому она его и не обрабатывает никак. Нет сущности - нет проблемы.
#25
by Адинэснег
зачем искать оптимальные способы поиска битых ссылок? Они неслучайно там появились, лучше уделите время выяснения причины, каким образом в вашей системе нарушается ссылочная целостность
#28
by Адинэснег
типа РеализацияТоваровУслуг.ДоговорКонтрагента ИЗ ГДЕ ДоговорыКонтрагентов.Ссылка ЕСТЬ NULL
#29
by Torquader
Вопрос в том, что битая ссылка определяется только в момент, когда её читаем, так как ни 1С ни SQL вообще не знает о том, что там с объектом в его основной таблицы.
#30
by H A D G E H O G s
В SQL есть foreign key для контроля этого дела, другой вопрос в том, что 1С это не использует, ибо, например, при загрузке из XML все встанет раком.
#31
by Torquader
Ну, foreign key просто ставится в ноль, если удаляется основная запись. Раком, конечно, не встанет, но всю загрузку нужно будет делать в одной транзакции. И, очень печальный случай - загрузка двух объектов, ссылающихся друг на друга - если делать честно, то сначала грузим объекты с пустыми ссылками, а потом добавляем к ним ссылки.
#32
by H A D G E H O G s
Насколько я помню, sql генерирует исключение при попытке удаления основной записи
#33
by Torquader
Это как настроишь - можно и CASCADE (то есть удалить и дочерние автоматом), а можно их просто в Null сбросить.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Зачем нужна обработка "Проведение документов по регистрам НДС" в типовых?
- БП2.0 Формат версии 0.6 за период составления отчета более не применяется.
- Активировать строку в табличной части
- Как сделать так, чтобы фокус не переходил с ТЧ формы
- 1с ftp failure when receiving data from the peer (1с падает)
- перевернуть таблицу в запросе
- использовать iPad mini как навигатор
- Очистка ТЧ документа в управляемой форме
- Кто должен писать техническое задание и почему?
- Проводка дт 99.09 кт 68.02 Округление до рублей УПП 1.3.51.3
- Бухгалтерия 3.0 изменение счета отнесения курсовых разниц
- ЗУП сотрудник уволен, затем через пару месяцев принят по договору подряда
- Макет табличного документа, как изменить ширину только для конкретной группы
- Динамические цены в УТ 11
- Некорректно работает программное сохранение диаграммы из табличного документа
- v7: Вывести данные из Регистра
- Запрос к регистру накопления
- Постоянно вылетает 1С
- Типовая ЗУП: как удалить вариант отчета ?
- Группировка СКД с использованием СоединитьСтроки