Создание страницы редактирования для справочника (раздел "Справочники")
Вопрос
Как добавить карточку редактирования в этот справочник? Сейчас справочник редактируется с помощью редактируемого реестра. В карточку редактирования надо добавить деталь как в справочнике «Источник лида»
Ответ
Самый простой способ создания страницы редактирования, это создать на основе обхъекта справочника мастером деталей, деталь, и там, в этом мастере, на закладке "страница", скофигурировать внешний вид для будущей страницы редактирования, сохранить деталь, почистить кеш браузера и перезайти на сайт. После чего данная кнопка у справочника появится, т.к. ей будет куда вести (на страницу редактирования).
Либо создать по аналогии как в справочнике «Источник лида» (см. Схему «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'
В итоге, наш справочник можно открывать страницей редактирования: