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

КонвертацияДанных. ПКО ПослеЗагрузки

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


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

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


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

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