Публикация

Создание страницы редактирования для справочника (раздел "Справочники")

Вопрос

Как добавить карточку редактирования в этот справочник? Сейчас справочник редактируется с помощью редактируемого реестра. В карточку редактирования надо добавить деталь как в справочнике «Источник лида»

Ответ

Самый простой способ создания страницы редактирования, это создать на основе обхъекта справочника мастером деталей, деталь, и там, в этом мастере, на закладке "страница", скофигурировать внешний вид для будущей страницы редактирования, сохранить деталь, почистить кеш браузера и перезайти на сайт. После чего данная кнопка у справочника появится, т.к. ей будет куда вести (на страницу редактирования).

Либо создать по аналогии как в справочнике «Источник лида» (см. Схему «LeadSourcePageV2»).

Либо же попробовать вручную (см. приближенный пример, который по необходимо «дебажить»):

  • Создаем схему модели представления карточки, наследуемся от «BaseModulePageV2» вводя ее имя заголовка в поле «родительский объект», в разных конфигурациях может быть переведена по-разному, в нашем примере это «Страница активности V2».
  • Заполняем ее нужными полями, в нашем примере только Name, а объект в нашем примере называется «UsrAccStage»:
define("UsrAccStagePageV2", ["AccountPageV2Resources""GeneralDetails"],
    function(resources, GeneralDetails) {
        return {
            entitySchemaName: "UsrAccStage",
            details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
            diff: /**SCHEMA_DIFF*/[
                {
                    "operation": "insert",
                    "name": "Name",
                    "parentName": "Header",
                    "propertyName": "items",
                    "values": {
                        "bindTo": "Name",
                        "layout": {
                            "column": 0,
                            "row": 0,
                            "colSpan": 12
                        }
                    }
                }
            ]/**SCHEMA_DIFF*/,
            attributes: {},
            methods: {},
            rules: {},
            userCode: {}
        };
    });

Далее нашей целью является зарегистрировать связь страницы редактирования в базе данных в таблице «SysModuleEdit» через развязочную таблицу «SysModuleEntity» с сущностью объекта, в котором хранится информация. В нашем случае «UsrAccStage». Листинг SQL приводим ниже:

SELECT * FROM SysSchema Where Name = 'UsrAccStagePageV2'
-- UId карточки редактирования = 064A98B5-E6FE-47E7-B9A6-499561BD1347
SELECT * FROM SysSchema Where Name = 'UsrAccStage'
-- колонка UId объекта = E894EBA6-9FBB-4AA7-90E4-6A99B6CD5329
-- проверяем развязочную таблицу
SELECT * FROM SysModuleEntity
WHERE SysEntitySchemaUId = 'E894EBA6-9FBB-4AA7-90E4-6A99B6CD5329'
-- если нет там записи, добавляем:
INSERT INTO SysModuleEntity (SysEntitySchemaUId) VALUES ('E894EBA6-9FBB-4AA7-90E4-6A99B6CD5329')
-- проверяем развязочную таблицу
SELECT * FROM SysModuleEntity
WHERE SysEntitySchemaUId = 'E894EBA6-9FBB-4AA7-90E4-6A99B6CD5329'
-- берем от туда Id = 671F61D8-2E72-47A4-95C7-D67E2C8B723F
INSERT INTO SysModuleEdit (SysModuleEntityId, CardSchemaUId, ActionKindCaption,
ActionKindName, PageCaption) VALUES ('671F61D8-2E72-47A4-95C7-D67E2C8B723F''064A98B5-E6FE-47E7-B9A6-499561BD1347''Добавить нашу сущность','UsrAccStage','Стадия контрагента')
SELECT * FROM SysModuleEdit WHERE SysModuleEntityId = '671F61D8-2E72-47A4-95C7-D67E2C8B723F'

В итоге, наш справочник можно открывать страницей редактирования:

 

 

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать