Имя: Пароль:
1C
1С v8
В КД 2.1 при конвертации 7->8 не срабатывает "НеСоздаватьОбъектЕслиНеНайден".
0 evgeniybel
 
22.09.21
15:23
В КД 2.1 при конвертации 7->8 не срабатывает "НеСоздаватьОбъектЕслиНеНайден".

В "При загрузке" документов пишу:

Если Объект.Дата < ДатаНачала Тогда
    Если ОбъектНайден Тогда
        НеЗамещатьОбъект = Истина;
    Иначе
           НеСоздаватьОбъектЕслиНеНайден = Истина;
    КонецЕсли;
КонецЕсли;

Это для того, чтобы не менялись и не грузились по ссылкам документы, расположенные раньше ДатаНачала.
Но при этом нужно, чтобы, если документ до ДатаНачала уже есть, то ссылка в загружаемом более позднем документе на него проставлялась. Поэтому нельзя просто не выгружать ранние документы в "Перед выгрузкой".

Так вот, "НеЗамещатьОбъект" нормально отрабатывает. Если документ, расположенные раньше ДатаНачала, находится по ссылке, то он подставляется, но не изменяется.
А вот "НеСоздаватьОбъектЕслиНеНайден" никак не хочет работать.
И вариант с "Отказ = Истина" тоже не помогает:

Если Объект.Дата < ДатаНачала Тогда
    Если ОбъектНайден Тогда
        НеЗамещатьОбъект = Истина;
    Иначе
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;
1 Ёпрст
 
22.09.21
15:39
Почитай хелп по обработчикам в кд.
В при загрузке нет отказа.
Втыкай в после загрузки
2 Aleksey
 
22.09.21
16:10
Что такое "НеСоздаватьОбъектЕслиНеНайден " у обработчиков в КД нет такого параметрах
3 Ёпрст
 
22.09.21
16:35
(2) это параметр функции НайтиОбъектПоСсылке..
Не помню точно, можно ли его переопределять, как параметр из всяких Перед/после/при загрузки
4 Aleksey
 
22.09.21
16:54
(3) Там тоже такого нет
если
НеСоздаватьЕслиНеНайден – Булево. По умолчанию определяется в форме элемента правила конвертации объекта. Если Истина, то выполняется только поиск объекта в приемнике, новый объект не создается.
но это перед выгрузкой
5 evgeniybel
 
22.09.21
18:50
(4) Вот спасибо! "НеСоздаватьЕслиНеНайден" в "перед выгрузкой" рабротает!!!

Опишу окончательное решение.

---------------------------------------

*** Задача:

Нужно, чтобы при выгрузке из 7 в 8 ни при каких обстоятельствах не менялись и не загружались новые документы с датой, меньшей чем ДатаНачала.
И при этом, если в более позднем загружаемом документе присутствует ссылка на уже существующий документ с датой, меньше чем ДатаНачала, эта ссылка должна нормально загрузиться.

*** Решение:

в "Перед выгрузкой" документов пишем:

Если Источник.ДатаДок < ДатаНачала Тогда
    НеСоздаватьЕслиНеНайден = 1;
КонецЕсли;

в "При загрузке" документов пишем:

Если Объект.Дата < ДатаНачала Тогда
    Если ОбъектНайден Тогда
        НеЗамещатьОбъект = Истина;
    КонецЕсли;
КонецЕсли;
6 серый КТУЛХУ
 
22.09.21
19:00
нахрена так сложно?
Если Объект.Дата < ДатаНачала Тогда Отказ=Истина; Возврат; КонецЕсли;
7 evgeniybel
 
22.09.21
19:22
(6) потому что работать так не будет
8 серый КТУЛХУ
 
22.09.21
19:25
(7): у меня работает.
Независимо от того, куда вы едете — это в гору и против ветра!