|
Нужны ли в 1с хинты типов? | ☑ | ||
---|---|---|---|---|
0
ERWINS
05.10.16
✎
17:23
|
собственно нужно ли в 1с добавить возможность необязательного определения типа переменной
функция СоеднитьСтроки(перваяСтрока:Строка, ВтораяСтрока:Строка):Строка возврат перваяСтрока+ВтораяСтрока; КонецФункции соответственно код СоеднитьСтроки(1,"") не скомпилируется! |
|||
1
Лефмихалыч
05.10.16
✎
17:25
|
что будет с кодом, если нужен составной тип из пяти справочников и трех документов?
|
|||
2
ERWINS
05.10.16
✎
17:29
|
просто не указываешь
но если очень надо четко ограничить то перечисляешь все. |
|||
3
mehfk
05.10.16
✎
17:31
|
Если бы они были нужны, то их бы уже сделали.
|
|||
4
ERWINS
05.10.16
✎
17:35
|
(3) в питоне 3.0 сделали относительно недавно
тут меня пугает мысль что 1с в 9.0(8.4?) сделает жесткую типизацию для обеспечения компиляции и соответственно выигрыша в скорости раз в 10 (на серверном коде) |
|||
5
craxx
05.10.16
✎
17:37
|
(4) вот как сделает - так и будем репу чесать.... а пока - не паримся
|
|||
6
orefkov
05.10.16
✎
17:39
|
(0)
Было бы хорошо, я только за. К примеру TypeScript же не зря появился, крупные проекты на голом javascript уже стало невозможно писать. Заодно исчезли бы эти костыли для интеллисенса, в виде #Если клиент и не клиент таб = Новый Таблица; #КонецЕсли |
|||
7
Serginio1
05.10.16
✎
18:01
|
6+ Тот же Angular2 на TypeScript
https://vsavkin.com/writing-angular-2-in-typescript-1fa77c78d8e8#.5x65uatmh (4) В Питоне как и в TypeScript для Intellisense и контроля синтаксических ошибок |
|||
8
Serginio1
05.10.16
✎
18:07
|
(3) Они нужны. Очень ускоряют написание кода за счет Intellisense и уберегает от ошибок
В семерке Перем тз; //:ТаблицаЗначений часто используется |
|||
9
H A D G E H O G s
05.10.16
✎
18:07
|
(4) не будет выигрыша
|
|||
10
Serginio1
05.10.16
✎
18:24
|
(0) Я первым пунктом указал
Кто что хочет от 1С |
|||
11
mehfk
05.10.16
✎
19:02
|
(8) В снегопате уже есть именно эта фича.
Intellisense для параметров процедур/функций |
|||
12
mehfk
05.10.16
✎
19:04
|
Можно здесь хотелку для снегопата попросить: сделать пункт контекстного меню - "Типизировать переменную для Intellisense" с выбором возможных типов, который добавляет эту конструкцию?
|
|||
13
Злопчинский
05.10.16
✎
19:13
|
(0) современные пртги 2 и "2" не отличать
Поэтому должно скомпилиться |
|||
14
Garykom
гуру
05.10.16
✎
19:14
|
Типизацию добавить с "use strict" ? Зачем?
|
|||
15
Garykom
гуру
05.10.16
✎
19:15
|
(14)+ Да еще и в паскаль/дельфи стайл почему то... Логичнее в VB стайл тогда
|
|||
16
Garykom
гуру
05.10.16
✎
19:16
|
|
|||
17
Лефмихалыч
05.10.16
✎
19:31
|
Функция Печать(Ссылка как Документ.РеализацияТоваровУслуг) как ТабличныйДокумент Экспорт
да ну накуй... |
|||
18
jsmith
05.10.16
✎
19:31
|
Паскаль детектед
|
|||
19
jsmith
05.10.16
✎
19:32
|
В (0) в смысле
У вас-то бейсик |
|||
20
Лефмихалыч
05.10.16
✎
19:34
|
хотя, пуркуа бы и не па, собственно?.. В принципе нормально.
Но тогда чур пусть все типы будут в единой иерархии и имеют одного общего предка. И чтобы структура с соответствием были где-то рядом с корнем. Чтобы осталась возможность подсовывать в фукцнии, обрабатывающие агрегатные объекты, структуру с соответствующими полями. |
|||
21
jsmith
05.10.16
✎
19:34
|
Тип.ТабличныйДокумент Печать(Тип.ДокументСсылкаРеализацияТоваровУслуг Ссылка)
|
|||
22
Лефмихалыч
05.10.16
✎
19:35
|
и от процедур наиух отказаться
|
|||
23
jsmith
05.10.16
✎
19:36
|
Во-во, процедуры зло
|
|||
24
jsmith
05.10.16
✎
19:36
|
Делегаты еще нужны
|
|||
25
orefkov
05.10.16
✎
19:36
|
(12)
Попробую |
|||
26
Лефмихалыч
05.10.16
✎
19:37
|
и - это! Делегаты, да. Или хотя бы, чтобы можно было передать указатель на функцию
|
|||
27
Лефмихалыч
05.10.16
✎
19:38
|
+(26) как в js
|
|||
28
orefkov
05.10.16
✎
19:38
|
Вот кстати, работа Visual Studio Code c TypeScript'ом, к которому подключены описания типов от 1С, примерно на 1:05 явная типизация переменной.
https://www.youtube.com/watch?v=vJnZPLe67Aw |
|||
29
Лефмихалыч
05.10.16
✎
19:38
|
да вообще - нах всё, пусть вместо языка 1С будет js
|
|||
30
Лефмихалыч
05.10.16
✎
19:38
|
+(29) и я всё прощу
|
|||
31
Serginio1
05.10.16
✎
19:41
|
(29) Лучше TypeScript
|
|||
32
Лефмихалыч
05.10.16
✎
19:42
|
(31) да пох, пусть TypeScript
|
|||
33
Garykom
гуру
05.10.16
✎
19:49
|
Действительно пофих TypeScript|JavaScript ибо одно в другое штатно компилится
|
|||
34
Garykom
гуру
05.10.16
✎
19:50
|
Но идея сделать фреймворк 1С в стиле фреймворка .Netи разрешить писать на любой языке из списка (причем конвертер из коробки между языками)...
|
|||
35
Garykom
гуру
05.10.16
✎
19:51
|
(34)+ Общими будут только описание структуры метаданных/базы данных и формочек на xml/json
|
|||
36
quest
05.10.16
✎
19:51
|
(34) Для этого надо сделать виртуальную машину, без ошибок и со спецификацией. А для такого зоопарка языков внутри 1С - это уже сложно сделать.
|
|||
37
Лефмихалыч
05.10.16
✎
19:53
|
(34) не-не-не, дэвдблэйн! Пусть - как щас, но с js|ts и всё. Остальное все не надо, остальное все хорошее.
|
|||
38
Garykom
гуру
05.10.16
✎
19:54
|
(36) Ну MS то сделал для зоопарка языков (C#, VB.Net, J# etc) под CLR
|
|||
39
Garykom
гуру
05.10.16
✎
19:55
|
(37) Так оно и будет как счас в виде конфигуратора, просто если хочешь то можешь конфигуририть прямо в текстовых файликах
|
|||
40
quest
05.10.16
✎
19:55
|
(37) открой для себя унпак - конфигури в текстовых файликах
|
|||
41
quest
05.10.16
✎
19:56
|
(38) так сперва сделали виртуальную машину. А потом на них языки натянули. С 1С - ситуация обратная.
|
|||
42
Garykom
гуру
05.10.16
✎
20:00
|
(41) да там переписывать просто доуя ))
|
|||
43
Garykom
гуру
05.10.16
✎
20:02
|
(40) да в курсе, но проблема что сначала приходится назад собирать в конфу и только потом на запуск/отладку
вот было бы как в nodejs где оно сразу |
|||
44
Serginio1
05.10.16
✎
20:04
|
(35) Неее. TypeScript в JavaScript, а вот обратно нет.
Вернее можно, но все типы будут any. Ну и интерфейсы и прочая лабуда в JavaScript отсутствует. Хотя нужно смотреть новые версии |
|||
45
Лефмихалыч
05.10.16
✎
20:24
|
(40) куета это на палке. Ту же ерп туда-сюда собирать-разбирать устанешь. Игрушки это, в общем, всё, унпаки эти, для маленьких конфигураций.
|
|||
46
ERWINS
05.10.16
✎
21:01
|
Делегаты это вообще кошмар нета.....
того, кто их придумал надо .... (плохое сделать) лучше функции высших порядков |
|||
47
Torquader
05.10.16
✎
21:11
|
Добавление определения типа позволяет избежать ошибок на стадии написания кода, когда вместо одного значения в функцию передаётся другое.
Конечно, если писать префикс типа в имени переменной, то никакого определения типа не нужно. Просто, описание составного типа через {Тип1,Тип2} будет выглядеть не очень удобно из-за того, что типы в 1С очень длинные. Лучше бы сделали определение дочерних типов, чтобы можно было задать числовой тип, скажем, Цена и везде его использовать, а когда нужно будет поменять разрядность, просто поменять в определении типа. |
|||
48
jsmith
05.10.16
✎
21:14
|
Не знаю. Мне импонирует отсутствие статического контроля. Насчет делегатов и функций высших порядков - бодяга одного разлива. Джиэс крут.
|
|||
49
jsmith
05.10.16
✎
21:15
|
Кому нравится ригидность и контроль - тайпскрипт, для адептов самодисциплины - джиэс.
|
|||
50
Лефмихалыч
05.10.16
✎
21:20
|
(49) плюсану. Ситуаций, когда вместо нужного типа передается ненужный, лично у меня по пальцам пересчитать.
А вот об отсутствии возможности внутрь цикла по обработке чего-нибудь передать вместе с объектом для обработки еще и указатель на функцию, которой надо этот объект обработать, - день через день скучаю. И плачу кровью, когда приходится писать ЕслиТоИначеЕслиТоБлятьИначеГоспадиЁбтвоюМать |
|||
51
Torquader
05.10.16
✎
21:32
|
(50) Полностью поддерживаю, если в языке нет указателя на функцию, это очень и очень плохой язык.
Слава богу в восьмёрке Выполнить появилось. |
|||
52
ERWINS
05.10.16
✎
21:35
|
(51) Выполнить медленно!
|
|||
53
Torquader
05.10.16
✎
21:44
|
(52) Ну, естественно, сначала компилляется, а потом исполняется, но, вся конвертация на нём написана.
P.S. а ещё очень хочется функция с переменным числом параметров, чтоб не пихать их в массив перед функцией. |
|||
54
ERWINS
05.10.16
✎
21:50
|
(53) тогда именованные картежи (если имена не указаны, то обращение как к массиву)
a={1,2,3,4} мояфункция(а) эквивалентно мояфункция(1,2,3,4) а вообще для этого есть фиксированные структуры. |
|||
55
Garykom
гуру
05.10.16
✎
21:52
|
(53) Ааа тоже понял прелести js ))
|
|||
56
Torquader
05.10.16
✎
21:55
|
(55) Я на нём писал, ещё когда восьмёрки не было, и "переменное число параметров" это единственное, что в нём хорошего - по всему остальному - это очень грустно.
|
|||
57
Garykom
гуру
05.10.16
✎
21:57
|
(56) Ну JS тоже развивается и сейчас это совсем не те скрипты что были когда то.
|
|||
58
ERWINS
05.10.16
✎
21:58
|
(56) я на 1с писал когда еще 8 не было, 1с унылое гуано (для некоторых разъяснение - это ирония)
|
|||
59
ERWINS
05.10.16
✎
21:59
|
посмотрите с++ 17 по удобству он сильно догнал встроенный язык 1с.
|
|||
60
Serginio1
05.10.16
✎
22:23
|
(47) Можно добавлять синонимы.
(53) Это и в C? params есть. В 1С можно использовать параметры по умолчанию (57) Но типизацию пока не вводят. TypeScript компилируется в JS нужной версии. Но на самом деле WebAssembly https://habrahabr.ru/company/infopulse/blog/304362/ Может вытеснить JS |
|||
61
impulse9
06.10.16
✎
05:44
|
(47) "Лучше бы сделали определение дочерних типов, чтобы можно было задать числовой тип, скажем, Цена и везде его использовать, а когда нужно будет поменять разрядность, просто поменять в определении типа."
Так есть же. Определяемые типы. |
|||
62
VladZ
06.10.16
✎
06:31
|
(0) Не вижу смысла
|
|||
63
orefkov
06.10.16
✎
09:16
|
(50)
Это пока работаешь один над не очень большим проектом. А когда проект большой, да несколько разрабов разного уровня - проще как-раз типизировать. |
|||
64
romix
06.10.16
✎
09:19
|
(0) Если Ложь Тогда док=Документы.ПриходнаяНакладная.ПустаяСсылка; КонецЕсли
Все хинты после этого начинают работать... |
|||
65
Лефмихалыч
06.10.16
✎
09:19
|
(63) если у тебя на 1С большой проект на несколько разрабов, то проще у тебя уже не будетт. Всё твое проще уже было...
|
|||
66
orefkov
06.10.16
✎
09:27
|
(65)
Ну, в-принципе соглашусь, в том ключе, что добавлять в 1с ТОЛЬКО одну типизацию, не добавляя остальных плюшек (хотя бы интерфейсов, наследования и виртуальных методов) - мало что даст. Как говорится, "к полумерам не привык". |
|||
67
Jokero
06.10.16
✎
09:36
|
занафейкуя?
Функция СоеднитьСтроки(перваяСтрока, ВтораяСтрока) возврат ""+перваяСтрока+ВтораяСтрока; КонецФункции Ни? |
|||
68
TormozIT
гуру
06.10.16
✎
09:38
|
Начать можно с самого полезного - опциональная типизация при передаче параметров.
Например РассчитатьСумму(ВалютаНовая, Сумма:Число, ВалютаСтарая) Т.е. для железно известных типов мы их указываем и интерпретатор и синтакс-контроль выдают ошибки проверки типа в этом. |
|||
69
romix
06.10.16
✎
09:47
|
(68) Можно наоборот указывать плавающие типы переменных (по-моему два или более типа, которые в принципе может принимать переменная - это большая редкость).
Например, когда сначала присваивается строка, потом число, а потом ссылка. Такого же почти не бывает? |
|||
70
Serginio1
06.10.16
✎
09:48
|
(67) Угу. При этом если перваяСтрока будет не строка, то получим строковое представление, что иногда не соответствует ожиданию.
Интерес же больше представляет классы КлонироватьТз(ТзОриг:ТаблицаЗначений): ТаблицаЗначений Ты сразу получаешь Intellisense и синтаксическую проверку методов итд. Это значительно ускоряет написание кода и отладки за счет синтаксической проверки. |
|||
71
romix
06.10.16
✎
09:50
|
(70)
Если Ложь Тогда тзОриг = Новый ТаблицаЗначений; КонецЕсли; После этого набор тзОриг и точки выводит все контекстные подсказки именно по таблицам значений. |
|||
72
romix
06.10.16
✎
09:53
|
На месте 1С я бы ввел ключевое слово Типизация:
Типизация тзОриг ТаблицаЗначений; С этой же целью... А то "Если Ложь" выгладит как-то неаккуратно. |
|||
73
YFedor
06.10.16
✎
09:58
|
Лучше бы преобразование типов как в семерке сделали (хотя бы опционально)
|
|||
74
Serginio1
06.10.16
✎
09:59
|
(71) Это понятно, но все это через одно место.
Типизация в методе лучше КлонироватьТз(ТзОриг:ТаблицаЗначений): ТаблицаЗначений Так же можно и типизацию вводить тз:ТаблицаЗначений=ВызватьНетипизированнуюФункцию(); Все придумано давно |
|||
75
Serginio1
06.10.16
✎
10:00
|
Или
Тз=ТаблицаЗначений(ВызватьНетипизированнуюФункцию()); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |