(изменено: Jaaranare, 11 мая 2022 13:15:34)

Тема: Требуется узнать на какой номенклатуре застопорился модуль!

Здравствуйте! Пожалуйста, дайте совет!

Есть самописный модуль(программа) на VB, который производит обмен данными между ТКС и господипрости базами FOX. Один из компонентов модуля производит обновление контрольных сумм, в нем идёт обращение к номенклатуре чтобы обновить значение параметра контрольной суммы. Но возникает ошибка (см. картинку).
Номенклатур тонны...узнать на какой номенклатуре произошёл затык затруднительно!
Запускать голый SQL код (конкретно на котором затык) в SSMS опасно, боюсь заруинить базы.
Есть ли какая-то возможность или снять системный триггер\процедуру о запрете на редактирование таких номенклатур, или может узнать на какой он останавливается, чтоб руками изменить что-то?

прикладываю часть кода:
Form1.Label1.Caption = ""
         Form1.Label2.Caption = "Обновление контрольных сумм"
         Form1.Label3.Caption = ""
         Form1.Label1.Refresh
               
         TextSQL = "INSERT INTO NMK_PAR (NMK_ID, PAR_ID, NMK_PAR_VALUE, NMK_ATTACH) " + _
            "SELECT N.NMK_ID, 1606, HASHBYTES('SHA1', '0'), N.NMK_CLASSIF_TYPE_ID " + _
            "FROM NMK as N " + _
            "WHERE NOT EXISTS(SELECT * FROM NMK_PAR AS NP WHERE (NP.NMK_ID = N.NMK_ID AND PAR_ID = 1606)) " + _
            "   AND (N.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (N.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and N.NMK_NOTUSED = 'F'))"
         CnSql.Execute TextSQL
         
         TextSQL = "UPDATE VAL " + _
        "SET VAL.NMK_PAR_VALUE = (SELECT HASHBYTES( 'SHA1', (CAST(ISNULL(n.NMK_ID, 0) as varchar) + CAST(ISNULL(n.NMK_CLASSIF_TYPE_ID, 0) as varchar) + CAST(ISNULL(n.NMK_NOTE, 0) as varchar) + " + _
        "       CAST(ISNULL(n.NMK_NAME, 0) as varchar) + CAST(ISNULL(n.CREATE_DATE, 0) as varchar) + CAST(ISNULL(n.CHANGE_DATE, 0) as varchar) + " + _
        "       CAST(ISNULL(n.NMK_CLASSIF_ID, 0) as varchar) + CAST(ISNULL(KodVMZ, 0) as varchar) + CAST(ISNULL(Pokupn, 0) as varchar))) as HASHSUM " + _
        "   FROM NMK AS n " + _
        "   LEFT OUTER JOIN ( " + _
        "       SELECT NMK.NMK_ID, NMK_PAR.NMK_PAR_VALUE as Pokupn " + _
        "       From PAR " + _
        "       RIGHT OUTER JOIN NMK_PAR ON PAR.PAR_ID = NMK_PAR.PAR_ID " + _
        "       RIGHT OUTER JOIN NMK ON NMK_PAR.NMK_ID = NMK.NMK_ID " + _
        "       WHERE (PAR.PAR_CODE = 'GT_POKUPN') " + _
        "   ) AS ParPokupn ON n.NMK_ID = ParPokupn.NMK_ID " + _
        "   LEFT OUTER JOIN ( " + _
        "       SELECT NMK_ID, NMK_PAR_VALUE as KodVMZ " + _
        "       From NMK_PAR " + _
        "       Where (PAR_ID = 1253) " + _
        "   ) ParKodVMZ ON n.NMK_ID = ParKodVMZ.NMK_ID " + _
        "   WHERE n.NMK_ID = val.NMK_ID " + _
        "       and ((n.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (n.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and n.NMK_NOTUSED = 'F'))))"
        TextSQL = TextSQL + "FROM NMK_PAR as VAL " + _
        "WHERE VAL.PAR_ID = 1606 " + _
        "   AND VAL.NMK_PAR_VALUE <> (SELECT HASHBYTES( 'SHA1', (CAST(ISNULL(n.NMK_ID, 0) as varchar) + CAST(ISNULL(n.NMK_CLASSIF_TYPE_ID, 0) as varchar) + CAST(ISNULL(n.NMK_NOTE, 0) as varchar) + " + _
        "       CAST(ISNULL(n.NMK_NAME, 0) as varchar) + CAST(ISNULL(n.CREATE_DATE, 0) as varchar) + CAST(ISNULL(n.CHANGE_DATE, 0) as varchar) + " + _
        "       CAST(ISNULL(n.NMK_CLASSIF_ID, 0) as varchar) + CAST(ISNULL(KodVMZ, 0) as varchar) + CAST(ISNULL(Pokupn, 0) as varchar))) as HASHSUM " + _
        "   FROM NMK AS n " + _
        "   LEFT OUTER JOIN ( " + _
        "       SELECT NMK.NMK_ID, NMK_PAR.NMK_PAR_VALUE as Pokupn " + _
        "       From PAR " + _
        "       RIGHT OUTER JOIN NMK_PAR ON PAR.PAR_ID = NMK_PAR.PAR_ID " + _
        "       RIGHT OUTER JOIN NMK ON NMK_PAR.NMK_ID = NMK.NMK_ID " + _
        "       WHERE (PAR.PAR_CODE = 'GT_POKUPN') " + _
        "   ) AS ParPokupn ON n.NMK_ID = ParPokupn.NMK_ID " + _
        "   LEFT OUTER JOIN ( " + _
        "       SELECT NMK_ID, NMK_PAR_VALUE as KodVMZ " + _
        "       From NMK_PAR " + _
        "       Where (PAR_ID = 1253) " + _
        "   ) ParKodVMZ ON n.NMK_ID = ParKodVMZ.NMK_ID " + _
        "   WHERE n.NMK_ID = val.NMK_ID " + _
        "       and ((n.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (n.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and n.NMK_NOTUSED = 'F'))))"
         CnSql.Execute TextSQL
         
        End If

Post's attachments

ошибко.PNG 7.98 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: Требуется узнать на какой номенклатуре застопорился модуль!

Здравствуйте! ну мы в БД напрямую лезть конечно не рекомендуем, и нигде инфы такой не даем.

У нас для этого вообще то АПИ есть. Большая часть задач рещается через АПИ без проблем. Может помедленнее будет, зато поддерживать проще, от конкретной версии меньше зависит, ну и работает в рамках возможностей самой системы.

По сути, это какой то главный документ номенклатуры своим статусом запрещает ее изменение в БД.

Судя по коду, обойти это будет довольно проблематично, пока вы не измените статус этого документа или не удалите его связь с номенклатурой.

Потом может и сработает, но не гарантируется, так как сильно от версии зависит такое.

Обратитеcь пожалуйста в техническую поддержку https://www.technologics.ru/support.html (technologics@csoft.ru), тут нашим специалистам нужно подумать и посоветовать как лучше быть в данном случае.

(изменено: Jaaranare, 11 мая 2022 16:34:33)

Re: Требуется узнать на какой номенклатуре застопорился модуль!

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

Обратитеcь пожалуйста в техническую поддержку https://www.technologics.ru/support.html (technologics@csoft.ru), тут нашим специалистам нужно подумать и посоветовать как лучше быть в данном случае.


Благодарю, попробую!

Re: Требуется узнать на какой номенклатуре застопорился модуль!

Затруднение удалось решить благодаря ответу техподдержки! На случай, если кто-то находится в похожем затруднении, я выкладываю метод решения!
См прикреп.

Post's attachments

решение.JPG 126.38 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.