Не могу присвоить субконто в кассовых ордерах (импорт из операции)
Использую код:
Message(" Импорт приходного касового ордера - " + DocumentNumber);
if (EmptyValue(AccountID) = 0) then
Account = GetCurrentItemFind(AccountID, "sq_Account", "Reference.Контрагенты");
docDocument.Субконто = Account.CurrentItem();
elsif (EmptyValue(ContactID) = 0) then
Contact = GetCurrentItemFind(ContactID, "sq_Contact", "Reference.Конрагенты");
docDocument.Субконто = Contact.CurrentItem();
endif;
функция GetCurrentItemFind возвращает значение нормально, но оно не присваеваетса в docDocument.Субконто .
Ордера создаютса но с пустым Субконто (Вид Субконто в Счете = Контрагент) , подскажыте в чем причина??? И как эту проблему обойти....
Нравится
Добрый день, Павел!
В Вашем случае нужно убедиться, что:
1) все входные параметры для функции GetCurrentItemFind() заданы верно (т.е. AccountID - это действительно ID некоторого существующего контрагента)
2) в сервисе sq_Account есть все необходимые фильтры, с помощью Profiler убедиться, что запрос формируется правильный и возвращает результат
3) в функции GetCurrentItemFind() в наборе данных успешно считывается значение поля IntegrationID
4) и по найденному значению найден требуемый контрагент в системе
5) найденное значение можно успешно присвоить в поле docDocument.Субконто
Как видите, для выяснения причины необходима отладка кода в 1С.
Функция GetCurrentItemFind() возвращает значение нормально, вот выписка из дебагера :
DocumentNumber = "8" docDocument.Субконто = Сontact.CurrentItem() = Семен Іван Степанович ContactID = "{B4825837-5D7C-4529-B749-4ED8A128A550}"
но на следующем шаге :
docDocument.Субконто = Contact.CurrentItem();
docDocument.Субконто не изменяетса .
Этот же код работает нормально при импорте договоров.
if (EmptyValue(AccountID) = 0) then Account = GetCurrentItemFind(AccountID, "sq_Account", "Reference.Контрагенты"); docContract.Контрагент = Account.CurrentItem(); elsif (EmptyValue(ContactID) = 0) then Contact = GetCurrentItemFind(ContactID, "sq_Contact", "Reference.Контрагенты"); docContract.Контрагент = Contact.CurrentItem(); endif;
такшо здесь не проблема в GetCurrentItemFind().
Значит, проблема именно с присваиванием. Может быть, в docDocument.Субконто нельзя сохранить полученное значение (причины - ограничение доступа, неправильный тип или другая, неизвестная причина). Точно назвать причину ошибки затрудняюсь.