Имя: Пароль:
1C
1С v8
Проблема с пересохранением заказа, после изменения реквизита Предприятие 8.3 УТ 11.4
0 LuckyMMA
 
27.06.20
10:30
Доброго времени суток товарищи. У меня следующая проблема. Очень прошу помочь. Есть процедура по созданию заказов, т.е. заказы как и связанные с ним справочники создаются из crm системы. Но я решил переписать интеграцию под новое api crm, и тут начались проблемы. Данные с crm системы я собрал, до этого момента все ок, но когда я нахожу контрагента по инн, и обновляю его реквизит и записываю контрагента, то здесь также все ок. И когда я в существующий заказ пытаюсь «привязать» этого контрагента, то через отладчик также показывается, что реквизит заполнен. Но когда я открываю заказ в интерактивном режиме, то вижу что поле пустое. Подскажите, пожалуйста, в какую сторону копать. Заранее, очень благодарен.
1 LuckyMMA
 
27.06.20
10:32
Процедура СоздатьЗаказ(ТаблицаСделок, Настройки,WinHttp)
    Для Каждого Сделка Из ТаблицаСделок Цикл
        ДанныеКомпании = СоздатьТаблицу(Новый Структура("ДанныеКомпании"));
        СтрокаДанныхКомпании = ДанныеКомпании.Добавить();
        СтрокаДанныхКомпании.ДанныеКомпании = Сделка.ДанныеКомпании.Скопировать();
        Контрагент = СоздатьИлиНайтиКонтрагентаПартнера (ДанныеКомпании);
        Если Сделка.СтатусЗаказа = "На согласовании" Тогда
            Заказ = Документы.ЗаказКлиента.НайтиПоРеквизиту("ЭС_ИдАМО",Сделка.ИдСделки);
            Тест = Заказ.Контрагент;
            Если ЗначениеЗаполнено(Заказ) Тогда
                Заказ = Заказ.Ссылка.ПолучитьОбъект();
                Заказ.Контрагент = Контрагент;
                Заказ.Партнер = Контрагент.Партнер;
                Заказ.Договор = НайтиСоздатьДоговорКонтрагента(Контрагент,Настройки.Организация);
                Заказ.Записать();
                        


Функция СоздатьИлиНайтиКонтрагентаПартнера (ДанныеКомпании)
    Для Каждого Данные Из ДанныеКомпании Цикл
        Для Каждого Компания Из Данные.ДанныеКомпании Цикл
            Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",Компания.ИНН);
            Тест = Контрагент.ЭС_ИдАМО;
            Если ЗначениеЗаполнено(Контрагент) Тогда
                Контрагент = Контрагент.Ссылка.ПолучитьОбъект();
                Контрагент.ЭС_ИдАМО = Компания.ИдКомпании;
                Контрагент.Записать();
                Контрагент = Контрагент.Ссылка;
                Возврат Контрагент;
            Иначе
                Партнер    = Справочники.Партнеры.СоздатьЭлемент();
                Партнер.БизнесРегион = Компания.
                Контрагент     = Справочники.Контрагенты.СоздатьЭлемент();
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
КонецФункции
2 LuckyMMA
 
27.06.20
10:37
3 Сияющий в темноте
 
27.06.20
10:38
ты в функции возвращаешь объект,а в поле нужно писать ссылку.
поставь
возврат контрагент.ссылка;
4 Aleksey
 
27.06.20
10:46
(3)
Контрагент = Контрагент.Ссылка;
Возврат Контрагент;

Там или ссылка или неопределено, если не ЗначениеЗаполнено(Контрагент)
5 LuckyMMA
 
27.06.20
10:53
В отладке показывает, что ссылка. А может быть из-за: у меня в цикле обрабатывается 3 заказа, но только сейчас заметил, что во всех 3 заказах у меня один контрагент пытается "привязаться"?
6 Сияющий в темноте
 
27.06.20
15:48
а после компания точка зачем-то.