Имя: Пароль:
IT
 
Даешь функциональное программирование в 1С
0 Ненавижу 1С
 
гуру
20.01.09
08:18
Как было бы приятно писать вместо
Количество = РегистрыОстатков.ТоварыНаСкладах.Остатки(МоментХ, Новый Структура("Склад",Склад()).Количество;
вот так:
Количество = РегистрыОстатков.ТоварыНаСкладах.Остатки(МоментХ, (А => А.Склад=Склад)).Количество;
То есть фильтр как анонимная функция от строки остатков, принимающая логическое значение
1 у лю 427
 
20.01.09
08:19
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|_биться___|____|__
_|____|___здесь_|____|____|
___|____|____|____|____|_
_|____|____|____|____|____|
___|____|____|____|____|___


узай
2 у лю 427
 
20.01.09
08:19
юзай 1С++
3 i-rek
 
20.01.09
08:20
Скорую ! :)
4 Мимохожий Однако
 
20.01.09
08:29
(0)Почему предложенное приятнее?
5 Ненавижу 1С
 
гуру
20.01.09
08:33
(4) как бы более безопаснее. хотя в нетипизированном 1С сводится на нет преимущество. второе: более гибче
6 rie
 
20.01.09
08:44
(0) Напиши препроцессор (например, используя Шаблон).
(5) Хорошо, конечно, когда стиль программирования поддерживается языком.
Но стиль программирования - это не язык. Знающий Haskell сможет использовать свои навыки и в 1С. Но хватит ли знатоков Haskell для обслуживания всех существующих ИБ?
7 Гений 1С
 
гуру
20.01.09
08:51
Я видел два раза функциональное программирование - в Лиспе и в XSLT. В лиспе было еще ничего, интересно, но после того, как я посмотрел XSLT, я понял, что функциональное программирование - это зло и маст дай. НЕнужное усложнение кода!
8 Гений 1С
 
гуру
20.01.09
08:52
я к чему клоню. Функциональное программирование хорошо выглядит только в теории (лисп). Когда начинаешь юзать его на практике (XSLT) получается такая ж..а!
9 rie
 
20.01.09
08:53
(7) Не стоит судить о функциональном программировании по XSLT.
10 Ненавижу 1С
 
гуру
20.01.09
08:54
(7) зачатки ФП есть в C# и java
11 rie
 
20.01.09
08:59
(10)И даже (не к ночи будь сказано) в 1С-ике!
12 i-rek
 
20.01.09
09:03
ваще остатки запросом вынимать надо
13 NikVars
 
20.01.09
09:31
(0) Для этого нужно вводить статью в Налоговый кодекс.
Я даже название придумал "Использование функционального прогаммирования налоговым агентом в бухгалтерском учете хозяйственной деятельности"
14 Ненавижу 1С
 
гуру
20.01.09
21:49
как-то вот так можно обобщить регистр накопления остатков (аналог 1С).

TBalanceRigister<A,B,C>=generic

   table TurnoverTable
       Period: datetime not null;
       Debet: boolean not null;
       Dimension: A;
       Resource: B;
       Information: C;
   end;

   table BalanceTable
       Period: datetime not null;
       Dimension: A;
       Resource: B;
   end;

   function Balance<X,Y>(Point:datetime; Filter:function(A,B):boolean=((p,q)=>true); GroupBy:function(A):X=(p=>p); SumBy:function(B):Y=(p=>p)):table(Dim:X,Res:Y);
   begin
       for select GroupBy(Dimension) as Dim, SUM(SumBy(Resource)) as Res
           from
           (    select Dimension, Resource
               from BalanceTable
               where (Period=BeginPeriod(Point))
               union all
               select Dimension,
                   case
                   when Debet then Resource
                   else -Resource
                   end
                   from TurnoverTable
               where (Period between BeginPeriod(Point) and Point)
           )
           where Filter(Dimension, Resource)
           group by GroupBy(Dimension) do
               yield (Dim,Res);
   end;

end;
15 Гений 1С
 
гуру
22.01.09
13:58
(9) Я и не сужу, но это наглядный пример, когда выбралил неуместный способ реализации языка.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.