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

Проблема с пересохранением заказа, после изменения реквизита Предприятие 8.3 УТ 11.4

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


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

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

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