1С - как язык ООП
// =================
//Раздел Переменных
//————————-
Перем кнДаНет Экспорт;
Var отвДа Export;
Перем отвНет Export;
//Раздел процедур и функций
//————————————-
Процедура ПриНачалеРаботыСистемы()
// Проверка рабочего времени
// Если СтатусВозврата=0, то приложение автоматически закроется
Перем Чс,Мн,Ск;
ТекущееВремя(Чс,Мн,Ск);
Время=Чс+Мн/60+Ск/3600;
Если (Время>14) и (Время<15) тогда
Ответ=Вопрос("Сейчас не рабочее время!
|Будете работать?",кнДаНет);
СтатусВозврата(?(Ответ=отвНет,0,1));
EndIf;
КонецПроцедуры
//Раздел основной программы
//————————————-
Сообщить("Текущее время:"+CurrentTime());
//Инициализация переменных модуля
кнДаНет=4; //"Да+Нет"
отвДа=6; //"Да"
отвНет=7; //"Нет"[/COLOR][/SIZE][/SIZE]
к стати 1C понимает и по английски, т.е. двуязычная эта бодяга.
Ребята просто взяли и перевели на русский язык (жаль что не на олбанский)
И к стати, им большой плюс, что в таком виде это достаточно быстро все работает (не компилясь в исполняемый модуль)
Много знакомых 1эСников, и ни у кого нареканий на сам язык не было.
Все работает как часы, чего нельзя сказать о СУБД, хотя тут все от рук кодера зависит, а 1С кодеров криволапых держит
Это их хлеб....
И чем меньше людей захотят в ЭТО вникать, тем меньше у них конкуренция и больше зарплаты....
А зарплаты у них действительно на высоте....
Это их хлеб....
И чем меньше людей захотят в ЭТО вникать, тем меньше у них конкуренция и больше зарплаты....
А зарплаты у них действительно на высоте....
В 1С действительно хороший встроенный язык, в отличии от всего остального.
А вся беда самой 1С как программного продукта в том что они хотят быть сравни Windows, т.е. успеть за желаниями абсолютно всех пользователей, поэтому конфигурации у них косячные получаются.
ЗЫ в ЭТО вникнуть можно за один месяц максимум, если имел дело когда нибудь с программированием, другой вопрос что те кто берет на работу программера 1С не хотят вникать, поэтому и платят хорошие зарплаты...
к стати 1C понимает и по английски, т.е. двуязычная эта бодяга.
Ребята просто взяли и перевели на русский язык (жаль что не на олбанский)
И к стати, им большой плюс, что в таком виде это достаточно быстро все работает (не компилясь в исполняемый модуль)
Ога, все равно, что бейсик промтом перевели (с) :D
А реально -1С вполне мощный язык, начиная с 8-го, так как 7-й не в курсе, что такое события.
Даже рекурсию поддерживает
И что удобно, так это то что в переменную можно любой тип данных запихнуть, правда разные типы потом не сравнишь, а так весьма просто писать
Исключительно из коммерческих соображений (ну чтоб книжечки и курсы по своему языку организовывать) ?
Исключительно из коммерческих соображений (ну чтоб книжечки и курсы по своему языку организовывать) ?
почему не использует?
это ж паскаль... пожалуйста, пиши все операторы и команды в английском варианте
[quote=1C Help]
Используемые термы:
#Если (#If)
#Тогда (#Then)
#ИначеЕсли (#ElsIf)
#Иначе (#Else)
#КонецЕсли (#EndIf)
Клиент (Client)
Сервер (Server)
ВнешнееСоединение (ExternalConnection)
И (AND)
ИЛИ (OR)
НЕ (NOT)
[/quote]
это ж паскаль... пожалуйста, пиши все операторы и команды в английском варианте
При чем тут английский вариант?
Я говорю про конкретные существующие языки программирования и, видимо, их существующие интерпретаторы.
Если это Pascal, то в 1C я могу написать следущее
var
b: integer; {base}
h: integer; {height}
A: real; {Area}
begin
{-----Assign values to variables-----}
b := 10;
h := 7;
{-----Calculation-----}
A := b * h / 2;
{-----Print the result-----}
write('The area of a triangle with a base of ');
write(b:0);
writeln(' units and');
write('a height of ');
write(h:0);
write(' units is ');
write(A:0:1);
writeln(' square units.')
end.
и это будет работать?
Я говорю про конкретные существующие языки программирования и, видимо, их существующие интерпретаторы.
Если это Pascal, то в 1C я могу написать следущее
var
b: integer; {base}
h: integer; {height}
A: real; {Area}
begin
{-----Assign values to variables-----}
b := 10;
h := 7;
{-----Calculation-----}
A := b * h / 2;
{-----Print the result-----}
write('The area of a triangle with a base of ');
write(b:0);
writeln(' units and');
write('a height of ');
write(h:0);
write(' units is ');
write(A:0:1);
writeln(' square units.')
end.
и это будет работать?
с незначтельными изменениями (я в паскале не силен, в часности write/writeln, но думаю что это аналогично Message)
А вообще о разном говорим, язык 1С это язык т.н. бизнес-программирования, где взят за основу паскаль (хотя может быть Basic), и заточен под решение конкретных задач для обслуживания СУБД, точно так же как в SAP-e (ABAP 4), только там взят за онову Кобол и прикручено к нему, все что необходимо.
А вообще о разном говорим, язык 1С это язык т.н. бизнес-программирования, где взят за основу паскаль (хотя может быть Basic), и заточен под решение конкретных задач для обслуживания СУБД, точно так же как в SAP-e (ABAP 4), только там взят за онову Кобол и прикручено к нему, все что необходимо.
Тогда я повторю свой вопрос:
почему 1С не использует какой-нибудь общепринятый язык? Например, python. Исключительно из коммерческих соображений?
Не "взятый за основу", а реально существующий язык программирования. Можно даже взять готовый интерпретатор этого языка. Добавить библиотеку классов "под решение конкретных задач для обслуживания СУБД". При необходимости добавить IDE и какой-нибудь кодогенератор.
Зачем придумывать свой язык, если есть уже готовые?
Я вижу только один ответ: чтоб выкачать денег и за него тоже. Другими словами, чтоб сузить круг специалистов. Но я могу ошибаться. Может есть какие-то объективные причины?
Я вижу только один ответ: чтоб выкачать денег и за него тоже. Другими словами, чтоб сузить круг специалистов. Но я могу ошибаться. Может есть какие-то объективные причины?
конкретно, разработчикам языка 1С от того что они "придумали" свой язык я думаю что никопейки не капает за его использование, равно как и учредителям 1С, а о простых программистах (точнее об их кошельках), которые на нем пишут они вряд ли думали намомент разработки, т.о. коммерческой выгоды явно никакой нет.
Причину вижу в простоте использования этого языка
ЗЫ: а вопрос "зачем он нужен" сродни вопросу "зачем нужен T-SQL, ведь можно было расширить, допустим Basic, SQL-ем и не надо придумывать новый язык".
Здесь ты ошибаешься. Так или иначе разработчик системы получает коммерческую выгоду за обучение специалиста использованию этой системы.
Причину вижу в простоте использования этого языка
Субъективно. Кроме того, простота языка не означает простоту его использования при реализации практических задач.
ЗЫ: а вопрос "зачем он нужен" сродни вопросу "зачем нужен T-SQL, ведь можно было расширить, допустим Basic, SQL-ем и не надо придумывать новый язык".
Зачем нужно выдумывать ущербный трехколесный велосипед - логичный вопрос.
Я пообщался с программистом, в прошлом имевшим дело с 1С. Вот к каким выводам мы пришли:
1) исторический - просто так сложилось в веках;
2) производная от исторической - наработана большая кодо-база, портировать которую крайне сложно, в т.ч. в виду отсутствия тестов;
3) коммерческий 1 - проблемы с лицензиями и т.п. сторонних разработчиков,
4) коммерческий 2 - использование стороннего языка приведет к затратам на реорганизацию системы, которые оправдываются лишь при долгосрочной перспективе и в условиях конкуренции, а т.к. 1С монополист, то "сидит на попе ровно";
5) коммерчески 3 - как уже и говорил, дополнительная выгода от сужения круга специалистов;
6) сервисный - поддерживать свой язык несколько проще (с т.з. оперативности), чем использовать сторонний.
и опять же "да" на твой вопрос, в коммерческих целях (тож пообщался с 1С программистом)... ну да ты уже ответил :)
[quote=Green]5) коммерчески 3 - как уже и говорил, дополнительная выгода от сужения круга специалистов;[/quote]
не согласен :
1. В настоящее время программистов 1С хоть кушай одним местом.
2. При желании освоить язык (если человек когда нибудь что нибудь программировал) дело 2-х месяцев, до нормального уровня
3. Вообще какая выгода от сужения круга специалистов? если их не будет, или будет мало, тогда системой просто пользоваться ни кто не будет, т.к. не в состоянии будут ее поддерживать.
ЗЫ: вобще многие ERP системы работают со своим языком.
А для чего здесь поддержка .NET ?
Ну раз пошла такая тема, то можно просто предоставить COM-интерфейсы компонентам 1С и писать на любом языке. :)
Другое дело, что это будет сложно сопровождать. Поэтому встроенный язык все же предпочтительнее для систем подобного типа.
Ну раз пошла такая тема, то можно просто предоставить COM-интерфейсы компонентам 1С и писать на любом языке. :)
1С предоставляет свои COM-интерфейсы (во всяком случае из одной базы 1С с помощью СОМ можно подключиться к другой базе) , другое дело, что они все равно коряво с БД работают... может к следующей (9-й) версии поправят
Так же имеется мнение (и я частично согласен с ним), что на русском лучше понять данную бизнес-логику, но тогда получается, что он - для тех, кому лень учить английский. На счет зачем придумывать свой - так важный фактор - это специфика применения. Ведь можно спросить так же: а зачем придумали Перл если есть Си /Алгол/Лисп/ВБ...(это к примеру, я их не приравниваю). Хм, также разработчики языка 1С гемору себе прибавили, ведь сейчас многие программеры 1С-ки спихивают все неудачи на техподдержку.
Кстати, что-то уж очень отошли от темы. Может давайте не тут пофлеймим, если еще есть о чем?
Кстати, что-то уж очень отошли от темы. Может давайте не тут пофлеймим, если еще есть о чем?
Высказываем таким образом оригинальную благодарность разработчикам 1С :D
Ну раз пошла такая тема, то можно просто предоставить COM-интерфейсы компонентам 1С и писать на любом языке. :)
Другое дело, что это будет сложно сопровождать. Поэтому встроенный язык все же предпочтительнее для систем подобного типа.
Ну а как ты думаешь, зачем поддержка .NET может вообще понадобиться программе?? Ну скажем, написал Вася Пупкин плагин к 1С на VB (ну например, он хочет сделать, чтоб у него во время работы в левом верхнем углу открывалось окошечко и стриптизерша танцевала) и спокойно его интегрировал.. Дело не в том, что это нельзя обойти стандартными средствами, дело в том, что это было бы намного удобней и менее геморройней делать при помощи .NET.
Там даже и не плагин можно сбацать. Например, в MS SQL Server на .NET можно писать даже хранимые процедуры и сохранять их набор прямо на сервере в отдельной сборке. Иное дело, что разработчики 1С, скорее всего, будут долго собираться с силами, чтобы схостить .NET в своей СУБД...
им дай Бог бы нормально привязать все к самой СУБД MS SQL Server, а то заявлена как серверная, а на самом деле на сервере только хранит данные, а когда надо что то достать, гоняет всю базу по сети.
Это точно! 8-главый процессор недавно прикупили, так вот сегодня SQLный сервис при работе с 1Ской повесил его в два счета. Ну не бред? Такое чувство, что 1Ска не с MSSQL работает, а с текстовыми файлами. :(