Имя: Пароль:
1C
1С v8
Форма констант. Изменение строкового значения через ВыделенныйТекст
0 PiotrLoginov
 
21.05.18
20:21
1. Не стоило столько курить 0% (0)
2. Современный - тот же прежний. Только вид сбоку 0% (0)
3. Редактирование констант - только программно 0% (0)
4. Даешь "современный" способ 0% (0)
5. Одна форма на все константы - идеальный вариант 0% (0)
Всего мнений: 0

Созрел выкатить голосовалку. Надеюсь на поддержку.
Если плохо искал сабж среди имеющихся веток, ткните, плиз.
Все умозаключения отталкиваются от принципов проектирования управляемых форм.

Итак. Сейчас в типовых достаточно интересный подход к формам редактирования констант: в той или иной обработке "Панель администрирования" создается форма констант, которая и показывается юзеру. Но устанавливается значение той или иной константы индивидуально (метод на сервере Установить()) при интерактивном изменении соответствующего флага. Назовем такой способ "современным".
<...>
Тут у меня пробел в знаниях. Т.е. я знал и раньше, что форма констант в том виде, в каком она создается по умолчанию, предполагает перезапись сразу всех констант, входящих в НаборКонстант. (Назовем такой способ "прежний".)

Но я лишь недавно задумался о том, что если редактирование констант организована в конфе именно "прежним" способом, то изменение значения одной (подчеркнуть) константы фактически приведет к перезаписи нескольких констант.

Вопрос: "прежний способ" вообще имеет право на применение? С точки зрения производительности, логики и осмотрительности. Как вы считаете?
1 PiotrLoginov
 
21.05.18
20:22
Сразу добавлю, что поднять вопрос меня сподвигло созерцание формы констант в одной нетленке, с которой сейчас приходится работать.
Автор её предлагает юзеру редактировать Общую форму с набором всех констант. При чем, если значение константы строковое, ее значение в поле ввода может устанавливаться программно следующим образом:

НовоеЗначениеКонстанты = //здесь выражение, получающее строку-значение
ЭтотОбъект.ТекущийЭлемент.ВыделенныйТекст = НовоеЗначениеКонстанты;


Т.е. автор не пишет значение напрямую в константу. Он меняет в поле ввода ВыделенныйТекст, рассчитывая, что потом, при записи набора констант, содержимое поля ввода попадет в константу, указанную в свойстве поля ввода ПутьКДанным.
2 PiotrLoginov
 
21.05.18
20:23
*При чем  = причем
3 b_ru
 
21.05.18
21:45
>>Вопрос: "прежний способ" вообще имеет право на применение? С точки зрения производительности, логики и осмотрительности. Как вы считаете?

Да, конечно имеет. Если конфигурация не высоконагруженная и константы не меняются каждые две минуты, то зачем заморачиваться?
4 Cyberhawk
 
21.05.18
23:06
"автор не пишет значение напрямую в константу. Он меняет в поле ввода ВыделенныйТекст, рассчитывая, что потом, при записи набора констант, содержимое поля ввода попадет в константу" // Что тебя смущает? Конечно же при интерактивном изменении нельзя записывать изменение в объект БД, а надо взводить модифицированность формы, что и сподвигает пользователя сохранять внесенные им изменения в БД
5 Cyberhawk
 
21.05.18
23:06
Однако писать можно и в реквизит формы "НаборКонстант.КонстантаТакаяТо" - эффект будет тот же
6 PiotrLoginov
 
22.05.18
06:46
(4) т.е. такой способ менять реквизит формы или свойство реквизита - не заполнять сам реквизит, а заполнять поле на форме - имеет право на жизнь. Ок. Но я первый раз с таким сталкиваюсь.
7 Cyberhawk
 
22.05.18
08:52
(6) Ну, этот способ позволяет изменить отображаемые элементом управления данные, не меняя значение в реквизите формы, который явлется источником данных для элемента управления.
Зачем так сделано там у тебя, где ты это видишь, отсюда не видно.
Я константы (в форме констант) меняю тупо в наборе констант (т.е. в реквизите формы), как сказано в (5) все нормуль (ну, кроме того, что все константы перезапишутся, да).
Для самых взыскательных - форму констант делать без набора констант, а с отдельныи реквизитами формы под каждую константу и после еще писать прикладной код по непосредственному обновлению значений самих констант в БД.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой