Имя: Пароль:
1C
1С v8
Конвертация данных. Отмена записи объекта на этапе ПослеЗагрузки
0 Ymryn
 
27.08.14
10:45
Мое почтение. Собственно ситуация: Хочу выводить информацию о том, что объект с такими-такими свойствами не найден в базе после загрузки. Как следствие получить эти свойства могу только ПослеЗагрузки. Делаю проверку на ОбъектНайден и ставлю Отказ в Истина, если соответственно не найден. Но беда, объект все равно записывается, хоть и с пустыми полями (фактически записывается только сама ссылка/uid). Методом тыка нашел, что галочка "Не запоминать выгруженные объекты" практически решает проблему. Теперь создается только одна пустая ссылка. Хотелось бы узнать, а как можно еще избавиться и от неё (чтобы вообще ничего не создавалось)?

Загрузка идет в режиме обмена данных загрузка. Отменять его, как и вообще менять режимы загрузки не хочется, хочется решить вопрос настройками правил данных.
1 Ymryn
 
27.08.14
10:46
(0) *правил обмена данными. Заговариваюсь.
2 Ymryn
 
27.08.14
10:58
(0) проверил один момент. При установленной галочке создается пустая ссылка на 1ый объект. Все остальные объекты не создаются. Каждая последующая загрузка, создает также по 1 объекту после первого и не создает оставшиеся.  Пока что в упор, не понимаю, что происходит :(
3 Ymryn
 
27.08.14
10:59
(2) криво выразился, каждая последующая загрузка создает по 1 объекту из тех, что не были найдены в порядке очереди записи в файле.
4 Ymryn
 
27.08.14
11:11
Нашел нужную комбинацию галочек, благодарю всех посетивших тему за моральную поддержку. Благодаря вам у меня получилось.
5 Поpyчик-4
 
27.08.14
11:14
(4) Не за что, всегда рады.
Лучше в благодарность за моральную поддержку озвучь нужную комбинацию галочек
6 Ymryn
 
27.08.14
11:18
(5) "При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку" решает проблему. Галочка "Не запоминать ..." не нужна. Соответственно, поиск и сопоставление в этом случае проходит успешно, а новые объекты не создаются.
7 Ymryn
 
27.08.14
11:21
(6) + естественно с условием вышеописанной проверки. Если Отказ в истину не поставить, то объекты вполне создаются.
8 Aleksey
 
27.08.14
11:24
Какая то каша...


Обработчики "Правила конвертации объектов"

При загрузке

Событие выполняется после попытки идентификации. В случае успешной синхронизации доступен найденный объект. В противном случае его значение Неопределено. Можно произвести произвольную инициализацию, заполняемого данными объекта.

Параметры:

ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе

Причем тут После загрузки? Непонятно
9 Aleksey
 
27.08.14
11:26
И да в твоем случае галка называется "Не создавать новый объект в приемнике, если он НЕ найден"
10 Ymryn
 
27.08.14
11:29
(8) Потому что в ПриЗагрузке - Объект не заполнен данными загрузки. И мне нечего выводить пользователю. Также в ПриЗагрузке нету общей переменной Отказ (вот уж не знаю почему). Так что ПослеЗагрузки удобнее всего.
11 Ymryn
 
27.08.14
11:33
(9) указанная галочка отменяет заход в процедуру После загрузки, как следствие я не могу ничего сообщить пользователю, как следствие она не подходит.
12 Aleksey
 
27.08.14
11:37
(10) Чего? А параметр Объект на что?

(11) Ну тогда поля поиска, сам ищи сам и пиши, что "вай-вай не нашли"
13 Ymryn
 
27.08.14
11:41
(12) А параметр Объект заполняется после обработчика ПриЗагрузке. Т.е если этот самый объект не найден, то он пустой.
В ПослеЗагрузки также доступен ОбъектНайден. Поэтому вполне хватает проверить, что в нем и установить Отказ. Проблема была именно в том, что объект все равно создавался. Описанная выше галочка решает и эту проблему.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший