Имя: Пароль:
1C
1С v8
КонвертацияДанных. ПКО ПослеЗагрузки
0 Droning1C
 
09.08.19
12:02
Добрый день. В правилах конвертации из УПП в БП в ПКО После загрузки пишу следующий код :
//Перезаполняем договор
    Если НЕ Объект.ДоговорКонтрагента.Номер = Объект.Номер Тогда
        
        НужныйДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(Строка(Объект.Номер + " от " + Формат(Объект.Дата,"ДФ=dd.MM.yyyy")));
        Если НЕ НужныйДоговор = Неопределено Тогда
            Объект.ДоговорКонтрагента = НужныйДоговор;
        Иначе
            НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
            НовыйДоговор.Владелец = Объект.Контрагент;
            НовыйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
            НовыйДоговор.Дата = Объект.Дата;
            НовыйДоговор.Номер = Объект.Номер;
            НовыйДоговор.ВидВзаиморасчетов = СтрокаВидВзаиморасчетов;
            НовыйДоговор.Наименование = Строка(Объект.Номер + " от " + Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
            НовыйДоговор.Записать();
            Объект.ДоговорКонтрагента = НовыйДоговор.Ссылка;
        КонецЕсли;
    КонецЕсли;


По итогу новый элемент спрвочника в базе приемнике не создается. В чем может быть проблема?
1 НадюшаЯ
 
09.08.19
12:05
а найти по наименованию разве неопределенно возвращает?
2 mikecool
 
09.08.19
12:05
всегда срабатывает Если НЕ НужныйДоговор = Неопределено Тогда
3 mikecool
 
09.08.19
12:05
+2 поскольку может вернуть пустуюссылку
4 mikecool
 
09.08.19
12:06
и вообще - во всяких непонятках встраивай Сообщить() и смотри отладочную инфу
5 НадюшаЯ
 
09.08.19
12:06
Ссылка на найденный элемент справочника.
Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка.
Если для справочника наименование не задано (длина = 0) и поиск выполняется по полному соответствию, то будет возвращено Неопределено.

Это из СП
6 Droning1C
 
09.08.19
12:06
Может тогда использовать ЗНАчениеЗаполнено(НужныйДоговор)
7 mikecool
 
09.08.19
12:07
(6) может быть
8 Droning1C
 
09.08.19
12:12
(7) ЗначениеЗаполнено() Тоже не подходит..
9 ДенисЧ
 
09.08.19
12:15
Если НужныйДоговор.Пустая() ...
10 НадюшаЯ
 
09.08.19
12:15
(8) ты же убрал НЕ перед значение заполнено правда
11 Droning1C
 
09.08.19
12:19
(10) я в такие моменты себя мутантом чувствую каким-то с урезанным набором хромосом) Конечно же НЕ не убрал) Спасибо! Все заработало!
12 Droning1C
 
09.08.19
12:22
Только вот дублируется теперь. Этот кусок кода вставлен в ПослеЗагрузки ПКО Реализации и СчетаНаоплатуПокупателя. При перекачке реализации подтягивается счет и там создается такой же договор. Хотя по идее условие

Если ЗначениеЗаполнено(НужныйДоговор) Тогда
  Объект.ДоговорКонтрагента = НужныйДоговор;


должно исключать подобные ситуации
13 НадюшаЯ
 
09.08.19
12:27
А точно этот кусок двоит? Делай сообщить, чтобы точно понять.
14 Droning1C
 
09.08.19
12:36
(13) понял. Объект для каждого ПКО разный и Строка(Объект.Номер + " от " + Формат(Объект.Дата,"ДФ=dd.MM.yyyy")) соответственно разные, ибо даты не совпадают
Закон Брукера: Даже маленькая практика стоит большой теории.