Ошибка открытия раздела

Здравствуйте!

Понадобилось добавить деталь "Цены" в продукты. Я открыл TSClient с параметром /wnd=wnd_CreateNewWorkspace. По ошибке сначала создал деталь с уже существующим именем, на что он ругнулся в логе красным шрифтом и деталь не создал (создал только сервисы без добавления в воркспейс, эти сервисы я удалил). Но второй раз прошло все хорошо и деталь в разделе появилась. Но теперь при открытии этого раздела в клиенте вылазит ошибка:

Что могло случится? Удаление созданной детали и всех ее сервисов с чисткой в скрипте воркспейса не помогла. Чистка кэша и профиля тоже.

Вот данные дебагера:

Help

Нравится

18 комментариев

Здравствуйте, Дмитрий.

Скорее всего, при отработки функции Services.DeserializeItemFromProfile() в приведенном Вами коде, вызывается событие OnProfileDeserialize окна раздела "Продукты" (wnd_OfferingsWorkspace). Посмотрите на обработчик данного события. Попробуйте его переопределить, а в теле обработчика вызвать базовый метод wnd_BaseWorkspaceOnProfileDeserialize.

Сделал как Вы сказали. Теперь другая ошибка:

Вот как изменил вызов функции:

Эх, что-то я где-то испортил, буду благодарен за помощь!

Дмитрий, попробуйте просто отключить признак "сохранять в профиль" нового раздела и повторно очистить профиль.

Не совсем понятно. Где это отключается? И это не новый раздел, это стандартный раздел "Продукты", который перестал работать после вышеописанных действий.

Дмитрий, свойство UseProfile в сервисе окна раздела. Установите его в false, почистите профиль.

Хм, там уже стоял false. Попереключал туда сюда, почистил профиль. Одно и то же.

Дмитрий, напишите на support@terrasoft.ru - будем планировать удаленное подключение.

"Олейник Дмитрий" написал:

Дмитрий, напишите на support@terrasoft.ru - будем планировать удаленное подключение.

С уважением,

Олейник Дмитрий


Добрый день
как решилась эта проблема?
у меня аналогичная ситуация

Здравствуйте, Евгений.

Прошу детализировать, какие действия предшествовали появлению Вашей проблемы?

"Евдокимов Евгений" написал:
Олейник Дмитрий пишет:

Дмитрий, напишите на support@terrasoft.ru - будем планировать удаленное подключение.

С уважением,

Олейник Дмитрий

Добрый день

как решилась эта проблема?

у меня аналогичная ситуация

Евгений, проблема решилась добавлением обработчика OnProfileDeserialize в скрипте окна wnd_BaseWorkspace.

Наиболее вероятная причина сбоя - был удален важный кусок кода при "чистке" остатков раздела.

"Alimova Anna" написал:
Евдокимов Евгений пишет:

Олейник Дмитрий пишет:

Дмитрий, напишите на support@terrasoft.ru - будем планировать удаленное подключение.

С уважением,

Олейник Дмитрий

Добрый день

как решилась эта проблема?

у меня аналогичная ситуация

Евгений, проблема решилась добавлением обработчика OnProfileDeserialize в скрипте окна wnd_BaseWorkspace.

Наиболее вероятная причина сбоя - был удален важный кусок кода при "чистке" остатков раздела.

Мой блог: http://www.community.terrasoft.ru/blog/35356

этот метод уже там добавлен

function wnd_BaseWorkspaceOnProfileDeserialize(Window, Node) {
BaseWorkspace.SavedGroupID = Node.GetAttributeAsStr('SavedGroupID', '');
CreateQueriesDetails();
}

и тем не менее ошибка продолжает появлсятья

"Безродный Андрей" написал:

Здравствуйте, Евгений.

Прошу детализировать, какие действия предшествовали появлению Вашей проблемы?

Здравствуйте
Создал новый раздел, окно унаследовал от wnd_baseworckspace
ошибка стала сразу появляться

Евгений, как минимум, у Вас в скрипте нового окна, ветоянее всего, не объявлена переменная BaseWorkspace.

Покажите, пожалуйста, какой скрипт привязан к новому окну? Также желательно предоставить полный текст скрипта нового окна.

"Alimova Anna" написал:

Евгений, как минимум, у Вас в скрипте нового окна, ветоянее всего, не объявлена переменная BaseWorkspace.

Покажите, пожалуйста, какой скрипт привязан к новому окну? Также желательно предоставить полный текст скрипта нового окна.

Мой блог: http://www.community.terrasoft.ru/blog/35356

прилагаю скриншоты окна и скрипта

Евгений, так ведь у Вас в скрипте нет обработчика сериализации профиля. Вам нужно открыть в редакторе окна перейти на вкладку "События" (это там, где свойства), найти обработчик OnProfileDeserialize и сделать на нем двойной клик, чтобы автоматически создался обработчик события в скрипте.

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

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

коды вернул обратно, как Вы написали теперь работает
Спасибо за помощь.

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