Имя: Пароль:
1C
 
Встроенный язык 1С:Предприятия -- Стабильность или Застой?
,
0 ERWINS
 
22.12.16
18:54
1. Свое 71% (10)
2. Застой 29% (4)
3. Стабильность 0% (0)
Всего мнений: 14

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

Если мы посмотрим на С++ то примерно с 2000 по 2011 год в языке не было сколько нибудь значимых перемен, но теперь крупные изменения выходят каждые 3 года! с++11 с++14 С++17

Если посмотрим на Swift то там не совместимости между 1, 2 и 3 версией.
Язык очень сильно меняется, и спасает только факт помощников миграции кода.

С# хоть и сохраняет совместимость с предыдущими версиями сильно изменился.

Java - язык ценят за стабильность и  сейчас без потери стабильности язык стал интенсивно развиваться.
57 Лефмихалыч
 
22.12.16
21:50
когда постоянно ходишь на одну и ту же работу одной и той же дорогой, делая дома и на работе примерно одно и то же, уныние как-то само собой приходит, а с ним и депрессия. Но это не потому, что жизнь говно, а потому, что ты выбрал такую жизнь цирковой лошади.
58 Garykom
 
гуру
22.12.16
21:50
(56) Так объясни какие нужны "новые конструкции", зачем и как их применять с примерами в каких ситуациях.
59 Лефмихалыч
 
22.12.16
21:51
(56) просто возьми да почитай вондерлэнд этот. Первое, что в голову приходит на тему новых конструкций - #секция  и ОписаниеОповещений. Но это не потому, что их всего два, а потому, что на ум приходит то, чем часто пользуешься.
60 Лефмихалыч
 
22.12.16
21:52
ОписаниеОповещения
пардоньте
61 ERWINS
 
22.12.16
21:53
(59) ОписаниеОповещения - это развитие платформы
#секция   - оформления кода

это не имеет отношение к развитию языка
62 Лефмихалыч
 
22.12.16
21:56
(61) ты просто сам не понимаешь, чего хочешь.
Почему это - развитие платформы, а asinc await - это развитие языка? Потому, что там С++, а тут 1С?
63 bura_limon
 
22.12.16
22:03
(61) что не хватает тебе в языке 1С
64 Garykom
 
гуру
22.12.16
22:03
Кста async/await в 1С добавлено давным давно еще при отказе от модальности, иначе как бы "формы выбора" работали.
65 ERWINS
 
22.12.16
22:05
(62) ты почти прав.

рано или поздно при фиксировании языка наступает момент, когда использование конструкций становится слишком многословным.

как показывает практика между моментом когда фиксация языка и моментом перерастающей сложности проходит где то 10 лет.

в 8.1 не было необходимости что-то добавлять. Там было все

Но платформа росла и обертки приходилось делать существующими средствами


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

функция нечисло(стр как строка)


или те же Таблицы значений, их опредение не позволяет получать список колонок (через добавить)


формирование запросов через LINQ (паралельно с существующим) произвело бы революцию в удобстве разработки сложных запросов (только если была бы поддержка среды разработки с подсказкой полей и т д)

все это пытаются делать, сейчас вы можите средствами языка редактировать запросы, но кто ниь этим пользовался?
66 ERWINS
 
22.12.16
22:06
(64) отказ от модальности никак не связан с async/await

async/await - это сахар
67 Лефмихалыч
 
22.12.16
22:09
(65) ну, так ты не путай "я хочу строгую типизацию" и "язык 1С не меняется". Первое - твоя проблема, второе - ложь.

LINQ одинэсу не нужен полностью и насовсем, т.к. 1С в основе своей отрицает изменение данных прямыми запросами. И правильно делает. Потому что - смотри ветки в тематике.
68 Garykom
 
гуру
22.12.16
22:09
(65) аналоги linq причем вместе с chaining сча несколько разных команд изобретает и обкатывает
69 bura_limon
 
22.12.16
22:10
(35) конструктор запроса в 8-ке появился из далекого 1с++,и этот конструктор служил для сбора данных из Ms Sql,т.е. напрямую можно было выдергивать из скуля...
70 ERWINS
 
22.12.16
22:10
(68) без изменения языка их не сделать.
71 Лефмихалыч
 
22.12.16
22:11
(65) и ты не ответил почему:
1. async/await является развитием языка, а не платформы.
2. ОписаниеОповещения является развитием платформы. а не языка.

Ответ "потому, что я так сказал" не принимается.

ЗЫ А вот ответ "я, пожалуй, погорячился принимается и будет понят и оценен по достоинству".
72 Garykom
 
гуру
22.12.16
22:11
(67) linq не только для изменения данных и удобное средство для манипуляций с ТЗ, это не считая view
73 Лефмихалыч
 
22.12.16
22:12
кавычку,блин, не там поставил...
74 Garykom
 
гуру
22.12.16
22:12
(70) Язык запросов 1С это что? Потом лучший вариант уже можно включать "в язык", но это не команды будут решать.
75 Лефмихалыч
 
22.12.16
22:13
(72) погоди. Мы пока не понимаем, о чем спорим. Давай дождемся внятного ответа на (71). А то может мы реально чего-то не догоняем...
76 ERWINS
 
22.12.16
22:19
(71) есть разделение библиотеки и языка

все новые объекты создаваемые через Новый это развитие библиотеки с (1990-2010) этого считалось достаточно я про практику языков программирования. В этом случае граф исполнения остается неизменным.

async/await Меняет логику поведения кода.

Я не спорю, что ты во много прав. В основном важно окружение, платформа, библиотека и 1с очень значительно над этим работает, но на мой взгляд изменение в языке перезрели.
77 ERWINS
 
22.12.16
22:20
(74) все таки время текстовых запросов на мой взгляд прошло.
78 ERWINS
 
22.12.16
22:21
я где то читал, что подобные изменения в с++ увеличили производительность труда программистов примерно на 10%
79 Garykom
 
гуру
22.12.16
22:26
(77) linq это по сути замена длинных текстовых sql запросов, обычное сокращение кода.

Тогда и СКД это "платформа" хотя по факту https://ru.wikipedia.org/wiki/Визуальное_программирование
80 orefkov
 
22.12.16
22:26
(71)
Это просто - если новинка требует изменения парсера и компилятора языка - это изменение языка. Если не требует - развитие средств платформы. В 8ке по сравнению с клюшками изменениями языка было ДляКаждого, Новый, булевые операции, обращение к свойствам через [].
Хотя и тут 1С смогла "отличиться", и впихнуть нужную только для редактора модулей #Область на уровень языка, меняя парсер и компилятор, хотя можно было бы обойтись спец-комментариями.
81 Лефмихалыч
 
22.12.16
22:28
(76) ага, а ОписаниеОповещения и его асинхронщина - не меняют логику поведения кода и граф исполнения не меняется, да?
Что за инопланетянский бред?
82 Лефмихалыч
 
22.12.16
22:33
(80) а как ты догадался, что для реализации обработки оповещения не было ни каких изменений в парсере или/и компиляторе?
83 Fragster
 
гуру
22.12.16
22:52
(81) там нет асинхронности. попробуй сделать цикл на 10 секунд после показатьвопрос. или сделай 10 показатьвопрос в цикле...
84 Лефмихалыч
 
22.12.16
23:03
(83) а и попробую
85 Fragster
 
гуру
22.12.16
23:08
а еще лучше пару раз сходить на сервер (надолго)
86 romix
 
22.12.16
23:11
(47) Можно так, но оно же поглотит третье состояние.
Как раз хочется его выделить из общей логики вещей.
87 Garykom
 
гуру
22.12.16
23:15
(83) Исполнение в процедуру "ОписаниеОповещения" вернется только когда закончится выполнение кода после вызова "ПоказатьВопрос".

Это проблема не языка а платформы...
88 Garykom
 
гуру
22.12.16
23:18
(87)+ ну нету настоящей многозадачности с потоками, нету
89 orefkov
 
22.12.16
23:18
(82)
Во-первых, потому что в снегопате мне лексер и парсер менять не пришлось :)
Во-вторых, когда снегопат получает от 1С список встроенных в компилятор функций - Оповестить там нет.
В-третьих, никакой новой синтаксической конструкции эти средства не несут.
90 orefkov
 
22.12.16
23:42
(88)
О какой ещё многозадочности тут можно говорить?
Оповещения - это такие "колбэки для бедных" по-одинэсовски. И сделаны они так именно потому, что такая реализация не требует изменений в собственно самом языке 1С. Иначе бы так или иначе пришлось бы всё-таки вводить возможность косвенного вызова функций - указателями ли, либо функции-объекты, не суть. Хотя даже в том же 1С++ эту задачу решили в рамках языка клюшек гораздо элегантнее в виде делегатов. Ну так там еще и Перехватчик был красивый, и ВыполняемыйМодуль. Ну ладно 1С не хочет полноценное ООП тащить в язык, но хотя бы эти удобные плюшки могли бы взять?
91 Fragster
 
гуру
22.12.16
23:43
(87) оно еще и окна может показать только после выхода из процедуры
93 ТупойЖадный
 
23.12.16
00:58
Не переживайте, в 9.0 усе будет.
94 Garykom
 
гуру
23.12.16
01:34
(93) Будет, но оно будет чисто облачной
95 ТупойЖадный
 
23.12.16
01:40
(94) Значит нас не будет?
96 France
 
23.12.16
01:42
как это не меняется?.. как нарвался на новые фичи 8.3.9 с веб-сервисами, так месяц искал ошибку.. в итоге на сайте вызов веб-сервиса поменяли, и все взлетело..

Свое
97 ERWINS
 
23.12.16
09:32
.
98 TormozIT
 
гуру
23.12.16
09:42
Нужно четко обозначить грань между объектной моделью и встроенным языком. Сам встроенный язык (грамматика) давно не менялся. Объектная же модель интенсивно развивается, в том числе и в технической части (например ОписаниеОповещения).
99 akaBrr
 
23.12.16
09:43
мне лично не хватает:

Конст КакаяТоКонстанта = "ЗначениеКонстанты";

Чтобы никто не смог поменять значение КакаяТоКонстанта.

Актуально когда разработку ведут несколько человек.
100 oleg_km
 
23.12.16
09:45
Еще в дополнение к COMОбъект и ВК добавить NETОбъект и JavaОбъект.
101 akaBrr
 
23.12.16
09:59
конструктор у массива неудобный, хочется чтобы как у структуры:

ЭтотМассив = Новый Массив(Значение1,Значение2,...);

Застой
102 Кирпич
 
23.12.16
10:02
(99) да. с константами пролет. пиши

функция КакаяТоКонстанта()
возврат "ЗначениеКонстанты"
КонецФункции

(100) у нас один изобретатель NETОбъект уже есть. Получается дебильное русско-английское месиво, на которое без слез смотреть невозможно. Лучше уж отказаться от идеи своего языка и тупо заменить язык 1с на C# или Java. Ну или разработать новый, более продвинутый и без диких сюрпризов типа программа выполняется быстрее, когда она написана в одной строке :)
103 TormozIT
 
гуру
23.12.16
10:24
(102) Функция вместо константы затратна при частом обращении, но в большинстве случаев приемлемо.
104 olegves
 
23.12.16
10:35
Не хватает команд, имитирующих интерактивные действия пользователя (напр, наведение мышки на ЭФ, клик по ЭФ, ввод с клавы и под) - для тестов нужно

Застой
105 akaBrr
 
23.12.16
10:39
В процедурах и функциях часто проверяю тип переданного параметра, было бы неплохо указывать доступные типы параметров при объявлении функций/процедур. Чтобы интерпретатор сам проверял правильность переданного параметра.
106 Кирпич
 
23.12.16
10:46
(104) странное пожелание. напиши ВК и будет тебе счастье.
107 Кирпич
 
23.12.16
10:47
(103) спасибо, кэп.
108 olegves
 
23.12.16
10:47
(106) для каждой платформы?
109 Кирпич
 
23.12.16
10:51
(108) ну как тебе нравится. ты где вообще видел языки с такими командами? разве что спецязык какой то.
110 ERWINS
 
23.12.16
10:53
(109) есть много таких спецязыков.
111 Cool_Profi
 
23.12.16
10:54
А вот тут мне захотелось формулы в колонках ТЧ и ТЗ...
И ещё табдоки с формулами...
)
112 quest
 
23.12.16
10:55
(110) как легко путается язык и платформа
113 Кирпич
 
23.12.16
10:57
(110) ну так и пользуйтесь ими. зачем из языка 1с делать мышкотыкалку.
114 Вафель
 
23.12.16
10:59
(104) Есть же, только как всегда сделано через ...
115 33554432
 
23.12.16
11:29
Отстой

Застой
116 SUA
 
23.12.16
11:30
(103)правда что ли?
а на файловой базе?
а в кешированном модуле?
117 akaBrr
 
23.12.16
11:33
(116) речь шла о замене константы, которой нет в языке, функцией
118 akaBrr
 
23.12.16
11:33
(102) если мне константа нужна в пределах процедуры, выносить ее определение в контекст модуля?
119 Кирпич
 
23.12.16
11:40
(118) констант в языке нет. в пределах процедуры достаточно переменной, ибо константа была нужна, чтобы в переменную, которую используют как константу в другом модуле, не могли записать значение другие разработчики.
120 Кирпич
 
23.12.16
11:41
+(119) вообще достаточно давать правильные имена и вопрос решен.
121 Кирпич
 
23.12.16
11:43
+(120) Так и писать имя с "Константа" и всем понятно, что менять значение этой переменной чревато. Да и никто не будет называть переменные с таким префиксом.
122 Кирпич
 
23.12.16
11:44
другое дело константные массивы
123 Вафель
 
23.12.16
11:45
(122) а такое вроде есть
Фиксированный массив
124 Вафель
 
23.12.16
11:45
(121) Можно как в других языках в верхнем регистре
125 Кирпич
 
23.12.16
11:46
(123) я не в курсе.
типа так?

А = [1,2,3,4,5,6]
126 Вафель
 
23.12.16
11:47
(125) Массив = Новый ФиксированныйМасив(ИсходныйМассив)
127 Кирпич
 
23.12.16
11:47
хотя если констант нет, то и массивов констант нет.
128 Вафель
 
23.12.16
11:47
есть также фикс структура или соответствие
129 Кирпич
 
23.12.16
11:48
(126) я не это имел ввиду. да и хрен с ним.
130 Вафель
 
23.12.16
11:49
(129) синтаксического сахара конечно в 1с нет
131 Вафель
 
23.12.16
11:49
ибо разработчик должен перманентно испытывать боль и тлен
132 Кирпич
 
23.12.16
11:52
(131) пускай страдают и не ноют. а то уж сколько лет на 1с паразитируют и вот вам вместо спасибо "дайте нам хороший язык, нам скучно"
133 akaBrr
 
23.12.16
12:09
(132) не скучно, в процессе борьбы с действительностью учета на ввереном объекте, хотелось бы не отвлекаться на борьбу с языком, платформой и другими программистами
134 Кирпич
 
23.12.16
12:13
(133) А ты полюби язык, платформу и других программистов и будет тебе не борьба, а радость и благодать.
135 bogus
 
23.12.16
13:17
1С развивается и работать стало удобнее...

Свое
136 ice777
 
23.12.16
13:37
ЭтоФайл и ЭтоКаталог в свое время вызвали припадок безудержного смеха.
137 Garykom
 
гуру
23.12.16
14:24
138 dmrjan
 
23.12.16
14:25
И все-таки интерфейс у 8.2 был горазд приятнее и удобнее, чем в такси. Тормознутость интерфейса такси просто убивает. Взять хотя бы подбор. Если УТ 10.3 подбор по коду 100 позиций занимает 5-6мин, то в 11  торговле - это ковыряние в подпространстве - только текст, только хардкор.

Свое
139 akaBrr
 
23.12.16
14:47
(138) при чем здесь встроенный язык? О_о
140 trdm
 
23.12.16
17:57
Кое чего не хватает.
Есть модули документов, есть модули менеджеров и т.п.
Но нет управлением наследования.
Допустим нужно для нескольких видов документов делать одно и тоже, причем документы достаточно однояйцевые.
На мой взгляд один модуль в ветке "Общие" и реквизит в форме объекта документа решит вопрос. Иначе придется много заморачиваться.

Застой
141 ERWINS
 
23.12.16
18:10
(140) создаешь в модуль и пишешь там функцию
вставляешь вызов функции во все модули

есть еще механизм подписок


надумано
142 Garykom
 
гуру
23.12.16
18:10
(140) Сейчас не хватает обычных общих модулей и подписок? Ну и еще вызов в каждом модуле вида дока процедур из общего модуля.
143 Garykom
 
гуру
23.12.16
18:11
(141) :( так нечестно секунды блын
144 trdm
 
23.12.16
18:31
(141) > вставляешь вызов функции во все модули

во-во. Прыгаешь как блоха по всем модулям и вставляешь.
Когда навставляетесь вдоволь, предлагаюеще раз подумать над предложением.
Или все с типовыми работаете?
145 ERWINS
 
23.12.16
18:33
(144) а какая разница с типовыми или нет?
считать ли конфу на БПС самопиской?
146 Garykom
 
гуру
23.12.16
18:34
(144) Какой хитрый решил тут ООП начать раводить... потом еще небось захочется скоко угодно уровней вложенности родитель > потомок
147 Garykom
 
гуру
23.12.16
18:35
(146)+ Хотя чем тебе не нравятся расширения конф? Перекрытие методов уже есть...
148 Garykom
 
гуру
23.12.16
18:37
(147)+ Во весело будет если 1С разрешит делать "расширения расширений конфигураций"
149 ERWINS
 
23.12.16
18:38
(148) а разве такого нет?
150 Garykom
 
гуру
23.12.16
18:42
(149) нет "Важной особенностью расширения является наличие заимствованных объектов. Позаимствовать можно любой объект типовой конфигурации"
151 trdm
 
23.12.16
18:43
(146) Естественно. Тогда модифицировать документ можно будет одним щелчком мыши просто сменив базовый класс на более продвинутый.
152 Garykom
 
гуру
23.12.16
18:43
(150)+ в смысле расширять объекты расширения (а не исходной конфигурации) низзя
153 trdm
 
23.12.16
18:47
Язык должен облегчать задачу программисту, а не усложнять её.
Совсем не помешали бы блоки типа:
Перем глБлаБлаБла = [Число|Строка|Дата|СистемноеПеречисление|...] Конст
А то я уже напарывался на трудно уловимую ошибку с подменой глобальной переменной. Пару часов сидел тупил.
154 ERWINS
 
23.12.16
18:47
(152) доступ через метаданные разве не работает?
155 kosts
 
23.12.16
20:51
ОписаниеОповещения нужная, но бестолково сделанная вещь.
Ни чем не лучше функции Выполнить().
В ОписаниеОповещения название процедуры задается строкой.
Есть исходную процедуру переименуют, об ошибке узнаешь только, когда пользователь об этом скажет...
Правильнее был бы специальный тип и если переименовал процедуру, то компилятор сразу бы ошибку выдавал...
156 buhkiller
 
23.12.16
20:57
Появится 1С 9 и на мисте будут брюзжать старперы-восьмерочники. Типа, восьмерка это стабильность, а девятка отстой.

Свое
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой