Ошибка: '' is not a valid GUID value возникает часто на врсиях 3.4 при сохранении карточки с Lookup связвнным с PROJECTS

Для устранения проблемы выполнить, следующие действия:

  1. Запустить Terrasoft Administrator под пользователем с правами Администратора системы.
  2. Открыть сервис ds_TaskScript (Tasks\General\Main Grid\ds_TaskScript).
  3. Найти функцию function SelfOnDatasetBeforePost(Dataset, DoPost) и замените ее на приведенную ниже (с внесенными поправками):

function SelfOnDatasetBeforePost(Dataset, DoPost) {
/* MODULE PROJECTS */
                var ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');   
               
                if (!IsEmptyValue(ProjectID)){                   
                var ProjectDataset = Services.GetNewItemByUSI('ds_Project');           
                if (!GetIsCanEditRecord(ProjectDataset, ProjectID)) {
                               ShowInformationDialog(TaskByProjectCanNotEdit);
                               DoPost.Value = false;
                               return;
                }
                }
/* ENDMODULE PROJECTS */
                ds_TaskScript.IsAppend = (Dataset.State == dstInsert);
                if ((ds_TaskScript.IsAppend) &&
                               (Dataset.Values('AuthorID') != Connector.CurrentUser.ContactID)) {
                               Dataset.Values('AuthorID') = Connector.CurrentUser.ContactID;
                }
                PrepareRemindVariables(Dataset);
                ds_TaskScript.OldContactID = Dataset.DataFields('ContactID').OldValue;        
}

Затем найдите функцию function SelfOnDatasetBeforeDelete(Dataset, DoDelete) и замените ее на исправленный вариант:

function SelfOnDatasetBeforeDelete(Dataset, DoDelete) {
                ds_TaskScript.DeleteTaskID = Dataset.Values('ID');
/* MODULE PROJECTS */
                ds_TaskScript.ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');
                ds_TaskScript.ProjectTeamRoleID = GetDatasetFieldValue(Dataset, 'ProjectTeamRoleID');
                var ProjectDataset = Services.GetNewItemByUSI('ds_Project');
                   if (!IsEmptyValue(ds_TaskScript.ProjectID)){ 
                if (!GetIsCanEditRecord(ProjectDataset, ds_TaskScript.ProjectID)) {
                               ShowInformationDialog(TaskByProjectCanNotEdit);
                               DoDelete.Value = false;
                               return;
                }
                }
/* ENDMODULE PROJECTS */
                ds_TaskScript.CycleTaskParamID = GetDatasetFieldValue(Dataset, 'CycleTaskParamID');
}

Сохраните внесенные изменения. Перезапустите приложение Terrasoft. Проверьте работу функционала.

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Нравится

2 комментария

Проделал все что описано выше не помогло. Ошибка выходит в администраторе через некоторое время после запуска.

Здравствуйте.
Ваш вопрос решается в рамках обращения 0250440. На самом деле источник проблемы заключается в реализации бизнес-процесса. В телефонном режиме Вам были предоставлены рекомендации по изменению логики процесса, а именно: "провести шаги процесса через таймер на проверку условия".

Показать все комментарии