Dev ›
Программный вывод таблицы значений в таблицу на управляемой форме ›
#8
20.04.22 13:25
1. Случай, когда "ИмяРеквизитаФормы" не строка, не обработан. Взялись делать "защиту от дурака", как для типа "ТаблицаЗначенийДляВывода", так уж везде.
2. Подход, при котором сперва все колонки и элементы удаляются, может быть неверен - правильнее выяснять, есть ли нужный реквизит (и элемент формы) и просто его не трогать, либо донастраивать. А уж добавленные в конфигураторе вы так вообще не удалите.
3. Обращение "ПутьКДаннымФормыКоллекция = "Объект." + ИмяРеквизитаФормы;" не покрывает все случаи. Есть ещё "Отчёт", есть "Запись", в их формах тоже могут понадобиться таблицы значений. Равно как и само обращение к переменной "Объект".
4. Конструкция "Новый ОписаниеТипов(Колонка.ТипЗначения.Типы())" неверна - так вы не установите квалификаторы простых типов, и будет у вас всё для них по умолчанию. Правильнее было напрямую передать "Колонка.ТипЗначения". А ещё в типах Null попадается, и некоторые релизы при попытке объявить реквизит такого типа падают.
5. Проверять только на наличие типа "Тип" мало. Там любая "прелесть" может попасться, включая такую, что в данных формы фигурировать не может, и налетите на ошибку. Правильнее проверять на допустимые - их меньше, и их чётко видно при описании типа реквизита коллекции. И отдельно думать, что, если тип "Произвольный". Это очень такой подводный камень. Есть вообще такие, что храниться в коллекции могут, а вот в элементе будет показано только их строковое представление, вроде "Массив". И составные типы бывают очень не айс, и характеристики.
6. Мысль с флажками, может, и неплоха, но... Нет проверки на тип "Булево", да и, раз уж правка, вместо "РежимРедактированияКолонки.ВходПриВводе" хорошо бы "Непосредственно", так пользователям удобнее. Ну и картинки в колонках тогда уж, раз такая пьянка. Иконки, это бывает очень даже нужно. А ещё порой бывает надо 3 состояния флажка...
7. "НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода" - всегда прям? А ничего другого не бывает нужно? И править прям можно? См. вопрос про возможные типы. Много ли смысла для такого имеет кнопка открытия без перехвата её события?
8. Почему кнопка создания всегда "Ложь" и нельзя быстрый выбор, непонятно, т.к. бывает очень надо. Лучше бы, помимо умолчаний, передавать некое "описание" для нужных реквизитов, вроде массива структур или отдельной таблицы - кому чего включать и выключать.
9. Не скажу за все релизы, но некоторые не любят, когда путь к данным указывается после настройки кнопок, и сбрасывают эти настройки на умолчания.
10. "ОбщегоНазначенияКлиентСервер.СообщитьПользователю" - это из БСП. А она далеко не у всех.
Ну и по мелочам: "НЕ ЭлементКолонки = Неопределено" это два логических действия, лучше писать "ЭлементКолонки<>Неопределено".
Так - конкретнее?))