Окно редактирования для имеющегося справочника.
Добрый день
Господа, никак не могу разобраться с окнами редактирования.
Существуют сервисы в системе, на основании которых надо сделать интерфейс.
С GridArea всё хорошо, но при клике на запись, или нажатии на кнопку Изменить, выбрасывается исключение. Создавал из "Настроек справочников" через добавление существующего dataset, и с нуля создавал оба окна (наследуя от базовых разумеется)
Подскажите пожалуйста, о этапах создания таких окон. Видимо что то делаю я не правильно.
Буду очень благодарен за помощь, и разъяснение этого вопроса.
С уважением
Литвяков Егор
Нравится
Yegor, предлагаю ознакомиться с особенностью создания окон в этой статье .
А именно, изучите [Создание окна реестра раздела] и [Создание карточки редактирования].
Если создаете окно реестра и окно редактирования для справочника, необходимо:
1. В справочнике указать "Окно редактирования" и "Окно реестра".
2. В скрипте окна реестра на OnPrepare прописать заполнение атрибута 'EditWindowUSI':
function Initialize(Window) { SetAttribute(Window, 'EditWindowUSI', 'wnd_TaskPriorityEdit'); } function wnd_BaseGridAreaOnPrepare(Window) { Initialize(Window); scr_BaseGridArea.wnd_BaseGridAreaOnPrepare(Window); }
Где 'wnd_TaskPriorityEdit' - название окна редактирования
Наталия, действую в соответствии руководства, но при изменении имеющейся записи в БД (двойной клик или кнопка Изменить) выбрасывается исключение 80020102.
Возможно что то не корректно указано в настройках сервисов?
Какие настройки (обязательные) должны быть установлены у сопутствующих сервисов?
Yegor, выгрузите и вложите сервисы окон.
Так быстрее удастся разобраться в причине ошибки.
servises.7z
Возможно что то необходимое не было указано в tbl, sq и ds?
Я предположил что проблема может быть связана с отсутствием FK в таблице, но суть не в этом оказалась.
Yegor, протестировала сервисы. Так как Вы не вложили tbl, sq и ds, в сервисах окна связала dlData с ds_AccountAddress.
В результате, изменение записи из реестра окна wnd_ClientsDiscountCardsGridArea ошибок не вызвало и отрабатывает корректно.
Проверьте:
1. Заполнены ли свойства [Ключевое поле] и [Первичное поле для отображения] в датасете.
2. Заполнено ли свойство [Первичное поле для отображения] в таблице.
Если не удастся устранить ошибку, вложите полный набор сервисов.
Наталия, внёс указанные Вами замечания, и взял на заметку, но результат остаётся прежним.
Во вложении все участвующие сервисы.
Сервисы скачала, после тестирования напишу Вам результат.
Причина ошибки заключается в том, что Вы не добавили в sq фильтр ID.
Для устранения ошибки Вам необходимо:
1. В sq_ClientCartMain добавить параметр
2. Затем добавить фильтр сравнения
Наталия, спасибо огромное. Очень помогло.
Разобрался.