Задача [FORMS5]: Точка в названии компонентов формы

Формулировка проблемы: на данный момент доступ к значениям компонентов формы реестра, которые находятся внутри динамической таблицы, осуществляется при помощи составного идентификатора, содержащего идентификатор динамической таблицы (например, dyntable) и идентификатор компонента, содержащегося в ней (например, componentID), соединённых между собой точкой:

dyntable.componentID

В связи с такой реализацией даже «обычные» компоненты, которые не находятся внутри динамической таблицы, но содержат в своем имени точку, обрабатываются некорректно (например, они не попадают в список «Поля формы реестра»).

Решение: для того, чтобы предотвратить вышеописанную проблему, необходимо впредь запретить задавать компонентам идентификаторы, содержащие точку. Для этого в момент сохранения формы необходимо добавить валидацию на невозможность использования символа . (точка) в имени компонента. При попытке сохранить невалидное значение выдавать сообщение-ошибку (см. ниже) в левом нижнем углу редактора форм а также подсвечивать соответствующую ячейку красным цветом. При пересохранении идентификатора компонента выделение ячейки должно сняться.

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

Возможные ошибки:

Идентификаторы следующих компонентов не должны содержать точку: %id1%, %id2%, %id3%

В форме имеются компоненты с одинаковым идентификатором %id1%, %id2%, %id3%

После обновления системы проверка на невалидное значение имени компонента в уже существующих формах должна происходить только при открытии и последующем сохранении самой формы, которая содержит такой компонент.