Доброго времени суток!
Версии 7.10.1
Работаю в своей базе. Создал мастером на заказе вторую страницу. Сгенерированное
мастером название переименовал на OrderPageRequestV2. Все работает.
Залился в хранилище. После восстановления из хранилища в другой базе выбираю по кнопке "Добавить" вторую страницу. Она открывается. После заполнения и сохранения закрываю. Вновь открываю заказ, но открывается почему-то первая страница OrderPageV2. Если в адресной строке поменять OrderPageV2 на OrderPageRequestV2, то откроется OrderPageRequestV2. Зашел в мастер, а там почему-то в настройках "Использовать одну страницу для всех записей". Пробовал перегенерировать коды, скомпилироваться еще раз, обновить структуру бд, установить данные. Не помогло. Начал сравнивать таблицы двух бд.
Обнаружил:
1)В таблице SysModule(база, где имеется проблема) в записи Заказы в поле Attribute
отсутствует значение. Скопировал, добавил
2)В таблице SysModuleEdit запись, где в поле CardSchemaUId должно содержать Uid второй страницы,
отсутствовало. Добавил.
Не помогло.
Может еще в каких-то таблицах нужно проверить?
Заранее благодарен
Нравится
Кирилл, здравствуйте!
Если мы правильно понимаем, то у Вас слетела типизация страниц. Вам необходимо в SysModuleEntityId для нужного раздела прописать TypeColumnUId. Примерный скрипт ниже:
DECLARE @TableName SYSNAME = 'Contact'; -- название объекта
DECLARE @ColumnName SYSNAME = 'TypeId'; --- название колонки по которой происходит типизация
DECLARE @EntitySchemaColumnUId UNIQUEIDENTIFIER;
SELECT
@EntitySchemaColumnUId = CAST(value AS UNIQUEIDENTIFIER)
FROM fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', @TableName, 'column', @ColumnName)
WHERE name = 'TS.EntitySchemaColumn.UId';
UPDATE sme
SET sme.TypeColumnUId = @EntitySchemaColumnUId
FROM SysModuleEntity sme
JOIN SysModule sm ON sme.Id = sm.SysModuleEntityId
WHERE sm.Code = @TableName;