Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

В КД 2.1 при конвертации 7->8 не срабатывает "НеСоздаватьОбъектЕслиНеНайден".

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

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

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

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

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

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

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

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

*** Задача:

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

*** Решение:

в "Перед выгрузкой" документов пишем:
Если Источник.ДатаДок < ДатаНачала Тогда
    НеСоздаватьЕслиНеНайден = 1;
КонецЕсли;

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

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.