Re: ЭТО работает!



Posted by Анатолий Анимица on February 15, 1999 at 00:44:16:

In Reply to: Re: Это ошибка? Нет! Это не ошибка. posted by Анатолий Анимица on February 12, 1999 at 14:44:29:

1. Настоящим сообщением я отменяю свое замечание о желательности усложнения формул прав доступа в прошлое по записи. У меня уже работает механизм разделения прав доступа в прошлое совершенно произвольного вида.
Я уже писал ранее, что операция - сигнатурный контролер "защита_нарушение_проверить" способна обнаружить изменение в прошлом и тем или иным способом информировать главного об этом.
Операция разумно устанавливается в конце периода блокировки и выхватывает [get %%,'sign-N'], где %%[Н] (динамические экстра) - уже давно введенный у меня счет без субсчетов - некий аналог % для файлов-коэффициентов. И на нем висит куча всяких вещей, пусть и эта повисит. sign-n - экстрапараметр "сигнатура N", понятно, что таких разных сигнатур может быть много. И если нет извещения о нарушении, можно сделать вывод, что данные перд контролером неизменны в sign-N смысле.
В суботу я додумал и вчера добавил еще одну вещь, которая позволяет мне сделать нынешнее заявление.
Еще одна операция "защита_вмешательство_запретить" записывает туда же признак запрета [set %%,'block_N','blocked up to =(date)], и каждая операция в первой строке файла-коэффициента (условно первой, понятно? (;-)) j, обнаружив блок, просто вываливается по "error Нечего тут лазить, уже все сделано, а если нет, так пойди и попроси, чтобы разрешили. Пожалуйста." И все! Можно разрешить доступ части пользователей, да вообще можно все что угодно: разрешить только, запретить всем кроме, да просто посмотрите в config.txt - там все это написано, про другое, правда. Для того, чтобы это все работало, надо во все операции, или хотя бы в те, какие надо, это все вписать. Это не проблема, потому что мне теперь нравятся большие "входосчетоконтекстночувствительные" файлы-коэффициенты, которые мастера на все руки. И место в кластерах не гуляет, и в списке форм в клиенте все короче (когда клиентом редактируешь), да и вообще, в части генерации ПД все легче - одну подпрограмму вывода строки написал и call ее отовсюду.

2. Теперь к вопросу о генерации ПД. В самом деле работает! Пока я остановился на сигнатуре следующего формата. Индекс - просто [stamp 3]. Строка сигнатуры - имя_операции (лучше короткое, а то строка всего 245 байт)_значения ответов на вопросы операции и @-обращениях в виде [strip QUQU] или (Аркадий Григорьевич! Страх как нужна [sn]-аналог функция, независимая от "числа с копейками", а то мне приходится всюду [strip [intsn [tr QU]]]+'.'+dr, где dr - символьное представление дроби с ведущими нулями и нужной точностью, та еще задачка, не хочу занимать место здесь), разделенные '|', не помню, к кому я притулился в выборе разделителя. Когда ответы кончатся, а в строке наберется только 100 байт, можно добавить [get..] значения критичных экстров, а также суммы проводок, вида рагу по-ирландски. Главное, не пересолить и блюсти экономию ресурсов. Строка безжалостно усекается до 245 байт и в extrd.dat ее!
А дальше все как при социализме. Новое добавление - у меня либо создается, либо модифицируется в хвост (ситуации head и queue) [stamp3].txa, а кроме того, то же самое пишется в queue файла report.txt в каталоге данных. Потом можно полюбоваться всем, что сервер натворил в пересчете. Пока новый report не будет создан, естественно. Нет, это надо видеть, как 200000 строк январь-февраль создаются буквально из ничего! Хоть бери редактор и clip report и на принтер полюбившиеся куски. Или еще куда. А если учесть, что каждый ПД у меня снабжен строкой "штамп первой операции".."штамп предпоследней операции"."штамп итоговой операции" и есть возможность всю входящую первичку и все генернутые ПД сложить в одну "Особую папку января 1999 года" в хронологическом порядке - и мухи, и котлеты вместе, положив вниз (jf all 1), а сверху - итоговые формы месяца (квартала, года, и так далее) - все просто цепенеют в восхищении, до чего теперь НИКУДА больше ходить за документами не нужно.
Понятно, что в большой конторе папка может быть размером с Особую папку ЦК КПСС.



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