Модульная система учета на ФБП. .



Posted by Анимица Анатолий on March 05, 1999 at 14:14:02:

In Reply to: Поприветствуем ПЕРВОГО. posted by Борис, Киев. on March 04, 1999 at 23:57:19:

: .. расписать модульную методологию построения систем на ФБП. Тогда глядишь и можно будет разбить работу над ОБЩЕЙ системой..

Откликаясь на предложение Бориса, предлагаю начать с рассмотрения модулей ФБП для совместной разработки.
Вот темы, которые, на мой взгляд, надо обсудить прежде всего.
1. План счетов.
1.1. Балансовые счета бухучета. Обычные обозначения счетов из двух цифр в соответствии с регламентом Плана счетов бухучета. 01..99.
1.1.1. Организация субсчетов. ВСЕ балансовые счета имеют хотя бы один субсчет, даже если он не нужен. Это позволит всегда добавить субсчет, когда он вдруг понадобится. Операции, проводки которых корреспондируют с этим счетом, указывают прямо на этот единственный субсчет.
В каждом счете, где субсчетов больше 1, добавляется еще один субсчет "все" или "итого" на вкус бухгалтера.
Он стоит последним и имеет обозначение [ch 248]+[n1 (счет)] (я писал о нем раньше - терминатор счета и групповой операции). При выборе такого субсчета в @- обращении автоматически выполнять какие-либо действия со всеми субсчетами счета одновременно. Более удобная вещь, чем #. Только нужно иметь в виду, что [ch 177]break if (x) внутри файла-коэффициента пока не работает, да она и не нужна, так как есть stop. Единственное назначение break if сегодня - заблокировать запуск "создать документ", чтобы не пересечься с генерацией ПД в файле-коэффициенте. Придется его писать снаружи, передавая на выход ф-к значение переменной блокировки. Тогда лист дерева содержит три строки:
1) индикатор Дт индикатор Кт файл-коэффициент
2) break if (переменная блокировки)
3) создать документ (лучше без параметра)
1.1.2. Дополнительный терминатор - цикловый. Обозначение °#(обозначание счета) все в цикле. Наличие такого субсчета позволяет разграничить функции терминаторов - выбор последнего - это цикл по субсчетам, а первого - расчет консолидированной информации по счету в целом. Обозначения удобны, так как всегда оказываются в конце списка субсчетов, только не следует прибегать к [ch 249] - с января у меня этот символ запрещен из-за невозможности удалить файл в DOS и Windows с таким символом в имени файла. Кодируют помаленьку. Переименовать ••.rpt можно, а удалить - нельзя.
Формы-списки могут содержать °01 все и в первой, и в последней строках списка, а также в других удобных местах, например, на границах хорошо структурированных групп счетов. Очень удобно и экономит до часа в день на одном операторе.
1.2. Аналитические "веерные" счета (типа Д). Я уже писал, что для целей расчета НДС к зачету, например, удобно держать весь приобретенный НДС на одном субсчете. Тогда, купив у одного поставщика все, можно по оплате и приходу забрать в Дт 68-НДС эту сумму с одного субсчета (у меня 19-0 НДС приобретенный всего), не мучаясь поиском фактов или экстра по десятку целевых субсчетов покупного НДС. Но. В то же время некторые отчетные формы требуют развернутой по видам НДС аналитики. Решение. Создаем "веерный" счет 19.
с субсчетами 19-01,19-04..19-44, и тогда проводки по приему на 1200 рублей материалов будут:
1) @10 @60 1000
2) 19-10 @60 200
3) 19-0 19-10 200
Эта схема была впервые описана в примере "Хакерс Дизайн" еще в 1992 или 1993 году (не помню точно, кажется, к версии 3.1 пример).
Такой подход позволяет в полной мере использовать стандартные ta-факты и системные формы сервера.
1.1.3. Аналитические транзитные счета (тип Д). Обозначение - например, 70T начисления и удержания по зарплате. Отличается от "веерных" расписанием корреспонденций к разным счетам и по дебету, и по кредиту. Например, 70..1 повременная зарплата .. 70..99 прочие начисления, 70__1 пенсионный фонд с работника .. 70__99 прочие удержания, 70==1 выплата зарплаты за прошлый месяц .. прочие межрасчетные выплаты, 70::1 начислена льгота ММОТ 70::1- начислена льгота ММОТ сторно и так далее. Счета с одной строны корреспондируют с субсчетом работника, а с другой - со счетами затрат, налогов и тому подобными . Очень удобно для построения расчетных листков, налоговых карт и так далее.
1.2. Внебалансовые счета согласно Плану счетов, например, 001 (Н) товары на комиссии, .. векселя к оплате, бланки и прочее.
1.3. Внебалансовые номенклатурные счета (Н), например, счте SKLAD, на котором закодированы все без исключения учетные единицы запасов, затрат и т.п. Конечно, возможны и динамические, т.е. не существующие в Плане счетов субсчета, но это требует особого описания (как "завтрак" "обед" и "ужин", описанные в форме-списке и предлагаемые по X или R запросу). Применяется как база для экстрапараметров всякого вида, в том числе для FIFO-LIFO учета лотов, да и для другой динамической (рекурсивной или вычислимой операциями ФБП) информации, а также как индексное поле фактов.
1.4. Внебалансовые справочные счета, например, REGION (N):
095 Москва
096 Московская область
и так далее.
1.5. "Коромысла" внебалансов, счет CORR (Н). Можно, например, из одной лишней проводки сделать мини отчетную форму:
@10 @60 1000
19-10 @60 200
теперь сальдо60 -1200, что позволяет видеть полезную информацию прямо в проводках.
1.6. У меня еще много таких выверенных решений, которые применяются стандартно, например, счет MONTHS (Н) с кодами
1/ .. 12/ декабрь, QUARTER (Н) с субсчетами I,II,III,IV, YEAR (Н) c субсчетами 1999, 2000 .., а также - пока не очень широко применяется - счет BRANCH (или TWIG, кому что больше нравится) - c субсчетами
COUNTS
CACHE
MATER
SALARY и так далее - дерево видов операций можно построить и на одном прутике. Без раскидистой кроны.
То же самое относится к индексам фактов, и, при желании, первичным индексам экстрапараметров. Конечно, каждый такой элемент - 1.5 килобайта, но их немного по сравнению с тысячами контрагентов или наименований товаров, достойных запоминания навсегда в плане счетов.

1.7. Весьма желательно (с одобрения В.Секретева) не загромождать [n2 ..] наименованием, а писать его в extrd.dat, можно еще с кучей информации, тогда нет проблем с коррекцией названий, но право доступа к extrd.dat на запись нужно особо разграничить. Вплоть до запрета всем, кроме супервизора и ему подобных. У меня нет однозначного рецепта на этот счет, не могу только не упомянуть о следующем: если extrd.dat используется как аргумент в рекурсиях ФБП, не существует страхового полиса против вмешательства в прошлое вне контроля.

Следующие темы: first.rpt, proto.rpt, а потом ветки дерева, файлы-коэффициенты и так далее. После обсуждения, одобрения или хотя бы осуждения.

Пока все. Теперь о Сизифе. Это подпись. Я просил - дважды - обсудить алгоритм начисления льгот, ПФ и ПН, и ни одного отклика. То же о нескольких еще важных технологических решениях. Скажем, у всех моих пользователей работает Оазис 70PF.RPT - но никто не попросил об этом на wwwboard. То есть, всякий раз, совершив прорыв к вершине, оказываешься со своим камнем перед wir werden noch einmal unzere steile pfade erclimmen.

Приглашаю всех еще раз в open CPS (chief programmer staff), причем совсем не обязательно, чтобы этот CP был я.

И Борису. Пожалуйста, примите мои самые искренние извинения за невольные оплошности, или непонятные выражения. Я уже забываю, что контора от конторы отличались языком очень сильно, и у нас в институте не принято было публично произносить слово "кондер", только "кондюк", а то неправильно поймут и впаяют в плату что-нибудь не то. Поэтому насчет бабушкиных спиц - это пункт ведомственной инструкции по установке оптимальных значений яркости экрана на дисплеях ДМ-2000..ВТА2000-15 и им подобных, а также огрызок статьи 1987 года о чулочно-колготочных-лантан-ниобиевых стеклах для XT-шек ценой в три зарплаты тогдашнего инженера. Так что еще раз простите и проч.
С уважением.
Анатолий Анимица.


Пpишедшие ответы: