![]() |
![]() |
![]() |
|
Даешь функциональное программирование в 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) Я и не сужу, но это наглядный пример, когда выбралил неуместный способ реализации языка.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |