![]() |
|
В типовой розница 2.3 встретился такой код | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
18.01.25
✎
10:57
|
Я не понимаю, как можно, как не стыдно?
Розница 2.3.21.19 Кстати, в стандартах есть обязательное объявление всех локальных переменных?
|
|||
1
Волшебник
18.01.25
✎
10:59
|
Какая гадость эта ваша динамическая типизация!
https://vkvideo.ru/video-3183750_456245220 |
|||
2
TormozIT
гуру
18.01.25
✎
12:07
|
(0) Причем тут переменные? Тут "Знач" у параметра "Кодировка" не хватает и некорректный документирующий тип указан у вызова функции (видимо вследствие копирования куска кода)
|
|||
3
Web00001
18.01.25
✎
13:40
|
(0)Я не понимаю, здесь
Я не понимаю, как можно, как не стыдно? Ты недоволен, что код написан как-то неправильно. Но вот здесь:
Кстати, в стандартах есть обязательное объявление всех локальных переменных? Ты говоришь, что у тебя не хватает силы воли открыть ИТС. Ты или крестик сними или трусы надень. Или ты знаешь как писать код по стандартам, либо другим не указываешь как надо писать. |
|||
4
AAA
18.01.25
✎
13:45
|
(3)что Вы такой агрессивный ?) будьте добрее
|
|||
5
Web00001
18.01.25
✎
13:49
|
(4)Никого не оскорбил. Не назвал идиотом. Не обещал втоптать в гавно за неправильные вопросы, как здесь любят(особенно ВР). Просто вижу противоречивые абзацы - подсвечиваю.
|
|||
6
AAA
18.01.25
✎
13:53
|
(5) ну ок )
|
|||
7
Гений 1С
гуру
18.01.25
✎
14:35
|
(3) я не в 1с работаю. Не на всю страну выставляю свой код
|
|||
8
Злопчинский
18.01.25
✎
15:05
|
А поясните тупому мне попроще, что здесь не так?
|
|||
9
Garykom
гуру
18.01.25
✎
17:10
|
(0) И чего тебе не нравится?
Классика же передать в процедуру параметр и получить его заполненным В платформе 1С это почти везде так Например Значение = Неопределено; ЕстьСвойство = НекаяСтруктура.Свойство(Ключ, Значение); // Значение заполнится |
|||
10
Garykom
гуру
18.01.25
✎
17:09
|
(8) Есть проблема в неожиданной замене типа переменной Кодировка
Можно передать строку Кодировка = "UTF-8" а получить Кодировка = КодировкаТекста.UTF8 |
|||
11
Кирпич
18.01.25
✎
17:12
|
(8) Гений тупанул просто. не бери в голову
|
|||
12
Garykom
гуру
18.01.25
✎
17:16
|
(11) Но нельзя не признать что код на скрине (0) слегка того
Ибо массив имен файлов, кто гарантирует что все файлы имеют одну кодировку? И странный повторный вызов .ПолучитьКодировкуФайла сначала с параметром, затем без него - явно говнокодили |
|||
13
Кирпич
18.01.25
✎
17:18
|
(12) "сначала с параметром, затем без него"
Ну может так и надо. Мы же логику не знаем. А смотреть лень. Да и вероятность того, что Гений затупил очень высока. |
|||
14
Гений 1С
гуру
18.01.25
✎
17:18
|
(12) от 1с такого не ожидал
|
|||
15
Garykom
гуру
18.01.25
✎
17:20
|
(13) Если глядя на код сразу непонятно что он делает - это хреновый код
Не спорю что возможно оно работает, но что это говнокод не отменяет |
|||
16
Кирпич
18.01.25
✎
17:20
|
+(13) без параметра вызывают наверное потому что там по умолчанию что то хорошее есть
|
|||
17
Garykom
гуру
18.01.25
✎
17:22
|
(14) в 1С много организаций и сотрудников
встречаются разные да до недавнего времени Розница и БП были наилучшими по качеству кода к сожалению это уже не так |
|||
18
Кирпич
18.01.25
✎
17:22
|
(15) ты по трем строчкам, вырванным из контекста, хочешь что то понять?
И не Гению придираться к коду какому нибудь. Он сам пишет как курица лапой. |
|||
19
Garykom
гуру
18.01.25
✎
17:27
|
(18) как минимум вижу что функция "ПолучитьКодировкуФайла" криво написана и неудобна в использовании
почему не добавить в нее параметр "ВозвращатьКодировкуПоУмолчанию = Ложь" ? Тогда двойной вызов не нужен |
|||
20
Кирпич
18.01.25
✎
17:28
|
(19) Ну ты сходи посмотри сначала на функцию. Может там что то гениальное :)
|
|||
21
Гений 1С
гуру
18.01.25
✎
18:15
|
(19) или сделать две функции
(18) в данном случае все понятно. Если на вход подать кодировку, а не строку, будет исключение, потому что она рид-онли. |
|||
22
Гений 1С
гуру
18.01.25
✎
18:16
|
(17) розницу 2.3 скрестили с УНФ 3.0 с приоритетом УНФ, получился некий странный гибрид
|
|||
23
Кирпич
18.01.25
✎
18:33
|
(21) "Если на вход подать кодировку, а не строку, будет исключение"
Да не будет никакого исключения. С чего вдруг? |
|||
24
Кирпич
18.01.25
✎
18:38
|
+(23) Динамическая типизация! Тебе ж в (1) сразу объяснили :)
|
|||
25
Кирпич
18.01.25
✎
18:55
|
"будет исключение, потому что она рид-онли"
20 лет Гений жил в неведении. Вот так вот быть писателем, а не читателем. :) |
|||
26
Кирпич
18.01.25
✎
19:08
|
Хотя нет. Прошу прощения, я сам затупил. И правда "недоступно для записи"
|
|||
27
Фокусник
18.01.25
✎
21:37
|
(0) Работает?
|
|||
28
Garykom
гуру
18.01.25
✎
21:47
|
(26) да смена типа переданного параметра в процедуре это частая хрень в типовых
в ДО 2.1 такое есть там это до маразма доходит, когда реквизит формы передают так и заполняют |
|||
29
Guk
18.01.25
✎
22:18
|
нормальный код. что не так?...
|
|||
30
Гений 1С
гуру
19.01.25
✎
11:53
|
(29) проснулся. уже объяснили что не так. ЗНАЧ забыли написать студенты с Селезневской.
|
|||
31
d4rkmesa
гуру
19.01.25
✎
12:20
|
Если придираться к стандартам, то еще Получить* в названии функции лишнее.
|
|||
32
Волшебник
19.01.25
✎
12:29
|
(31) Кстати, странно, что это не функция, а процедура. Но если она работает в отложенном режиме, то должна называться что-то типа НачатьПолучение...
|
|||
33
d4rkmesa
гуру
19.01.25
✎
12:33
|
(32) Я про функцию ПолучитьКодировкуФайла(...). Но, в процедурах Получить* тоже лишнее, т.к. возникают ассоциации с Get*, лучше что-то вроде ПрочитатьСодержаниеТекстовыхФайлов(...) или ЗаполнитьСодержаниеТекстовыхФайлов(...).
|
|||
34
Ненавижу 1С
гуру
19.01.25
✎
13:21
|
Немного хардкода, если сильно хотите предотвратить передачу по ссылке:
Рез = Неопределено; МенеджерОфлайнОборудованияВызовСервера.ПолучитьКодировкуФайла(Вычислить("Рез")); |
|||
35
Кирпич
19.01.25
✎
20:46
|
(30) Да там не только знач. Там еще нелогичная фигня написана.
А вывод какой? В 1С можно писать откровенную херню и всё будет работать. За это мы и любим 1С :) |
|||
36
Гений 1С
гуру
19.01.25
✎
20:48
|
(35) можно писать и будешь работать. Пинка под зад назад во франи не дадут
|
|||
37
Волшебник
19.01.25
✎
20:54
|
(34) и не стыдно?
|
|||
38
Ненавижу 1С
гуру
20.01.25
✎
21:44
|
Вообще вся суть в том, что тут будет ошибка:
Метод(КодировкаТекста.ANSI); Процедура Метод(Чтото) Чтото = 12; КонецПроцедуры Но только если вызов метода и сам метод вызываются на одной стороне (либо оба на сервере, либо оба на клиенте) - только в этом случае происходит вызов по ссылке. Если используем вызов с клиента на сервер - то ошибки не будет - используется "вызов по копированию" |
|||
39
Гений 1С
гуру
20.01.25
✎
19:25
|
(38) проще прописать ЗНАЧ или объявить локальную переменную. Чем писать такое в проде.
|
|||
40
Ненавижу 1С
гуру
20.01.25
✎
20:08
|
(39) какое такое? Я просто убрал всю шелуху и оставил суть ошибки.
Да, разработчик метода по хорошему должен был поставить Знач. Но и к языку вопросы: 1. По умолчанию параметр передается по ссылке, хотя в большинстве языков это не так 2. При передаче с клиента на сервер передача по ссылке превращается в передачу по копированию, что несколько нарушает стройность подхода |
|||
41
Garykom
гуру
20.01.25
✎
22:44
|
(40) 2 - слегка разное поведение для одного модуля формы с реквизитом формы и разных модулей
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |