Вход | Регистрация
    1  2  3   

Использование классов .Net в 1С для новичков

Использование классов .Net в 1С для новичков
Я
   Serginio1
 
27.01.16 - 11:58
Выложил статью http://catalog.mista.ru/public/448668/ в которой постарался объяснить работу обертки NetObjectToIDispatch45 обертывающую Объекты .Net через Com объекты.
Саму разработку можно скачать отсюда http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

Недавно решенные проблемы
Асинхронные WinHttp.WinHttpRequest.5.1 и MSXML2.XMLHTTP
Помощь с Web сервисом

Предыдущие темы
Динамическая компиляция для использования .Net событий в 1С
1C Messenger для отправки сообщений, файлов и обмена данными между пользователям
v8: v8: Использование сборок .NET в 1С 7.x и 8.x

По поводу регистрации Для проведения тестов нужно распаковать архив . Татем нужно  зарегистрировать
Нужные DLL. Запускаем РегистрацияКомСервера.exe от имени администратораи выбираем NetObjetToIDispatch45.dll которая лежит в DLLNetObjetToIDispatch45
Либо 1с и многопоточность
   Serginio1
 
1 - 27.01.16 - 14:28
Послеобеденный ап
   Garykom
 
2 - 27.01.16 - 14:38
(0) Уже почти отлично, понятнее будет многим зачем это.
   ДенисЧ
 
3 - 27.01.16 - 14:40
"С точки зрения 1С их можно рассматривать как классы"

Уже ошибка. В 1с нету классов. Поэтому и точки зрения такой нет
   Serginio1
 
4 - 27.01.16 - 14:48
(3) Речь шла про Классы, Валуе типы и перечисления.

Обертка позволяет работать с классами, а для 1С это будут объекты.


В 1С есть классы. Например Документы.Реализация это класс
У него есть статические методы (методы Менеджера) и Методы объекта, свойства (реквизиты). У него есть тип.
Так, что Денис ты не прав.
   Serginio1
 
5 - 27.01.16 - 14:49
(2) А мне почему то казалось, что и в первоначльной статье все очень просто.
   ДенисЧ
 
6 - 27.01.16 - 14:50
(4) Нету в 1с классов.
Покажи мне цитату из ЖКК, где оные упоминаются.
   Волшебник
 
Модератор
7 - 27.01.16 - 14:51
(6) В 1С есть классы. В ЖКК они называются Объектами метаданных.
   ДенисЧ
 
8 - 27.01.16 - 14:51
(7) Покажите мне в ЖКК слово "класс".
тогда я угомонюсь.
   Timon1405
 
9 - 27.01.16 - 14:51
(6) проф разработка с 157
А  от  чего  зависит  состав  стандартных  команд?  Конечно  же,  от  класса 
объектов,  которому  принадлежит  объект  конфигурации.  И  это  логично, 
так  как  различные  классы  объектов  конфигурации  предназначены
для решения различных прикладных задач.
Например,  объект-справочник Товары предоставляет  команды  открытия 
списка элементов – Товары, создания нового элемента – Товари создания 
новой группы – Товар: создать группу, а объект-отчет Остатки товаровтолько 
команду открытия формы отчета – Остатки товаров(рис. 7.27)
   Волшебник
 
Модератор
10 - 27.01.16 - 14:51
(8) Ты тупой?
   Serginio1
 
11 - 27.01.16 - 14:53
(6) Ту суслика видишь? А он есть. Если ЖКК не написано, это не значит, что классов нет. Просто они названы по другому
МенеджерСправочник, МенеджерСсылка,МенеджерОбъект
   Garykom
 
12 - 27.01.16 - 14:56
(3) не придирайся к словам/фразам вырванным из контекста

"В  .Net есть классы, структуры(Value типы), перечисления. С точки зрения 1С их можно рассматривать как классы. Каждый класс характеризуется типом."

"По аналогии с 1С классы это справочники, документы и т.д.
У классов могут быть статические методы и свойства  и методы и свойства объекта."

"По аналогии с 1С статические методы это методы менеджера (НайтиПоКоду,НайтиПоНомеру), а методы объекта аналогичны методам объекта (Модифицированность, Удалить, Номер,Дата)"
   Serginio1
 
13 - 27.01.16 - 15:01
(12) Спасибо. Кстати несмотря на большие накладные затраты для вызова  на примере StringBuilder вызов метода .Net объекта всего в 2.25 раз дороже родного.
   ДенисЧ
 
14 - 27.01.16 - 15:02
(10) Да, я же 1сник.
   Serginio1
 
15 - 27.01.16 - 15:04
(14) Спасибо, что ветку поддерживаешь. Может и сам заинтересуешься.
   KrabCore
 
16 - 27.01.16 - 16:07
(0) выглядит очень не плохо, только недавно сокрушался что в 1с нет регулярок.

но боюсь что в массы не зайдет, т.к. надо "думать" и знать синтаксис шарпа. те кто умеет думать - давно уже занимаются чем-то более серьезным, а тех кто остался в 1с все устраивает)
   ejikbeznojek
 
17 - 27.01.16 - 16:53
ОбернутаяСтрока=Врап.ОбернутьЛюбойОбъект("Тестовая строка");

Как-то странно, когда я в отладке разворачиваю обёрнутую строку начинает ошибки выдавать)

Ошибка в методе Chars не найден метод "System.string.Chars". mscorlib
   Garykom
 
18 - 27.01.16 - 17:00
(17) не надо этого делать ))
отладчик 1С вроде не предназначен чтобы COM объекты раскручивать
   Serginio1
 
19 - 27.01.16 - 17:32
(16) Ну есть примеры и на бейсике. Всегда могут спросить и помочь могу не только я
   Serginio1
 
20 - 27.01.16 - 17:34
Кстати посмотрел я на пример где синхронно вызывается ассинхронный метод и решил написать классы, которые вызывали события по окончании работы задачи

Теперь можно любой асинхронный метод возвращающий Task<TResult> вызвать асинхронно

Выполнитель=Врап.ПолучитьАссинхронныйВыполнитель();
    ДобавитьОбработчик Выполнитель.ПриОкончанииВыполненияЗадачи, ПриОкончанииВыполнения;

    HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll");
Клиент=Врап.СоздатьОбъект(HttpClient);
Задача=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx";);
Выполнитель.Выполнить(задача);
КонецПроцедуры

Процедура ПриОкончанииВыполнения(Данные)
Попытка
Сообщить(Врап.Встроку(Данные));
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки
   Serginio1
 
21 - 27.01.16 - 17:35
Чуть позже выложу новую версию
   Serginio1
 
22 - 27.01.16 - 17:39
Загрузил. По идее ссылка та же
http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip
   Serginio1
 
23 - 27.01.16 - 17:47
(16) То что в массы не пойдет давно известно, но постепенно количество людей использующие эту разработку увеличивается.
Например http://catalog.mista.ru/public/434345/
Просто используя классы .Net можно сильно упростить себе множества задач.
   Cyberhawk
 
24 - 27.01.16 - 17:54
Слишком много ссылок в первом сообщении. Что открывать-то для быстрого ознакомления?
   Serginio1
 
25 - 27.01.16 - 18:04
(24) Самую первую  http://catalog.mista.ru/public/448668/

(16) Вот пример использования делегатов для Replace
Динамическая компиляция для использования .Net событий в 1С
   qwerty
 
26 - 27.01.16 - 21:53
я с этой ветки Асинхронные WinHttp.WinHttpRequest.5.1 и MSXML2.XMLHTTP
Спасибо, все заработало. Теперь осталось разобраться в обилии классов dot net и где их можно использовать
   Garykom
 
27 - 27.01.16 - 22:01
Шеф, в linux можно сделать sudo apt-get install mono-devel

После этого к примеру консольные проги на .Net даже скомпиленные под Вин (главное битность платформы) прекрасно выполняются через
mono hello.exe
Вот как бы из платформы 1С на linux это тоже заюзать? COM то на линукс нету ((
Нуно NativeAPI юзать
   Cyberhawk
 
28 - 27.01.16 - 22:23
Во-первых, хорошо бы ссылку на статью на ИС, а не на каталоге мисты... Я для этого "оборачиваю" ссылки на ИС с помощью goo.gl
Во-вторых, в статье говорится "поможет сильно увеличить возможности 1С без написания COM объектов или ВК" - хотелось бы увидеть конкретный краткий список (либо в начале статьи - типа будет рассмотрено (или оглавление), либо в конце статьи, как итог), а не бегать по статье и коду
   Злопчинский
 
29 - 27.01.16 - 22:43
если пишешь "для новичков" - то и пиши для новичков
Вопрос-1
""Начнем сразу на примерах. Итак, для начала создадим объект, который будет обертывать объекты .Net в COM объекты.""
- что такое "обертывать", зачем "обертывать"
   Злопчинский
 
30 - 27.01.16 - 22:43
или в статье сразу обозначь минимально требуемый уровень квалификации для использования сабжа/понимания статьи
 
 Рекламное место пустует
   Злопчинский
 
31 - 27.01.16 - 22:45
"Теперь получим тип System
String=Врап.ПолучитьТип("System.String");"
- так все-таки получаем тип систем или стринг? - если систем - то при чем здесь стринг?
   Злопчинский
 
32 - 27.01.16 - 22:46
аббревиатура GAC - не определена (м.б. это общепринятая какая-то?)
   Злопчинский
 
33 - 27.01.16 - 22:52
а так, конечно, здорово.
но нужно скорее всего чистым сугубо 1С-кодерам...
   Garykom
 
34 - 27.01.16 - 23:02
да это немного уровень не новичка

(29) обертка это объект скрывающий внутри себя тонкости/сложности использования другого кода
для C# и .Net стандартный термин

к примеру на 1С вызов функции/процедуры с параметрами, внутри которой сложный код это такой пример обертки

(31) тип String(Стринг, Строка), "находится" в "модуле" (пространстве имен, сборке) System, поэтому полное его имя "System.String"
для обращения по короткому имени нужен в начале кода "импорт модуля", для "базовых модулей" он неявный/подразумевается

(32) https://ru.wikipedia.org/wiki/Global_Assembly_Cache
это нечто вроде набора процедур/функций/объектов и прочего платформы 1С, все прочее отдельно ))
   Злопчинский
 
35 - 27.01.16 - 23:12
(34) спсб за пояснения
   Serginio1
 
36 - 27.01.16 - 23:42
(26)  Посмотри 20 22 другое решение твоей проблемы
завтра сделаю с вызовом события при ошибке
(28) http://catalog.mista.ru/profile/82159/public/
   Serginio1
 
37 - 27.01.16 - 23:42
(34) Спасибо за помощь.
   Serginio1
 
38 - 27.01.16 - 23:44
   Serginio1
 
39 - 27.01.16 - 23:55
(31) Там как раз и написано про пространство имен

Каждый класс характеризуется именем класса, пространством имен и сборкой (размещение Dll, Exe).

Рассмотрим класс String https://msdn.microsoft.com/ru-ru/library/system.string(v=vs.110).aspx

Представляет текст как последовательность знаков Юникода.

Исходный код .NET Framework для этого типа см. в указанном источнике.

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

Начнем сразу на примерах. Итак, для начала создадим объект, который будет обертывать объекты .Net в COM объекты.
врап=новый COMОбъект("NetObjectToIDispatch45");




Теперь получим тип System
String=Врап.ПолучитьТип("System.String");



Для понимания правильнее будет так
ПространствоИмен="System.";
String=Врап.ПолучитьТип(ПространствоИмен+"String");



Кто работал с ФабрикаXDTO, то там тоже есть простанство имен и типы.
   Cyberhawk
 
40 - 27.01.16 - 23:58
(36) Зачем ссылка на твои публикации?
   Serginio1
 
41 - 28.01.16 - 07:23
(40) Извини не понял.
Если ты имел ссылки на форуме мисты, то я показал все статьи на инфостарте. Просто все ссылки на инфостарте перефодятся на каталог мисты.

А что касается "Во-вторых, в статье говорится "поможет сильно увеличить возможности 1С без написания COM объектов или ВК" - хотелось бы увидеть конкретный краткий список (либо в начале статьи - типа будет рассмотрено (или оглавление), либо в конце статьи, как итог), а не бегать по статье и коду"

То в ссылке на разработку куча примеров использования .Net классов, а составлять полный список классов .Net займет всю мою оставшуюся жизнь.
   extrim-style
 
42 - 28.01.16 - 08:46
   Serginio1
 
43 - 28.01.16 - 09:55
1C Messendger выложил отдельно https://yadi.sk/d/G67GAnc-nrUJ9
   Serginio1
 
44 - 28.01.16 - 09:57
(26) Я сейчас 20 подправлю что бы можно было отлавливать ошибки и передавать данные о задаче. И сделаю отчет где расскажу как асинхронно выполнять методы
   Cyberhawk
 
45 - 28.01.16 - 11:43
(41) "в ссылке на разработку куча примеров использования .Net классов" // Вот каждый пример Я и предлагаю озаглавить и оформить получившийся список
   Serginio1
 
46 - 28.01.16 - 11:46
Выложил новый вариант http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

где добавил асинхронное выполнение методов
Сейчас в .Net широко применяют оператор await. Он применяется к методам возвращающие Task или Task<TResult>.

Task это задача представляет асинхронную операцию. Доступ к результату осуществляется через свойство Result.
В 1С можно использовать либо синхронный вариант например
ДанныеРесурса=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx").Result;

Но для того, что бы этот метод выполнить асинхронно я создал класс с помощью которого легко использовать эти методы асинхронно.

врап=новый COMОбъект("NetObjectToIDispatch45");

Выполнитель=Врап.ПолучитьАсинхронныйВыполнитель();
ДобавитьОбработчик Выполнитель.ПриОкончанииВыполненияЗадачи, ПриОкончанииВыполнения;

Обработчик события выглядит так
Процедура ПриОкончанииВыполнения(Задача,ДанныеКЗадаче)

    // Обязательно нужно отлавливать ошибку в 1С
    // Иначе она передается в .Net где обрабатывается там
    Попытка
Так как задача может завершиться с ошибкой
Мы должны проверить, и если ошибка нужно предпринять какие то действия
        Если (Задача.IsFaulted) Тогда  // Ошибка выполнения

            Сообщить("Ошибка "+Врап.ВСтроку(Задача.Exception));
            Сообщить("Данные к задаче "+Врап.ВСтроку(ДанныеКЗадаче));

        иначе
            Сообщить("=====Выполнена задача ====");
            Сообщить("Данные к задаче "+Врап.ВСтроку(ДанныеКЗадаче));
            Сообщить(Врап.ВСтроку(Задача.Result));


        КонецЕсли;

    Исключение
        Сообщить("Ошибка в процедуре");
        Сообщить(ОписаниеОшибки());
    КонецПопытки

КонецПроцедуры

Вызываем задачу так
HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll");
    Клиент=Врап.СоздатьОбъект(HttpClient);
    Задача=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx";);
    Выполнитель.Выполнить(задача,ТекущаяДата());
Вторым параметром можно передавать любые данные, что бы понять какая задача выполнена и что с ней делать, так одновременно может работать множество задач

Например
АсинхМетоды = Врап.СоздатьОбъект(КлассДляТестаАсинхронныхМетодов);

    Для сч=1 по 10 Цикл
        задача=АсинхМетоды.ДолгаяЗадача(Строка("Задача "+сч));
        Выполнитель.Выполнить(задача,сч);
    КонецЦикла
   Serginio1
 
47 - 28.01.16 - 11:48
(45) Я описываю все примеры в
NetObjectToIDispatch.docx
АсинхронноеВыполнениеМетодовВ1С.docx
ОберткаДляНетовскихСобытий.docx
1СMessenger.docx
   Serginio1
 
48 - 28.01.16 - 11:55
   Cyberhawk
 
49 - 28.01.16 - 13:28
(47) Я тебе про статью на ИС - сделать для примеров, описанных в ней, заголовки и список/навигацию. Надеюсь, с третьего раза ты все-таки въедешь...
   Serginio1
 
50 - 28.01.16 - 13:46
(49) Спасибо. Понял.
Кстати я тут народ спрашиваю какие лучше примеры привести, что бы было использовать в повседневной жизни и при этом изучить классы .Net . Как пользоваться документацией, поиском на том же http://stackoverflow.com/
   Serginio1
 
51 - 28.01.16 - 15:01
Апну. А то вдруг, кто пропустил сиё чудо.
   Адинэснег
 
52 - 28.01.16 - 15:13
лучеб жаву учили
   Garykom
 
53 - 28.01.16 - 15:24
(52) кто знает C# И .Net, тот уже на 80% знает java и JRE|JDK
   СвинТуз
 
54 - 28.01.16 - 15:48
а классы это что?

объект::позовипапу()
тоска какая то )
   Serginio1
 
55 - 28.01.16 - 16:02
(52) И жабу учим, только вот Нетовские легче использовать в 1С без обертки.
(54) В 1С классы это документы, справочники и соответственно их наследники конкретные классы.

За статические методы  и свойства  например документов
отвечают менеджеры ДокументМенеджер.<Имя документа> 
За методы и свойства объектов
ДокументОбъект.<Имя документа> 

Так, что в 1С та же тоска
   Serginio1
 
56 - 28.01.16 - 16:03
(52) И жабу учим, только вот Нетовские легче использовать в 1С через комовскую оберткой.
   СвинТуз
 
57 - 28.01.16 - 16:10
(55)
конечно
только наследования нет ?
   Serginio1
 
58 - 28.01.16 - 16:12
(57) На самом деле есть абстрактный документ, от которого все наследуются.
http://catalog.mista.ru/public/393228/
   Serginio1
 
59 - 28.01.16 - 16:13
58+ А все остальные sealed 
https://msdn.microsoft.com/ru-ru/library/ms173150.aspx
   СвинТуз
 
60 - 28.01.16 - 16:17
(59)
в с++ можно вызвать метод печать класса
а можно вызвать этот же метод родительского класса

1с это конструктор, для людей знающих предметную область
и 1с все быстрее шагает в эту сторону
 
 Рекламное место пустует
   Карупян
 
61 - 28.01.16 - 16:19
(60) ты уверен, что знаешь куда шагает 1с?
   СвинТуз
 
62 - 28.01.16 - 16:19
(61)
нет
   СвинТуз
 
63 - 28.01.16 - 16:21
но отчеты можно уже не программировать а настраивать
другое дело , что видал я такие отчеты ...
знать нужно все то же самое 
что на 7.7 что на 8.3
люди с удивлением для себя открывают на 8.3, то что 
в 90-е было в порядке вещей на языках более низкого уровня
   СвинТуз
 
64 - 28.01.16 - 16:22
нынешние коучеры 
переписывают информацию из БОЛ ...
   СвинТуз
 
65 - 28.01.16 - 16:23
учителя от 1с

просто народ не знает где корни ...
многие кроме 8.3 не видели ничего
   Serginio1
 
66 - 28.01.16 - 16:23
(60) То же самое и в 1С.
А например .Net шагает в сторону функциональщины, но основанной на классах. Просто это зарыто глубоко и его не видно.
Но это не значит, что классов нет.
(63) Программировать все равно нужно. Использование классов .Net просто расширяет возможности 1С. Только и всего
   Карупян
 
67 - 28.01.16 - 16:24
Мне кажется и ооп рано или поздно будет в 1с
   Карупян
 
68 - 28.01.16 - 16:24
а может и вообще на жаву перейдут
   Карупян
 
69 - 28.01.16 - 16:25
(68) вон уже сервер начали на жаву переписывать
   Serginio1
 
70 - 28.01.16 - 16:25
(68) А может и на .Net он тоже кроссплатформенный. А могут и JS или TS.
   Карупян
 
71 - 28.01.16 - 16:33
(70) см (69) УЖЕ начали, а именно сервер 8.4
   Тoлько_Просмотр
 
72 - 28.01.16 - 16:36
(68) Это будет лучшее, что делала фирма 1С со времен платформы 7.7.
   Masquerade
 
73 - 28.01.16 - 16:37
(67)

Уж скорей бы.
   Masquerade
 
74 - 28.01.16 - 16:37
(68)

Увы конечно, но уж хотя бы java
   Карупян
 
75 - 28.01.16 - 16:38
(73) "скорей" в терминах 1с - это лет 10
   Музон Хиггса
 
76 - 28.01.16 - 16:41
(60) >> в с++ можно вызвать метод печать класса
а можно вызвать этот же метод родительского класса 

А можно и в ногу стрельнуть

#include <iostream>


class Foo {
    public:
        int x;
        virtual void print();
};

class Bar: public Foo {
    public:
        int y;
        virtual void print();
};

void Foo::print() {
    std::cout << "x: " << this->x << '\n';
}

void Bar::print() {
    std::cout << "x: " << this->x << " y: " << this->y << '\n';
}

void print(Foo foo) {
    foo.print();
}

void print2(Foo &foo) {
    foo.print();
}
void print3(Foo *foo) {
    foo->print();
}

int main() {
    Bar bar;
    bar.x = 5;
    bar.y = 10;

    print(bar);
    print2(bar);
    print3(&bar);
}
   Garykom
 
77 - 28.01.16 - 16:47
(72) как то попытался открыть проект в еклипсе, на нетбенсе он у меня открывался 1 минуту

в эклипсе просто надоело ждать, снес
   Garykom
 
78 - 28.01.16 - 16:47
(77)+ это я к чему

неважно на чем, один фиг испоганить чтобы тормозило смогут

1С сча на C++ написаны и что?
   Карупян
 
79 - 28.01.16 - 17:01
(77) у тебя 16 гиг памяти есть? )))
   Serginio1
 
80 - 28.01.16 - 17:07
(71) От того, что они движок напишут на Java, на язык 1С я думаю мало повлияет. А вот если бы приняли за основу языка 1С аналог TypeScript то это дало бы бОльший эффект как для клиента, так и для сервера, так как там псевдотипизация существует. Меньше ошибок, большая скорость набора за счет интеллисенсе, ну и главное замыкание да и асинхронность вещь нужная
   Serginio1
 
81 - 28.01.16 - 17:12
   Музон Хиггса
 
82 - 28.01.16 - 17:20
   Serginio1
 
83 - 28.01.16 - 17:24
(82) Кстати а есть питон с типизацией. У TS мне нравится псевдотипизация
   Garykom
 
84 - 28.01.16 - 17:26
(79) на домашнем да 16 гигов, на ноуте 4
   Музон Хиггса
 
85 - 28.01.16 - 18:01
   Музон Хиггса
 
86 - 28.01.16 - 18:03
(79) Да ну! Хватит и 8-ми. )
   Serginio1
 
87 - 28.01.16 - 18:09
(85) Спасибо. Интересно.
   Garykom
 
88 - 28.01.16 - 18:15
ненавижу питон... тупице который придумал синтаксис конструкций языка основывать на пробелах/табуляции

чтоб ему вечно после html/doc со сменой выравнивания прогу запустить пытаться на python
   Музон Хиггса
 
89 - 28.01.16 - 18:22
(88) https://ru.wikipedia.org/wiki/ABC_(язык_программирования)
Автор:     
Leo Geurts, Lambert Meertens (англ.), Steven Pemberton (англ.); Центр математики и информатики
   Garykom
 
90 - 28.01.16 - 18:24
(89) так их несколько таких было "теоретиков"???

сначал трое и потом еще их ученик?

Интересные факты
ABC часто связывают с Python, так как разработчик последнего — Гвидо ван Россум, — первоначально, в 1980-е годы, работал над ABC[3][4][5].
   Музон Хиггса
 
91 - 28.01.16 - 18:30
На практике с отступами нигде проблем не возникает, а вот листинги из-за отсутствия скобок чище и короче.
   Garykom
 
92 - 28.01.16 - 18:35
(91) угу особенно когда на практике может быть до 10 вложенных конструкций
   Музон Хиггса
 
93 - 28.01.16 - 18:36
(92) Не может.
   Карупян
 
94 - 28.01.16 - 18:37
Lisp vs Python
Кто кого? )))
   Музон Хиггса
 
95 - 28.01.16 - 18:41
(94) Есть достаточно языков намного более мощных чем яваскрипт/бэйсик. Так что не важно.
   Карупян
 
96 - 28.01.16 - 18:42
(95) ты не понял шутки
   Garykom
 
97 - 28.01.16 - 18:52
(94)
Вопрос: чем lisp отличается от xslt?
Ответ: степенью окаменелости
   Masquerade
 
98 - 29.01.16 - 11:57
(75)

В точку, lol
   Serginio1
 
99 - 29.01.16 - 14:57
Послеобеденный, пятничный ап
   Serginio1
 
100 - 29.01.16 - 16:26
Дааа скучная пятница. Может у кого вопросы есть.
  1  2  3   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.