Не могу присвоить субконто в кассовых ордерах (импорт из операции)
Использую код:
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() возвращает значение нормально, вот выписка из дебагера :
[javascript]
DocumentNumber = "8"
docDocument.Субконто =
Сontact.CurrentItem() = Семен Іван Степанович
ContactID = "{B4825837-5D7C-4529-B749-4ED8A128A550}"
[/javascript]
но на следующем шаге :
[javascript]
docDocument.Субконто = Contact.CurrentItem();
[/javascript]
docDocument.Субконто не изменяетса .
Этот же код работает нормально при импорте договоров.
[javascript]
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;
[/javascript]
такшо здесь не проблема в GetCurrentItemFind().
Значит, проблема именно с присваиванием. Может быть, в docDocument.Субконто нельзя сохранить полученное значение (причины - ограничение доступа, неправильный тип или другая, неизвестная причина). Точно назвать причину ошибки затрудняюсь.