Тема: 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"
BalanceNmkCards.ClassificatorID
при запуске не может определить ИД классификатора цеха
, хотя и цех и классификатор существуют, и номенклатура находится (картинка №2 - вывел на форму)
BalanceNmkCards.ClassificatorID

p.s.
в ApiExplorer 7.9.98 вообще нет свойства "ClassificatorID" у объекта TCSApp.Inventory.BalanceNmkCards,
при это в ApiHelp его описание имеется.
p.p.s
в одном случае из 10 идентификатор классификатора всё таки выдаёт правильный ( в данном примере это 119), но поскольку в скрипте он запрашивается несколько раз, при следующем запросе скрипт снова вылетает с ошибкой.

Данные скрипты используются для всех действий управления движением подлинника документа (постановка на учёт, изготовление копий, внесение изменений по извещениям) (библиотека Archive_Uchet_Lib)

Re: BalanceNmkCards.ClassificatorID

А вы как на 7.98 перешли? Одним обновлением сразу, или все таки сначала 7-ка была, потом перешли на 7.98?

Re: BalanceNmkCards.ClassificatorID

Олег Зырянов пишет:

А вы как на 7.98 перешли? Одним обновлением сразу, или все таки сначала 7-ка была, потом перешли на 7.98?

Одним обновлением. 7ка в процессе обновления была конечно установлена... Минут 30. Эти скрипты не проверяли на ней.

Re: BalanceNmkCards.ClassificatorID

Тогда еще уточнить.

Вы взяли дистрибутив 7.X, обновили программой обновления из этого дистрибутива.Затем взяли дистрибутив 7.98 и обновили до последней версии. Так?

(изменено: kondopog2005, 18 октября 2022 15:56:30)

Re: BalanceNmkCards.ClassificatorID

Олег Зырянов пишет:

Тогда еще уточнить.

Вы взяли дистрибутив 7.X, обновили программой обновления из этого дистрибутива.Затем взяли дистрибутив 7.98 и обновили до последней версии. Так?

Да. При этом, обновление базы, конфигуратора и т.п. проводилось из соответствующего меню дистрибутива, а обновление клиентских мест путём указания в конфигураторе ссылки на папку самого дистрибутива.

Я понимаю вопрос к тому, что какие-то модули не установились?

Update:
проблема существовавшая с программными модулями решена. По апи вопрос сохраняется.

Re: BalanceNmkCards.ClassificatorID

У нас при переходе на 7.X где то неправильно обновились классификаторы учетных карточек.
С какой-то версии поправили, должно быть нормально. Но классификация (если вы ее вели) при этом сбросилась.
Должно быть видно в имеющихся учетных карточках (они с классификатором не бьются) (подробнее надо искать описание, там не простая ситуация была).

Очень похоже не вашу ситуацию.

В итоге самый простой, быстрый и правильный вариант: если вы ничего не наработали в новой БД, взять старую БД, обновить ее программой обновления 7.98 (там должно быть все исправлено). После этого должны правильно сохраниться ваши данные, ну и видимо перечисленные здесь ошибки исчезнут.

Если данные в новой БД уже наработаны - то тут можно поискать и подготовить скрипт который исправляет это поведение, но при этом классификация потеряется (карточки все упадут в корень).

Re: BalanceNmkCards.ClassificatorID

Олег Зырянов пишет:

У нас при переходе на 7.X где то неправильно обновились классификаторы учетных карточек.
С какой-то версии поправили, должно быть нормально. Но классификация (если вы ее вели) при этом сбросилась.
Должно быть видно в имеющихся учетных карточках (они с классификатором не бьются) (подробнее надо искать описание, там не простая ситуация была).

Очень похоже не вашу ситуацию.

В итоге самый простой, быстрый и правильный вариант: если вы ничего не наработали в новой БД, взять старую БД, обновить ее программой обновления 7.98 (там должно быть все исправлено). После этого должны правильно сохраниться ваши данные, ну и видимо перечисленные здесь ошибки исчезнут.

Если данные в новой БД уже наработаны - то тут можно поискать и подготовить скрипт который исправляет это поведение, но при этом классификация потеряется (карточки все упадут в корень).

Спасибо за информацию. Очень похоже, что действительно так. Пришлите пожалуйста скрипт, который вы упомянули.

Re: BalanceNmkCards.ClassificatorID

его готовить надо. Точную версию БД скажите.

Re: BalanceNmkCards.ClassificatorID

Олег Зырянов пишет:

его готовить надо. Точную версию БД скажите.

Версия: 7.98.0.0(40699-beta) Db 7.98.49.0

Re: BalanceNmkCards.ClassificatorID

https://csdn.csoft.ru/public/7.98.0.49.0.DBSP.zip

Распакуйте. Поместите файл по пути C:\DBSP.dat. Запустите программу обновления БД. При соединении будет предложено использовать данный файл. Согласитесь. Выполните исправление ошибок. После обновление файл с диска C: удалите.

Рекомендуется сделать бакап БД перед выполнением операции.