|
В КД 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): у меня работает.
|
|