Тема: BalanceNmkCards.ClassificatorID
После обновления перестала работать группа скриптов, использующих свойство BalanceNmkCards.ClassificatorID
Обновление произошло с версии 6.3 до версии 7.9.98
Sub LocateNmkCards(NmkID,CARD_ID,CARD_NUMBER,LISTOV,N_ALBOM,FORMAT) 'Найти учетную карточку подлинника для NmkID Dim CEH_ID Dim BalanceNmkCards Dim ParCard CEH_ID = GetPlantDepartmentId( CehN ) ' CehN ="ОТД" Set BalanceNmkCards = TCSApp.Inventory.BalanceNmkCards( CEH_ID, NmkID ) BalanceNmkCards.Refresh I = BalanceNmkCards.ShowModal("Учетные карточки") 'показ формы для отладки, чтобы убедиться есть ли на самом деле карточка и её классификатор TCSApp.ShowErrorMessage("ИД цеха="+cstr(CEH_ID)+" / ищем номенклатуру, ИД=" + cstr (NmkID) + " / ИД классификатора в цеху="+cstr(BalanceNmkCards.ClassificatorID)) If BalanceNmkCards.ClassificatorID = -1 Then 'если у цеха нет такой номенклатуры CARD_ID = -1 TCSApp.ShowErrorMessage ("у цеха нет такой номенклатуры") Else 'если номенклатура есть If BalanceNmkCards.IsEmpty Then CARD_ID = -1 TCSApp.ShowErrorMessage ("учетная карточка пуста") Else BalanceNmkCards.First Do While Not BalanceNmkCards.Eof
Картинка №1 - результат выполнения "-1"
при запуске не может определить ИД классификатора цеха
, хотя и цех и классификатор существуют, и номенклатура находится (картинка №2 - вывел на форму)
p.s.
в ApiExplorer 7.9.98 вообще нет свойства "ClassificatorID" у объекта TCSApp.Inventory.BalanceNmkCards,
при это в ApiHelp его описание имеется.
p.p.s
в одном случае из 10 идентификатор классификатора всё таки выдаёт правильный ( в данном примере это 119), но поскольку в скрипте он запрашивается несколько раз, при следующем запросе скрипт снова вылетает с ошибкой.
Данные скрипты используются для всех действий управления движением подлинника документа (постановка на учёт, изготовление копий, внесение изменений по извещениям) (библиотека Archive_Uchet_Lib)