Имя: Пароль:
1C
1С v8
Нет предела совершенству 1С
,
0 su_mai
 
12.12.14
07:54
Исходя из своего опыта убедился в том, что весьма удобно было бы указывать тип параметра процедуры или функции. Нет это не строгая типизация как в других языках, это просто декларирование типа для конфигуратора. Что то на подобии формализованного комментария. Так например указав что Таблица имеет тип ТаблицаЗначений при работе с этой переменной становятся доступными методы работы с ней.

Может я что то пропустил и когда то об этом говорили, но все равно интересно ваше мнение.

П.С.

Может orefkov реализует такое в Снегопате :)
1 Легат
 
12.12.14
07:57
Согласен, особенно с параметром, но жить можно..
2 su_mai
 
12.12.14
08:01
(1) Ну в общем то да, но так было бы удобнее. А то есть стандарты что методы надо комментировать, а в прикладном смысле кроме как "для глаз" это пользы не дает.
3 ice777
 
12.12.14
08:07
не нужно. давайте имена типа ТЗтаблица и не парьтесь.
Чужой быдлокод читать в отладчике тоже не проблема.
4 Ненавижу 1С
 
гуру
12.12.14
08:10
(3) "давайте имена типа ТЗтаблица"
это и есть быдлокод
5 su_mai
 
12.12.14
08:12
(3) После точки не показываются свойства и методы
6 kosts
 
12.12.14
08:17
На безрыбье и рак рыба...

    #Если Не Клиент и Клиент Тогда
           ТабДокумент = Новый ТабличныйДокумент;    
    #КонецЕсли
7 su_mai
 
12.12.14
08:19
(6) Или так

Если Ложь Тогда
   Таблица = Новый ТаблицаЗначений;
Конец
8 Эмбеддер
 
12.12.14
08:20
(7) а после того, как процедура написана, это можно удалить
9 Андрюха
 
12.12.14
08:20
Еще хочется инкрементального присвоения как в PHP, чтобы вместо
Область.Параметры.Представление = Область.Параметры.Представление + " (по контрагенту)";
писать
Область.Параметры.Представление += " (по контрагенту)";
10 ice777
 
12.12.14
08:20
(5) зачем тебе точка, сильно ты коллекции по методам отличишь, хочешь- настрой.
2. в режиме отладки, когда тип значения уже определен, подведи курсор,- не стесняйся. или нажми уже shift+f9. и вообще, есть куча методов. каждый пользует, что ему нравится.
11 Dmitry1c
 
12.12.14
08:21
А все уже видели, что "Найти в списке" вернут в 8.3.6?

Сорри за оффтоп :)
12 ice777
 
12.12.14
08:21
(9) это из C пришло, а потом уже пэхапы появились.
13 Kyon8
 
12.12.14
08:22
(6) Между "#Если" и "Тогда" вообще можно что угодно ставить кроме зарезервированных выражений, я пишу через шаблон для повышения читабельности

#Если ДляСинтаксПодсказки Тогда
    //...
#КонецЕсли

Минус - могут в следующих релизах пофиксить)
14 kosts
 
12.12.14
08:22
(11) Не помню. Где это применялось?
15 su_mai
 
12.12.14
08:26
(8) А если в последствии поправить надо кому то другому, то он её добавит, ошибется в заглушке и потом всем миром будут отлаживать :)
16 su_mai
 
12.12.14
08:27
(10) Никто не спорит, что сейчас выкрутиться можно, но это (имхо) порочная практика.
17 su_mai
 
12.12.14
08:28
(9) Хочу "делегаты" в 1С
18 su_mai
 
12.12.14
08:28
+(17) и лямбда ;)
19 Эмбеддер
 
12.12.14
08:29
(15) тогда надо установить пароль на модуль, чтобы кто попало не лазил туда
20 quest
 
12.12.14
08:30
(18) +500
Ну и макросы еще, как в лиспе
21 su_mai
 
12.12.14
08:30
(19) Ну а если это не нужно, а нужно что бы ко не залезет - все понятно, все ОК! :)
22 su_mai
 
12.12.14
08:31
(20) И регулярные выражения добавить хотябы в поиске по текстам модулей
23 ice777
 
12.12.14
08:32
(19) пожалей себя. и так глюк на глюке, а если еще и шифрование вставят ;)
24 quest
 
12.12.14
08:35
(22) cl-ppcre на макросах сделана, без всяких заморочек. А вот то что невозможно невозможно расширять язык - напрягает
25 su_mai
 
12.12.14
08:40
(24) cl-ppcre можно прикрутить к конфигуратору?
26 quest
 
12.12.14
08:46
К конфигуратору можно прикрутить все (спасибо снегопату)
Стоимость этого - другой вопрос
27 WebberNSK
 
12.12.14
09:30
(0), (26) Скоро будет средства разработки для 1С на эклипсе, думаю что там все подобные вопросы постепенно и решатся
28 quest
 
12.12.14
09:35
(27) Эта байка - про скоро - уже второй год ходит
29 mrDru
 
12.12.14
10:37
(27) ну и на кой ляд этот нафталин кому-то нужен? ладно бы еще на Intellij Idea сделали, а это тормозилище эклипс давно пора либо в топку, либо полностью переписывать.

Несколько лет назад ушел из 1С (начал работать с 8.0, уходил с 8.2) на java, был счастлив статической типизации и прочим плюшкам, но сейчас, поработав с буржуями (которые по сути пишут аналог 1С, не подозревая о существовании последней) понимаю, что все, что в платформе есть, присутствует там сильно не спроста. За последние годы понял, что всему есть логичное объяснение на этой платформе и реализовано все, что только может захотеть корпоративный пользователь, на очень высоком уровне.

Сейчас сам пришел к тому, что строгая типизация только и годится, что для помощи IDE в подсказке автоподстановки. Прямые руки и тесты позволяют писать и без типов вовсе, а смещение рук от корректного положения не спасти и scala/haskel типами.
Реально помогли бы в развитии языка только две вещи: замыкания и функции, как объекты первого класса. Ну и, пожалуй, встроенный маршаллер/парсер для json/yaml.
30 thezos
 
12.12.14
10:57
Да ну фигня это всё, подсказки, снегопад. Человек должен знать что делает без всякой херни.
31 Господин ПЖ
 
12.12.14
10:59
(3) 1C венгерскую нотацию предает анафеме
32 Турист
 
12.12.14
10:59
(28) +100500, скоро станет таким мемом как и HL 3
33 su_mai
 
12.12.14
11:00
(29) Ты так жалостливо пишешь, может показаться, что хочешь обратно в 1С :)

Добавить транзитивные замыкания и функции обратного вызова это огромное по объему дело. И не только собственно кодинг платформы, а доучивание программистов-внедренцев до этого уровня.

Другое дело добавить очередной удобный бантик, который ни к чему не обязывает, по моему реально.
34 quest
 
12.12.14
11:32
(29)> Реально помогли бы в развитии языка только две вещи: замыкания и функции, как объекты первого класса.  

Сперва хотел написать +500, но подумал и напишу +100500
35 su_mai
 
12.12.14
11:37
+(0) Почему бы не описывать правила сериализации и десериализации объектов прямо в соответствующих обработчиках модуля объекта?
36 compors
 
12.12.14
11:40
(3) > не нужно. давайте имена типа ТЗтаблица и не парьтесь.

Интеллиценз не сработает. А было бы удобно.
в семерке это работает так:
Процедура блаблабла(Параметр)
//Параметр:ТаблицаЗначений

Иногда просто делаешь:
если 1 = 0 Тогда
Параметр = создатьОбъект("ТаблицаЗначений");
конецЕсли
37 su_mai
 
12.12.14
11:42
(36) === (7)
38 compors
 
12.12.14
11:44
+(36) Скрипты в семерке могут определять тип переменной по контексту вызова, типа

процедура вызов1(Параметр)
КонецПроцедуры


процедура вызов0()
переменная = создатьобъект("Блабла")
вызов1(переменная)
КонецПроцедуры

И из глобальника тоже могут вынимать типизацию.
39 mrDru
 
12.12.14
12:06
(33) неее, меня в jvm уже не выгнать, эта платформа мне ближе, здесь тоже удобств всевозможных до задницы. Вот только для разработки корпоративного продукта в большинстве случаев я посоветую 1С, а для интеграции/вэба/не учетной специфики я за jvm.
40 su_mai
 
12.12.14
12:09
(39) :)
41 su_mai
 
12.12.14
12:10
+(40) Согласен главное из профессии не выпадать, а остальное дело удобства, вкуса и бюджета.
42 Зеленый Кот
 
12.12.14
12:20
о венгерской нотации никто не слышал?
мда...
43 su_mai
 
12.12.14
12:23
(42) К чему й то ты?
44 Vovan1975
 
12.12.14
12:23
(42) простите, а почему Вам не пофик?
45 quest
 
12.12.14
12:25
(42) ты предлагаешь по префиксу тип восстанавливать? бред
46 Зеленый Кот
 
12.12.14
12:27
(43), (44), (45)
внимательно читаем, что хочет топик стартер - там все написано!
47 Vovan1975
 
12.12.14
12:28
(46) и как венгерская нотация поможет топикстартеру?
48 quest
 
12.12.14
12:29
(46) ТС - сам не знает чего хочет. И в этом не знает ему венгерская нотация никак не поможет.
49 su_mai
 
12.12.14
12:30
(46) Я на правах топик стартёра ответственно заявляю!
Про венгерскую, польскую и прочие нотации мне все известно. Просто хочу декларативно указывать тип переменной или параметра для того чтобы после точки вываливались его методы и фсё.
50 su_mai
 
12.12.14
12:31
+(49) И не фигачить всякие заглушки типа: (7)
51 quest
 
12.12.14
12:33
(49) на правах участника этой ветки ответственно отвечаю - возьми в руки руководство по снегопату и сделай все что тебе хочется.
52 su_mai
 
12.12.14
12:35
(42) Если уж говорить про венгерскую нотацию, то более разумным предложением для декларативного указания типа мне видится что то на подобии явного приведения типа:

Функция Привет((ТаблицаЗначений) Таблица)

(51) Очень он нужен ваш снегопадт, сама 1С стоит не мало, а тут еще кому то деньги надо платить за возможность что то допиливать самому :)
53 quest
 
12.12.14
12:36
(52) Ты вообще в теме? Снегопат ты бесплатно можешь скачать и пользоваться сколько хочешь.

>что-то допиливать самому
Ленивые же одинесники пошли....
54 su_mai
 
12.12.14
12:37
(53) https://snegopat.ru/order.php А это что?
55 su_mai
 
12.12.14
12:38
+(54) Базовая стоимость одной лицензии составляет 4000 рублей.
56 su_mai
 
12.12.14
12:39
+(55) И ставить его надо у всех клиентов. У серьезных заказчиков, любые установки надо согласовывать с админи и тп
57 quest
 
12.12.14
12:39
https://snegopat.ru/downloads/ по слову снегопат

"Ленивые и не любопытные" (с) А.С. Пушкин
58 quest
 
12.12.14
12:40
(57) - по слову "демо" имелось в виду
59 quest
 
12.12.14
12:41
(56) А вообще ты прав - напиши в 1С письмо - они и быстро это сделают. И качественно. И главное - тебе ничего настраивать не придется.
60 su_mai
 
12.12.14
12:42
(57) (58) (59) Мне тебя жаль.

В демо-версию встроены следующие ограничения:

Ограничены поддерживаемые релизы 1С. Взависимости от вашего комплекта, может быть использован один из следующих релизов 1С:
8.2.16.368
8.2.17.169
8.2.18.104
Подсказка о параметрах методов иногда выводится в нечитаемом виде
При включении опции перехвата штатного списка 1С он иногда не перехватывается
При вызове макросов периодически появляется запрос нажать на нужную кнопку.
Нет синхронизации скриптов снегопата и дополнительных скриптов с центральным репозитарием.
61 quest
 
12.12.14
12:47
Год сижу на бесплатной версии.
За это время только один раз показало нечитаемо подсказки.
Запрос нажатия - решаемая проблема если думать
Синхронизация с центральным репозитарием - лично мне никуда не уперлась
Минус - только то что не слезть с 9.2.18.104 - но для меня не критично. Я по клиентам не бегаю.

А насчет жаль - читай (59). И продолжай надеяться на дядю который за тебя все сделает.
62 su_mai
 
12.12.14
12:49
(61) >А насчет жаль - читай (59). И продолжай надеяться на дядю который за тебя все сделает.

Не, я об этом не спорю, надежды на то, что кто-то, что-то сделает практически нет.
63 su_mai
 
12.12.14
14:31
(0) Можно реализовать объявление типа переменной/параметра в виде определенного типа области (на подобии using в C#):

Функция Привет(Парам1, Знач Парам 2, ... Парам N)

#Область Наша область Использовать (Парам 1 как ТаблицаЗначений, Парам N как Число(15,2))

#КонецОбласти

КонецФункции