Текущее время: Сб, июл 05 2025, 09:04

Часовой пояс: UTC + 3 часа


FAQ по разделу



1. Прежде чем писать - подумай: а стоит ли это делать? Если ты все-таки решил написать, подумай еще раз. На форуме запрещено редактирование собственных сообщений, а администрация (даже после твоих жалостных просьб) ничего редактировать или удалять не собирается. Помни, что в определенных случаях публикация поста в этом форуме может стоит тебе: премии, репутации, нервов, работы и т.д. Прецеденты были.

2. "Месть - блюдо, которое лучше подавать холодным". Старая клингонская поговорка (С). Эмоции - твой враг. Если ты обвиняешь конкретного человека или компанию в серьезных нарушениях законодательства - имей на руках доказательства. Лучше всего подойдет решение суда. Сойдет и твое заявление в суд, СК, прокуратуру или полицию. На самый крайний случай - сохраненная переписка. Бездоказательные обвинения будут удаляться без предупреждения. Имей в виду, что часто после прочтения поста человеком, которого ты обвиняешь, могут наступить обстоятельства, описанные в п.3.

3. Отвечай за базар. Будь доступен хотя бы в ЛС или на почте для общения с администрацией форума, если после публикации твоего поста возникнут проблемы. Поскольку, если ты струсишь и сбежишь, то тот, кому надо, тебя все равно найдет, а параллельно устроит неслабые проблемы лично мне (уже бывало такое). А я, администратор форума, не имею могущественных и влиятельных друганов, которые могли бы за меня постоять. Более того: сильный стресс может меня в теории просто убить. Подумай, выгоден ли тебе такой исход событий.

4. Будь честен. Если в конфликте с человеком или компанией есть элемент и твоей вины, обязательно упомяни об этом. Тем самым ты сразу отсечешь возможные обвинения тебя (и меня) в распространении клеветы. Если такая правда неприемлема для тебя - не пиши вообще ничего. Целее будешь сам и добавишь мне пару лет жизни в качестве бесплатного приложения.

5. Не переходи на личности. Будь корректен, такт и этичность всегда смотрятся лучше, чем поливание грязью.

6. Имей терпение. Если ты не нашел темы с обсуждением какой-либо компании в этом форуме, возможно, это не просто так. Прежде, чем открывать новую тему, задай вопрос админу или модератору, мы все поясним. Если ты открыл тему, а ее удалили, открывать новую не стоит, в определенных случаях это может привести к предупреждениям и банам на форуме. Причины удаления всегда можно уточнить у админа или модератора в приватном порядке.

7. Прочитай пп. 5.2 - 5.4 правил форума. Там изложено почти все то же самое, что и здесь, но с некоторыми подробностями, которые лишними не будут.



Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 388 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 26  След.
Автор Сообщение
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 17:53 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 14:41
Сообщения: 902
Откуда: Москва
Пол: Мужской
жулик написал(а):
Готов выслушать вариант решения через nested internal table, если такой вообще существует в природе и сможет проходить массив хотя бы за О(n*log^n). Сейчас Вы имеете возможность на деле доказать, что умеете пользоваться Гуглом, в отличии от меня.
Какие логарифмы?! Мы ничего не ищем, мы проходим все элементы. Проходить массив (в ABAP это внутренняя таблица) можно только за O(n). Проход двумерного массива будет (на ABAP вложенные таблицы) равен, если быть педантом, O(n*(1+m)), трехмерного - O(n*(1+(m*(1+k)))).
Пусть m=n=k=10, тогда классический массив будет O(1000), а на внутренних таблицах - O(1110). То есть разница в производительности 11%. Пусть теперь m=n=k=100, тогда кл. массив будет O(1000000), а на вн. таблицах - O(1010100). То есть разница уже всего лишь в 1%. То есть чем больше общее кол-во элементов в массиве, тем меньше будет разница в производительности между классическим массивом и ABAP-овским эквивалентом. Так что не надо лохматить бабушку! 8)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 17:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 19 2012, 08:33
Сообщения: 182
Пол: Мужской
жулик написал(а):
Обсуждалась задача с двумерным массивом, но неопределенного размера.

Ну и создавайте структуру динамически, кто мешает то. Будет вам internal table с динамическими полями, в чем, собственно, проблема-то ?

_________________
crusty написал(а):
Логистика - понятие растяжимое


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 17:56 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
Про смех в налоговой - это на небезызвестный форум бухгалтеров. Там вам как расскажут - сами обхохочетесь. :twisted:

_________________
Пушномолочная свинья-несушка (тест)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 18:53 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
murmur написал:
Какие логарифмы?! Мы ничего не ищем, мы проходим все элементы. Проходить массив (в ABAP это внутренняя таблица) можно только за O(n). Проход двумерного массива будет (на ABAP вложенные таблицы) равен, если быть педантом, O(n*(1+m)), трехмерного - O(n*(1+(m*(1+k)))).
Пусть m=n=k=10, тогда классический массив будет O(1000), а на внутренних таблицах - O(1110). То есть разница в производительности 11%. Пусть теперь m=n=k=100, тогда кл. массив будет O(1000000), а на вн. таблицах - O(1010100). То есть разница уже всего лишь в 1%. То есть чем больше общее кол-во элементов в массиве, тем меньше будет разница в производительности между классическим массивом и ABAP-овским эквивалентом. Так что не надо лохматить бабушку! 8)
Выкладка для массива абсолютно правильная. Только массив <> внутренней таблице и гложут меня сомнения, что SAP получает значение {n;m} за О(1). Чтобы это утверждать нужно знать способ представления внутренней таблицы в памяти и способ чтения из нее. Так что я склонен думать, что это похоже на O(n*(1+m)*k). Где k будет О() для алгоритма чтения из структуры данных. Если k <> log^n, то я не буду настаивать. Но в линейность функции О(k) мне верится с трудом.

И я прошу заметить, что мы еще обсуждаем простейший вариант реализации массива. Я сознательно не стал предлагать использовать массив произвольных типов данных для сравнения возможностей, где в строка может быть определена множеством произвольных типов, включая другие массивы. :wink:

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 19:35 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
Кодер написал(а):
При необходимости вкладываете дальше - получаете больше размерность. Или индукция - тоже не ваш конек, как и поиск?
Я что-то не сразу понял логику реализации murmur в его коде. Да, там нет ограничений по осям. Только ваши nested internal table там тоже отсутствуют. У него просто таблица, где по ключу из двух полей находится значение. Что у него куда вложено?

Кодер написал(а):
Не передергивайте, а то всех забрызгаете. Я веду речь о том, что в некоторых операциях обработки сумм НДС(база, сама сумма, сумма всего) деление - вполне рабочий инструмент.
Ну решите свою задачку. Пусть тогда будет неизвестными будет или количество товаров или их цена. Ставки НДС 0, 10, 18. В любом другом случае сумма налога будет считаться по моей формуле или по ее производной.

Кодер написал(а):
Ну как же? вот же!
Контактируя с поставщиками товаров и услуг, предприятие оплачивает НДС с закупаемой массы товара
Или вы думаете, что при закупке не бывает платежей и поставщик работает на голом альтруизме?
Вот это действительно - чудесатее! Тут я согласен на все 100!
Ну хорошо, заплатили поставщику, поставщик заплатил НДС. Как это связано с "Ну вот есть счет, его оплачивали частями. В счете был НДС. Надо отражать в отчетности тот самый ндс пришедшийся на частичные оплаты."?

Кодер, с вами очень тяжело вести диалог. Если вам просто лень, приводить вменяемою аргументацию ваших заявлений, то зачем вообще делать эти заявления?

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 20:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
жулик написал(а):
Я что-то не сразу понял логику

Судя по вашим сообщениям, для вас это - нормально. Пожалуй даже "не сразу" там лишнее
жулик написал(а):
Что у него куда вложено?

повторю его код
Code:
TYPES:
  TRow TYPE TABLE OF i,
  TArray TYPE TABLE OF TRow.

DATA:
  lt_array TYPE TArray.

Каждая завпись lt_array - это внутренняя таблица.
При необходимости увеличить размерность дальше - по индукции.

жулик написал(а):
Ну решите свою задачку.

Я свою задачу отлично давно решил. Ваша формула и ее модификации под нее не подходят. Там используется деление. Задача типовая при расчетах различных сумм НДС.

жулик написал(а):
Ну хорошо, заплатили поставщику, поставщик заплатил НДС. Как это связано с "Ну вот есть счет, его оплачивали частями. В счете был НДС. Надо отражать в отчетности тот самый ндс пришедшийся на частичные оплаты."?

Оплата счета поставщика может производится частями в различных налоговых периодах. Исполненные платежи следует учитывать для расчета уплаты\возмещения ндс. Т.е. найти сколько вот в этом именно платеже было НДС. Исходный НДС был в самом счете. Ну и т.д. в самых разных вариациях.

Глядя на ваш пример со статистической задачей, я вижу что вы не внимательно читали тему для розжига. Речь шла не о математических, а о финансовых задачах (те самые задачи "с точностью до копейки"). Понятно, что второе - подвид первого. Но со своими тонкостями. Поэтому решать дифуры в абап - да, извращение. Для этого есть что-то свое (привет многофункциональным инструментам, но, кажется, с дифурами лучше справится матлаб, мапл и т.д.)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 21:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Не понял, что хотел доказать жулик вот этим, но справится с ABAP у него явно не получилось :lol:
[quote="жулик"]Я сознательно не стал предлагать использовать массив произвольных типов данных для сравнения возможностей, где в строка может быть определена множеством произвольных типов, включая другие массивы.[/url]
То есть вложенные массивы в ABAP не погуглили :roll:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 21:07 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
Кодер написал(а):
Судя по вашим сообщениям, для вас это - нормально. Пожалуй даже "не сразу" там лишнее
Что-то вы слишком нервно реагируете. Замете, что я, вопреки моим ограниченным способностям, на личности не переходил.

Кодер написал(а):
повторю его код
Я про первый пример написал. Как этот (второй) решает задачу я так до сих пор и не понял. Может я конечно туплю, я уже несколько лет не писал на АВАРе, но в чем логика? Мы объявили список интов и назвали его TRow. Потом переназвали его TArray. Какую структуру данных мне будет возвращать код. Мне кажется, что это будет одиночное поле типа инт. Я ошибаюсь?
Code:
LOOP TArray INTO lt_array.

Кодер написал(а):
Я свою задачу отлично давно решил. Ваша формула и ее модификации под нее не подходят. Там используется деление. Задача типовая при расчетах различных сумм НДС.
Блестящая аргументация!

Кодер написал(а):
Оплата счета поставщика может производится частями в различных налоговых периодах. Исполненные платежи следует учитывать для расчета уплаты\возмещения ндс. Т.е. найти сколько вот в этом именно платеже было НДС. Исходный НДС был в самом счете. Ну и т.д. в самых разных вариациях.
Так я в первом посте и написал, что деление только в задачах распределений.

Кодер написал(а):
Глядя на ваш пример со статистической задачей, я вижу что вы не внимательно читали тему для розжига. Речь шла не о математических, а о финансовых задачах (те самые задачи "с точностью до копейки"). Понятно, что второе - подвид первого. Но со своими тонкостями. Поэтому решать дифуры в абап - да, извращение. Для этого есть что-то свое (привет многофункциональным инструментам, но, кажется, с дифурами лучше справится матлаб, мапл и т.д.)
Пример был из линейной алгебры. Дифуры, вроде бы, в мат.анализе. А от решения проблем с округлениями можно уйти ведя учет на целочисленных типах. Через целые типы большинство банков работает.

Только суть даже не в уравнениях, а в том, что оптимизационные задачи решаются более сложными средствами, чем те, что может предложить АВАР. Есть целый ряд задач оптимизации и прогнозирования за которые в АВАР среде лучше просто не браться.

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 21:16 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
Удав написал(а):
То есть вложенные массивы в ABAP не погуглили :roll:
Object[] anyData = new Object[n];

Это пример линейного массива на Java, который позволяет хранить: строки как строки, числа как числа, файлы как файлы и т.п.
Напомню, что все объекты и примитивные типы (переменные) являются наследниками Object. Т.е. я могу делать так:

Code:
int i = 5;
String s = "строка";
File f = new File(c:/any.xml);
Object[0] = i;
Object[1] = s;
Object[2] = f;

Как мне такое сделать в АВАР?

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 21:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
жулик написал(а):
Что-то вы слишком нервно реагируете...на личности не переходил.

Никаких переходов на личности. Исключительно мнение о ваших сообщениях в треде.
жулик написал(а):
Я ошибаюсь?

Да, ошибаетесь. В примере murmur - действительно а-ля 2-мерный массив получается. При необходимости можно продолжить вложенность и получить большую размерность (я же говорю - по индукции). Объявить тип TCube который является внутренней таблицей, у которой каждый элемент это TArray. При необходимости - повторить дальше.
жулик написал(а):
Блестящая аргументация!

Атож! Вы думали я буду полностью вам расписывать задачу? Не, не буду. Если вы сами не работали с отчетностью НДС, то я не вижу смысла вам это расписывать

жулик написал(а):
Однако в реальном финансовом учете деления встречаются крайне редко

Это ведь ваши слова в сообщении Ср фев 17, 2016 11:03 am ? Налоговая отчетность - не редкость, это одна из центральных тем учета. В ней деление используется постоянно. Опровергать будете?

жулик написал(а):
Пример был из линейной алгебры. Дифуры, вроде бы, в мат.анализе. А от решения проблем с округлениями можно уйти ведя учет на целочисленных типах. Через целые типы большинство банков работает.

Дифуры я привел как гиперболизированный до крайности пример мат.расчетов.
Целочисленные типы не спасут. Спасает именно реализация внутри правил округления.
Вы не поверите, задачи оптимизации вполне себе решаются на абапе. Да, он живет исключительно в erp sap. И да, на нем внутри реализована оптимизация(балансировка) в модуле производства и проч. аналогичные процессы оптимизации. В части стат. задач: на нем же реализован расчет IRR, например.

жулик написал(а):
Как мне такое сделать в АВАР?


Использовать тип reference to data.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 22:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
жулик написал(а):
Как мне такое сделать в АВАР?

Как правильно заметил Кодер, это всего лишь массив ссылок ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 22:08 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
Кодер написал(а):
Да, ошибаетесь.
Значит ошибаюсь. Если бы я не ошибался, то сидел бы в казино, а не на форуме. :)

Кодер написал(а):
Атож! Вы думали я буду полностью вам расписывать задачу? Не, не буду. Если вы сами не работали с отчетностью НДС, то я не вижу смысла вам это расписывать
С НДС работал, но не как консультант. Самое разумное правило для меня было считать оплату НДС поставщика после оплаты товара. Так мне было проще потом подавать на возмещение. Тем более, что в срок не уложиться сложно. А оспаривать отказ в возмещении гораздо сложнее и программирование тут ни при чем.

Кодер написал(а):
Опровергать будете?
Буду:
жулик написал(а):
Однако в реальном финансовом учете деления встречаются крайне редко. Только в операциях распределений.


Кодер написал(а):
Целочисленные типы не спасут. Спасает именно реализация внутри правил округления.
Спасут. Представьте, что вы ведете учет в копейках. Тогда у вас будет:
5/2 =2 -> целая часть
5%2 = 1 -> хвост, который докидывается в одну из половин.
Если брать отношения между клиентом и банком, то копейка достается банку. Если между счетами клиента, то первому по порядку счету.
Именно по этому сказки про хакеров, которые поимели копеечки с округлений - бред. :)

Кодер написал(а):
Вы не поверите, задачи оптимизации вполне себе решаются на абапе. Да, он живет исключительно в erp sap. И да, на нем внутри реализована оптимизация(балансировка) в модуле производства и проч. аналогичные процессы оптимизации.
Оооо!... РР и оптимизация - мои любимые темы, а обсуждать линейную регрессию в SAP APO для функции f(x)=sin(x) мое любимое занятие. Можем завтра всем форумом вспомнить формулу наименьших квадратов и рассчитать O(n) в этой функции. :)

Кодер написал(а):
reference to data.
Я этого не знаю. Если это действительно работает, то я соберу узелок и уйду по росе на другой форум. В scala тоже не все хорошо с массивами.

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 22:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Code:
REPORT  z_test_ref.

TYPES: BEGIN OF t_data,
         ref TYPE REF TO data,
       END OF t_data.
DATA: lv_i TYPE i VALUE 5,
          lv_s TYPE string VALUE 'строка',
          lv_f TYPE xstring,
          lt_data TYPE STANDARD TABLE OF t_data,
          ls_data TYPE t_data.

END-OF-SELECTION.
  GET REFERENCE OF lv_i INTO ls_data-ref.
  APPEND ls_data TO lt_data.
  GET REFERENCE OF lv_s INTO ls_data-ref.
  APPEND ls_data TO lt_data.
  GET REFERENCE OF lv_f INTO ls_data-ref.
  APPEND ls_data TO lt_data.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 22:45 
Специалист
Специалист

Зарегистрирован:
Вт, янв 22 2008, 18:56
Сообщения: 176
@Удав:
Code:
GET REFERENCE OF lv_i INTO ls_data-ref.
Какое значение примет ls_data-ref в отладке? 5?

т.е. если после этого кода у меня будет строка кода:
Code:
clear: lv_i, lv_s, lv_f
Я после этого смогу сделать:
Code:
LOOP lt_data INTO ls_data.
и вернуть все значения?

_________________
John 9:25: “I was SAP, but now I C.”


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP 2016
СообщениеДобавлено: Ср, фев 17 2016, 22:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
жулик написал(а):
Спасут. Представьте, что вы ведете учет в копейках. Тогда у вас будет:
5/2 =2 -> целая часть
5%2 = 1 -> хвост, который докидывается в одну из половин.
Если брать отношения между клиентом и банком, то копейка достается банку. Если между счетами клиента, то первому по порядку счету.
Именно по этому сказки про хакеров, которые поимели копеечки с округлений - бред


(смотрит мутным взглядом): 1(одна) копейка%118. Куда хвост относить будем?

жулик написал(а):
Можем завтра всем форумом вспомнить формулу наименьших квадратов и рассчитать O(n) в этой функции

А может вы сперва с поиском в гугле, пользованием хелпа и пониманием термина "по индукции" разберетесь? Думаю после этого вопросов у вас станет гораааздо меньше! :-D

2 Удав: проводить ликбез по абапу в ветке про работу - харам. Так что я пожалуй - пас. И так день нажористый получился. Так и попкорн скоро кончится :-)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 388 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 26  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB