|
В типовой розница 2.3 встретился такой код nextssbt, Garykom, Ненавижу 1С, Гость из Мариуполя, Волшебник, who respawn, Кирпич, ГдеСобакаЗарыта, Мультук, Лирик, глазковыколупыватель, Tigrann, GreyK, evorle145, ThreeTONE, mikecool, timurhv, Krendel, d4rkmesa, Гипервизор, Builder, Franchiser, 2S, saaken, Звездец, Gucci76, Шурик71, laeg, denk32, JanK, Djelf, Гений 1С, hunter76, ДиВаH2, Вадим33, AntiBuh, PLUT, olegves, Crusher, VKS, arsik, Климов Сергей, Жеглофф, LLeonidov, petr_ivanov, Флориан, СвинТуз, WhiteDragon93, Страждущий, dmt, mortal, Prog_man, N-S-B, yanikolay, Масянька, maxar, Доминошник, AAA
| ☑ | ||
---|---|---|---|---|
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 - слегка разное поведение для одного модуля формы с реквизитом формы и разных модулей
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |