С одним пока не разобрался, кирилицу он поддерживает?
Вроде бы да, но попытался модифициировать
.sub main
say "Hello world!"
say "Привет мир!" << ошибка: "Invalid character in ASCII string"
.end
Надо бы разобраться как сконфигурировать его на UTF-8 хотябы.
1. Язык 7.7 не стоит повторять- гиблая платформа. Очень дорого.
2. Язык 8ки повторяет питон примерно на 90%. IMHO, ессно.
3. смысл в своем языке есть только в том случае, если он _кардинально_
облегчит работу. /me не эксперт - но не вижу смысла рожать новый язык.
PS. это не троллинг. Это - выяснение истины.
Язык будет ECMAscript. Вообще использование встроенного языка нужно
свести к минимуму.
Не вижу смысла пока использовать какой-либо другой скриптовый язык
вместо встроенного ECMAScript. Тут важнее проработанность объектной
модели и событий, в среде которых будет выполняться скрипт.
Это сложная задача. Но в пределах 1-го уникального
ускоспециализированного
приложения она решается (наверное).
Меня скорее интересует среда для создания приложений, чем
узкоспециализированный стандалон.
Давно мечтаю о такой схеме расширения внутренних объектов:
Объект + скрипт.
Т.е. абстрактно: есть в системе такой объект "Документ" -
инкапсулируюзий
поведение документа.
Создается в скрипте так:
вДокум = создатьОбъект("Документ.РасходнаяНакладная");
вДокум.Метод();
У него несколько системных методов. а(); б(); с(); Метод();
в дереве метаданных присутствует узел:
"РасширенияСтандартныхОбъектов"->Документ.
который содержит модуль расширения.
Пишем в этом модуле:
Функция блаБлаБла() {
Возврат 1+2;
}
В метаданных виду документа "РасходнаяНакладная" выбираем предка
"РасширенияСтандартныхОбъектов"->Документ.
И опа:
можно вызвать
вДокум = создатьОбъект("Документ.РасходнаяНакладная");
вДокум.блаБлаБла();
Знаете сколько кода это бы съэкономило, если бы так можно было
расширить любой объект системы?
Знаете сколько хлама можно было-бы убрать из конфигурации? Ого-го.
Разделять системные методы (код которых написан на низкоуровневом
языке) и скриптовые нужно - обеспечит скорость работы.
Я бухгалтер-программист по специальности. :)
Обладаю правом смотреть под любым углом :)))
проверку ИНН и КПП у в справочнике "контрагенты" куда вставишь?
В движек?
==============================================================================
// проверкаИНН( псСтрокаПлохо ) © trdm 2011
Процедура проверкаИНН( псСтрокаПлохо )
// http://www.-------.ru/bugtrack/view.php?id=2021
Если (ВидКонтрагента = Перечисление.ВидыКонтрагентов.Организация) ИЛИ
(ВидКонтрагента = Перечисление.ВидыКонтрагентов.ОрганизацияБезОПФ)
Тогда
вИНН = СокрЛП(ИНН_отдельно);
вИННЧ = глТолькоЧисла(вИНН);
Если вИННЧ <> вИНН Тогда
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
ИНН у клиента (только числа)");
КонецЕсли;
вИННДлина = СтрДлина(вИНН);
Если (вИННДлина = 0) ИЛИ (вИННДлина = 10) Тогда
Иначе
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
ИНН у клиента (10 симв.)");
КонецЕсли;
вКПП = СокрЛП(КПП_отдельно);
вКППЧ = глТолькоЧисла(вКПП);
Если вКППЧ <> вКПП Тогда
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
КПП у клиента (только числа)");
КонецЕсли;
вКППДлина = СтрДлина(вКПП);
Если (вКППДлина = 0) ИЛИ (вКППДлина = 9) Тогда
Иначе
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
КПП у клиента (9симв.)");
КонецЕсли;
ИначеЕсли (ВидКонтрагента =
Перечисление.ВидыКонтрагентов.ЧастноеЛицо) ИЛИ (ВидКонтрагента =
Перечисление.ВидыКонтрагентов.Предприниматель) Тогда
вИНН = СокрЛП(ИНН_отдельно);
вИНН = глТолькоЧисла(вИНН);
Если вИННЧ <> вИНН Тогда
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
ИНН у клиента (только числа)");
КонецЕсли;
вИННДлина = СтрДлина(вИНН);
Если (вИННДлина = 0) ИЛИ (вИННДлина = 12) Тогда
Иначе
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
ИНН у клиента (12 симв.)");
КонецЕсли;
вКПП = СокрЛП(КПП_отдельно);
вКПП = глТолькоЧисла(вКПП);
вКППДлина = СтрДлина(вКПП);
Если вКППДлина = 0 Тогда
Иначе
псСтрокаПлохо = глДобавитьКСтроке(псСтрокаПлохо,"Неправильный
КПП у клиента (0 симв.)");
КонецЕсли;
КонецЕсли;
КонецПроцедуры // проверкаИНН()
Ну тогда легче.
В программе будут 3 разновидности скриптового движка, которые
наследуются от одного базового: движок для работы с документами, со
справочниками и с отчетами. В данном случае проверку ИНН и КПП я бы
вставил как функцию движка для справочника. Он бы вызывался при
проверке валидности соответствующих полей справочника "Контрагенты".