СтрокаТаблицыЗначений - незадокументированная особенность или баг?

1. program345 141 12.02.26 08:52 Сейчас в теме
Доброго дня!

СтрокаТаблицыЗначений (ValueTableRow)
Элементы коллекции:
Произвольный
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значения в колонке данной строки.
Возможно обращение к значению колонки данной строки посредством оператора [...]. В качестве аргумента передается индекс колонки (нумерация с 0).


Есть НоваяСтрока с типом СтрокаТаблицыЗначений
Почему когда я передаю строковое значение внутри [] возвращается её значение?
НоваяСтрока[ИмяКолонки]
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 12.02.26 09:05 Сейчас в теме
(1)
Прикрепленные файлы:
program345; +1 Ответить
4. program345 141 12.02.26 09:15 Сейчас в теме
(3) не знал такого...
16. o4karek 13.02.26 12:26 Сейчас в теме
(1)
Почему когда я передаю строковое значение внутри [] возвращается её значение?

https://its.1c.ru/db/v83doc#bookmark:dev:TI000000149
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000156
2. gybson 11 12.02.26 09:03 Сейчас в теме
Видимо где-то в другом месте документировано. Это почти везде работает. Например для справочника можно написать

ЭлементСправочника["Код"]
5. пользователь 12.02.26 11:34
Сообщение было скрыто модератором.
...
6. starik-2005 3268 12.02.26 13:04 Сейчас в теме
У раруса есть в жкх модуль свой, в котором есть функция получитьреквизитобъекта, в которой просто Возврат Объект[ИмяРеквизита]. Используется тамошними архаровцами далеко не только для объектов. Ну да, франч. У них такого полконфы.
7. RoyFincher 4 12.02.26 13:21 Сейчас в теме
(6) Ну работает же, конфигурация продается, приносит прибыль. А это главное мерило успеха.
8. gybson 11 12.02.26 19:47 Сейчас в теме
(6) В принципе правильно сделано же. Объект он и есть объект, все реквизиты уже в памяти и можно нарастить функционал если что. И нет ошибок сборки модуля.
9. starik-2005 3268 13.02.26 10:31 Сейчас в теме
(8)
Объект он и есть объект
А зачем функция тогда нужна? Просто объект.поле или объект[поле]. Но юзается это не только для объектов, но и для ссылок, например. Типа получитьблабла(ссылка, поле). Маразм.
10. antz 13.02.26 10:44 Сейчас в теме
(9) Серверная функция для вызова с клиента.
12. starik-2005 3268 13.02.26 10:47 Сейчас в теме
(10)
Серверная функция для вызова с клиента.
Так есть же общегоназначения в БСП такая функция.
15. antz 13.02.26 11:00 Сейчас в теме
(12) Ну нету у раруса бсп. Или готовить её не умеют. И студент, работающий за дошик, не полезет в бсп разбираться, а воткнёт вот такую функцию.
А у ОбщегоНазначения вызова сервера нет, надо все равно идти на сервер, чтобы ее вызвать, жутко бесит.
17. пользователь 13.02.26 12:53
Сообщение было скрыто модератором.
...
25. gybson 11 16.02.26 12:13 Сейчас в теме
(15) студента надо учить
иначе лет через 5 уже он будет всех учить втыкать свои функции и не использовать БСП

Хотя по моим наблюдениям мы уже давно упали в эту яму некомпетентности.
27. antz 16.02.26 13:36 Сейчас в теме
(25) Да-да, студенты давно стали куроводителями.
Одни вот я с тобой остались, которые читали "Чистый код")
11. gybson 11 13.02.26 10:46 Сейчас в теме
(9) Для ссылок маразм наверное
Делают метод посредник и для предопределенных значений, например. Чтобы было однообразие, меньше связанности. Потом проверки добавят, записи в лог или типа того.

Ну и компиляция модуля. Можно же сломать совсем конфигурацию, если в модуле с подпиской ошибка компиляции.

Т.е. это не безусловно плохая практика, надо прям смотреть. Может и просто собезьянничали.
13. starik-2005 3268 13.02.26 10:50 Сейчас в теме
(11)
Т.е. это не безусловно плохая практика, надо прям смотреть.
Там много такого. Например, есть модуль переопределяемый для доработок печатных форм, но рарус засунули код в основной модуль и в общую форму, который добавляет обработку сообщения для рассылки. Вот как это дорабатывать? Сам код хорошо отформатирован, но видно, что у них архитекторов нет, есть кодревьюшники, которые, походу, вообще не понимают, как и что надо делать. А еще у них есть документ про смс - это просто надо видеть.

С другой стороны, ну работает же.
14. gybson 11 13.02.26 10:58 Сейчас в теме
(13) У 1С уже давно есть метод для отправки письма по шаблону СформироватьИОтправить, который нарушает все принципы чистого кода и делает систему мало пригодной. Им норм :)
18. пользователь 13.02.26 12:54
Сообщение было скрыто модератором.
...
22. antz 16.02.26 09:37 Сейчас в теме
(14) 1С и принципы чистого кода, мухоха.
24. truba 16.02.26 12:08 Сейчас в теме
(6) вангую так, что кроме типов входных данных объект, ссылка, строка тз и т.д. туда мыслилось подавать на вход и немыслимое, у которого ни .ИмяРеквизита не определено, ни оператор [] не разыменовывает реквизит в значение.

Тогда все те абстракции, где используется ПолучитьРеквизитОбъекта() остаются работоспособными, а уже реализация интерфейса таких переменных возложена на модуль-прокладку. Возможно там какие-нибудь COM объекты бы и фигурировали.

Но задумывали отцы-основатели одно, реализовали другое, продали третье. Не переписывать же теперь с даунгрейдом общей идеи?

ПС, В некоторых релизах платформы при обращении к Ссылка.Реквизит безбожно течет память по кэшированию этих самых Ссылка.
19. vmeste 13.02.26 13:18 Сейчас в теме
Ну, не знаю....
Меня бесит вот такой код:
Модуль = ОбщегоНазначения.ОбщийМодуль(<ИмяМодуля>);
Модуль.<ИмяМетода>();
// в качестве имени модуля может быть имя общего модуля или менеджер объекта. В любом случае будет вызов: УстановитьБезопасныйРежим(Истина); Модуль = Вычислить(<ИмяМодуля>);
F12 не работает - не удобно. Как провалиться в таком случае в ИмяМетода?
SlavaKron; +1 Ответить
20. paramedic 13.02.26 14:03 Сейчас в теме
(19) Открываете модуль и переходите к нужному методу.
Совсем обленились ;)
vmeste; Sashares; +2 Ответить
21. vmeste 13.02.26 16:45 Сейчас в теме
(20) Да это понятно. Но ещё среди модулей надо по наименованию модуль найти. Прям напрягает. Столько лишних телодвижений.
Sashares; +1 Ответить
23. truba 16.02.26 12:02 Сейчас в теме
(19) Драйвера же? А как иначе?
26. gybson 11 16.02.26 12:16 Сейчас в теме
(19) Представьте что у вас расширение (или обработка), которое может работать почти во всех конфигурациях, но вызов одного именно метода происходит из разных модулей. Тогда и приходится так делать.
28. vmeste 16.02.26 21:11 Сейчас в теме
(26) Это ещё зачем представлять, что у меня расширение, когда это типовой код без расширения и везде? :-)
Всё равно, указывается откуда этот метод вызывается. Буквально в предыдущей строчке.
Весь этот геморрой из-за установки безопасного режима. Если модуль не найден или не найден объект конфигурации, то будет соответствующее сообщение об ошибке: не найден метод такой-то, там-то.
Это сообщение и так и так будет по сути.
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот