pigmeich: (Default)
1Cie, of course, has made numerous enemies, especially loading clients with merchandise (not for free.) But, in Russia, only alternative is SAP R/4. Microsoft Dynamics, Oracle and IBM haven't even 20% collectively, so developers are golden. For other markets the situation is pretty the same, only 1C and SAP is substituted for other two companies.

I will not relate to "How apps looks like" questions because, firstly, apps is different and from different vendors (including precise company-savvy) and "plain" Accounting and Trade could be only to micro-companies. Secondly, there's not only manufacturer apps, but any company can develop their own.

So, what's benefits of 1C as a platform?

1. Object-oriented database.

Simple "Copy()" method could be used for copying a document, for example. Compare to bunch of code in self-written app in C#. Also, the reference consistency is preserved—even if broken, could be repaired by the standard processor.

2. Object-oriented database can morph itself.

If the mission goes to Mars, and there's a need instead of one yes/no "bad partner" attribute for 5 describing the kind of bad, so platform will automatically change the database model and save all precedent data. All is needed is to click-click in Designer. Moreover, if quickly rollback to old app version, yes/no attribute is saved with all of data.

3. The predecessor of SAP:Crystal Reports.

What is sold for extra money by SAP, 1C has by default. The report or print form developing task is available even to receptionist. Yes, there will be programming needed, but there's no need for break-down spec of rows' height to tax invoice.

4. DCS (Data Composition System)

User reports designing system. Wanna group sales by partners? Click-click, no programming. Totals by partners? Too. Sales peer-to-peer as pivot table? Too. Filter? Already. Colorise? Just name the colour.

5. Managed Application and Taxi interface.

For one side, interface is automatically rearranged by the user's access rights settings. Some lacunes, footprints of rearranging? Nope.

For the other, the app could be opened in the browser. Yes, in the browser from anywhere in the world, if the rights is granted, of course. Looks exactly the same. Almost no difference, albeit hotkeys of the browser.

6. Accounting Register, Calculation Register.

Do accounting by any country standard? Of course some programming is required, but there's no a database object problem. So no, not like SAP: you have elementary records, wrap them in code and write anything. Accounting Register fully supports Russian accounts alignment as well as US GAAP complex transactions. And there even masking the number of account by default.

The same to Calculation Register. This is for periodic calculations, including compensation, that has a main event and displacing it additionals. Standard method calculates the amount of hours in the main event. But you don't need to break in parts in the prime record, it even not recommended.

Therefore, 1C platform exceed all present by quality. Why 1C doesn't conquered the world still? Because of State lobby, and CIS is conquered, by the way. But, in Russia, there's a problem when the project budget is lower than SAP one, still requiring all the features. Of course it's not right. Yes, a beautiful 1C app cost in developing the same as an ugly SAP one, but not cheaper.
pigmeich: (Default)
1Сочка, конечно, нажила себе немало врагов, особенно, закидыванием клиентов мерчендайзом (не бесплатно). Но из реальных альтернатив в России пока только SAP R/4. Microsoft Dynamics, Oracle и IBM не имеют даже 20% рынка вместе, а значит спецы золотые.

Я не буду касаться вопросов «Как выглядят конфигурации», потому, что, во-первых, конфы бывают разные от разных производителей (в том числе улучшенные специально под предприятие) и «нулевые» Бухгалтерия Предприятия и Управление Торговлей бывают только у мелочи. Во-вторых, на стандартных конфах мир клином не сошелся, и есть возможность разрабатывать свои.

Итак, какие есть преимущества у 1С, как платформы?

1. Объектная база данных.

Для копирования, например, документа достаточно одной операции «Скопировать()». Сравните с портянкой кода на самописке на C#. Также, сохраняется ссылочная целостность — если она даже и нарушается, то восстанавливается стандартной обработкой платформы.

2. Объектная база данных морфиться.

Если политика партии изменилась, и вместо одного реквизита да/нет «плохой партнер», нужно 5, объясняющих какой он плохой, то платформа автоматически изменит структуру базы данных и сохранит все старые. Надо всего-лишь покликать в Конфигураторе. Более того, если быстро откатить на старую версию конфигурации, то да/нет реквизит останется со всеми данными.

3. Предшественник SAP:Crystal Reports.

То что SAP продает за отдельные деньги, в 1С есть по умолчанию. Задача разработки формы отчета или печатной формы документа доступна даже для офис-менеджера. Да, потом нужно будет налепить код, но не надо скрупулезно выписывать в ТЗ какой высоты должны быть строки счет-фактуры.

4. СКД.

Фрэймворк пользовательской настройки отчетов. Хотите сгруппировать по партнерам продажи? Пара кликов, никакого программирования. Итоговые данные по партнерам? Тоже. Кросс-продажи в виде сводной таблицы? Тоже. Отобрать? Да, пожалуйста. Раскрасить? Только скажите во что.

5. Управляемые Формы и интерфейс Такси.

С одной стороны, что интерфейс автоматически перестраивается с учетом прав пользователей. Какие-то пустые места, следы перестройки? Нет, ничего нет.

С другой стороны, конфигурацию можно открывать в браузере. Да, в браузуре, с любой точки мира, если разрешить, конечно. Выглядит точно также. Практически никаких отличий, за исключением горячих клавиш браузера.

6. Регистр бухгалтерии, регистр расчета.

Вести учет по стандарту бухгалтерского учета любой страны? Для этого, конечно понадобится программирование, но никаких проблем с объектами базы данных нет. И нет, не так, как в SAP: у вас есть простейшие записи, оберните их в код и напишите что угодно. Регистр бухгалтерии поддерживает и русскую корреспонденцию счетов и комплексные проводки US GAAP. И присвоение названия счета по маске тоже есть из коробки.

То же самое с регистром расчета. Это периодические расчеты, в том числе зарплаты, в которых, например, есть основное событие и вытесняющие его дополнительные. Стандартная функция считает сколько часов в основном событии, при этом разбивать его в первичном документе не только не обязательно, он и вредно.

Таким образом, платформа 1С превосходит все существующие по качественным параметрам. Почему 1С до сих пор не захватила мир? Потому что есть правительственное лобби, а СНГ 1С захватила, как раз. Но есть проблемы, когда на разработку выделяют меньше денег, чем на SAP, а требует полного использования всех вышеописанных функций. Это, конечно, неправильно. Да, красивое приложение на 1С занимает столько же усилий, сколько корявое на SAP, но оно не может стоит дешевле.
pigmeich: (Default)
Есть такая частая бухгалтерская задача: распределение по базе. Эти слова означают, что сумму или список (выборку, обычно) сумм нужно разделить между другим списком пропорционально долям.

Есть код, который я использую уже почти год, хочу им поделиться.

Сначала код:

CC-SA

Функция ЗаписатьНаПроцентИВозвратитьОбщее(Откуда, Куда, Доля, ЗнаковОкругления, Знач Общее = 0)
	Значение = Окр(Откуда * Доля, ЗнаковОкругления);
	Куда = Значение;
	Возврат Общее - Куда;
КонецФункции


Теперь объяснения:

Есть несколько проблем в распределении по базе:
1. Сделать так чтобы сумма получившихся чисел была расна изначальной сумме.
2. Применить стратегию округления.
3. Применить стратегию распределения остатков округления (а они будут).

Тут я пожалуюсь на 1С: система прекрасная за счет объектой базы данных. Язык -- ужасный: как раз объектов и нет. Все остальные достижения языков программирования тоже прошли мимо. Встроенные и конфигурируемые объекты, из-за этого Java-шпагетти-style.

Тем не менее, можно применить процедурный подход. Например, как код выше. :) Возможно непонятно что такое общее: я объяснюю.

Вызов функции выглядит так (на каждое исходное число): ОбщаяСумма = ЗаписатьНаПроцентИВозвратитьОбщее(ИсходнаяСумма, ЗначениеДляЗаписи, Доля, ВДанномСлучаеОбыно2НоМожетБытьИМинус6, ОбщаяСумма).

В Общем аккамулируется остаток округления. Далается это при потоковой обработке данных, так что нет необходимости презагружать выборку для пересчета.

Почему общее упоминается два раза? Это нестандартный подход, поэтому я считаю, что изменение Общего в функции должно быть выделено в соответствии с хорошем стилем кода.

Также потоково считается к какому элементу будет прибавляться Общее (то есть остаток округления) по окончанию обработки. Тут, если речь идет о регистре бухгалтерии, я рекомендую сделать отдельную проводку с пометкой "остатки окгругления". Хорошим бухгалтерам нравиться, проверено.

Что же?
1. Первая проблема решена, что само по себе самое главное в бухгалтерии (ну или кому как, есть варианты, короче).
2. Стратегию окгруления можно ставить, передавая параметр, к сожалению, если округление зависит от получившихся чисел, потоково посчитать не получается (в остальных случаях, ничего сложного нет).
3. Применение стратегии распределения остатков округления становиться легким, поскольку остаток аккамулируются в переменной.

Keeks.

PS расчет доли разделен на две строчки для удобства отладки: во второй строчке -- неявное преобразование с возможной потерей данных.

Profile

pigmeich: (Default)
pigmeich

June 2017

S M T W T F S
    1 23
4 5678910
11121314151617
18192021222324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 20th, 2017 02:15 am
Powered by Dreamwidth Studios