ФИНАНСЫ БЕЗ ПРОБЛЕМ(tm):
ПЕРЕГОВОРНЫЙ ПУНКТ II

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
07.02.25 в 17:01:52


Наш сайт | Cтаpый форум (до 08.2003 года) | Интернет-магазин & Центр загрузок |
Главная | Помощь | Поиск | Участники | Вход | Регистрация
Модифицированный Клиент CLW32:
Из документации ...
На форуме...

Использование Клиента FCM:
1. Отчетный период и журнал операций.
2. Печать.
3. Экспорт.
4. Многострочная операция.
5. Редактирование многострочных операций.
http://www.fwp-client.com

Работа с ФБП через браузер:
Настройка для лечебных учреждений, оказывающих медицинские услуги:
На форуме...
http://vasoft.ru

Технический аудит настройки.
[Читать]

ФИНАНСЫ БЕЗ ПРОБЛЕМ (сетевая) и Opencart:
предлагаем:
1. Выгрузка новых покупателей из интернет-магазина в план счетов и сохранение информации в extrd.dat.
2. Выгрузка данных о заказанном товаре и сохранение в ФБП в журнале операций, номер заказа регистрируем в плане счетов как с.счет.
3. Українська локалізація.






   Финансы без пpоблем: Пеpеговоpный Пункт II
   Пpедложения по усовеpшенствованию, сообщения об ошибках

   Extra.e
« Предыдущая Тема | Следующая Тема »
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: Extra.e  (Прочитано 1994 раз)
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Extra.e
« В: 18.02.06 в 20:08:58 »
Цитировать | Править

Было бы неплохо, если бы можно было задать лимит числовых значений экстрапараметров, которые будут сохранены в extra.e
 
Сегодня, если явно задан "0", то в extra.e экстрапараметр не пропишется, т.е. очистка реализована, но как правило обращать в "0" - это лишнее телодвижение в ф-к, а если бы дать возможность настройщику задавать циферь, то это было бы лучше, да и честно лопатить файлы-коэффициенты не хочется.
 
Прошу поддержать.
Зарегистрирован
Valery

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 153
Re: Extra.e
« Ответить #1 В: 18.02.06 в 22:08:09 »
Цитировать | Править

Мы, при переходе в новый год, уже много лет используем такую процедуру.  
Предварительно:
1.Очищаем полученный acnt.a3p от не нужных в новом году  с/счетов.
1. Переименовываем полученный  extra.e  в extra.b  
3.Пропускаем  этот extra.b через отчетную форму, в которой последовательно пропускаются (ч-з соответствующие нужные #счета)  все имена экстрапараметров. Здесь и задается числовое ограничение (например in -0.001..0.001). Все остальное отсекается как по числовым значенииям, так и по наименованиям уже отсутствующих с/счетов.
4.Полученный из этой формы  фаил переименовываем в extra.b.
 
Процедура занимает несколько минут.
 
Зарегистрирован

С уважением, Валерий.
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: Extra.e
« Ответить #2 В: 19.02.06 в 09:13:41 »
Цитировать | Править

on 18.02.06 в 22:08:09, Valery wrote:
Мы, при переходе в новый год, уже много лет используем такую процедуру.  
Предварительно:
1.Очищаем полученный acnt.a3p от не нужных в новом году  с/счетов.
1. Переименовываем полученный  extra.e  в extra.b  
3.Пропускаем  этот extra.b через отчетную форму, в которой последовательно пропускаются (ч-з соответствующие нужные #счета)  все имена экстрапараметров. Здесь и задается числовое ограничение (например in -0.001..0.001). Все остальное отсекается как по числовым значенииям, так и по наименованиям уже отсутствующих с/счетов.
4.Полученный из этой формы  фаил переименовываем в extra.b.
 
Процедура занимает несколько минут.
 
 

 
Спасибо за совет,
Какой объем Вашего extra.e?
 
А по существу предложенного, может быть Вы бы  и отказались от своей суперпроцедуры вовсе?
 
Зарегистрирован
Valery

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 153
Re: Extra.e
« Ответить #3 В: 19.02.06 в 13:49:07 »
Цитировать | Править

on 19.02.06 в 09:13:41, Boris, Kiev. wrote:

Какой объем Вашего extra.e?

Объем доходил до 30 мгб.  И примерно до 30 имен э/параметров.  Объем здесь наверно не так выжен, просто дольше идет процедура создания нового, отредактированного по заданным ограничениям extra.
on 19.02.06 в 09:13:41, Boris, Kiev. wrote:

А по существу предложенного, может быть Вы бы  и отказались от своей суперпроцедуры вовсе?

Эта процедура - своего рода ревизия прошлого года в части э/пар.  Да и информацию о наименованиях  надо же где-то держать. Вот она там и собирается и в течение года дозаносятся новые э/пар.  Кстати написана она еще на операторах однопользов. версии от 95 года.   Мы предполагали что все так и делают...
Конечно,  если будет что-то подобное от разработчика,  будем применять.  (А может просто что -то подобное нашему выложить в Руководстве пользовавтеля? Тогда и  вопросы в этой части наверно не возникнут )
Зарегистрирован

С уважением, Валерий.
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
95год...
« Ответить #4 В: 19.02.06 в 18:00:36 »
Цитировать | Править

on 19.02.06 в 13:49:07, Valery wrote:
....Кстати написана она еще на операторах однопользов. версии от 95 года.  

 
Порадуйте, подскажите ссылку на версию локала от 95 года, на которой Вы сделали форму по чтению extra.*, pls. и хоть одну процедуру аналогичную loadtxt(СЕРВЕР 3.20 от 27.03.01)
 
 
Еще пару слов:
Чем меньше объем помощи продукта, тем лучше для меня.  
Если идти альпийскими тропами, то на каком-то шаге начнет тошнить.  
Если можно малой кровью реализовать предложения, упрощающие процесс, то это надо делать, а не расширять руководство пользователя.  
 
По поводу Ваших удалений и ревизий, всё нормально, но опять же об этом мог бы и сервер позаботиться системно. (Нет объекта, не может быть и его экстрапараметра.)
« Изменён в : 19.02.06 в 18:09:04 пользователем: Boris, Kiev. » Зарегистрирован
Valery

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 153
Re: Extra.e
« Ответить #5 В: 19.02.06 в 22:39:40 »
Цитировать | Править

Радую...
Версия 4000 (опытная модефикация ultra от 29.1195)
Ниже  фрагмент обработки  числового э/параметра по 01сч.
*************************************
#01  
B1='D0101'    имя э/параметра
A1=[GET#,B1]
!A1IN-0.0001..0.0001  ПРОПУСТИМ МЕЛКИЕ ЗНАЧЕНИЯ
GOTO                                                       MD010101
!
C1=A1
C7=''
!C1<0    ПРЕОБРАЗОВАНИЕ - В +
C7='-'
C1=C1*(-1)
!
C2=[TR C1]     ВЫДЕЛЯЕМ ЦЕЛУЮ ЧАСТЬ
!C2<0  БЕРЕМ ТОЛЬКО ЦЕЛАЯ ЧАСТЬ =0
GOTO                                                       MD01010101
!
!C2>0  БЕРЕМ ТОЛЬКО ЦЕЛАЯ ЧАСТЬ =0
GOTO                                                       MD01010101
!
C4='-'
D1=[SN C1,15,13]    ЧИСЛО В СТРОКУ (15/13) ПРИ ЦЕЛОЙ ЧАСТИ =0
*ОПРЕДЕЛЯЕМ КОЛ. НУЛЕЙ ПОСЛЕ ТОЧКИ
C3='0001'
D2=10
C1=[CP D1,3,1]
C1=[VL C1]
!C1=0
C3='0002'
D2=100
!
C1=[CP D1,3,2]
C1=[VL C1]
!C1=0
C3='0003'
D2=1000
!
C1=[CP D1,3,3]
C1=[VL C1]
!C1=0
C3='0004'
D2=10000
!
*     ^^^^^^^^^^^C3
*     ^^^^^^^^^^^D2
D4=[CP D1,3,13]  ВЫРЕЗАЕМ ДРОБНУЮ ЧАСТЬ С 13 СИМВОЛАМИ
D3=[VL D4]*D2 ИЗ ДРОБНОЙ ЧАСТИ СТРОКИ ПОЛУЧАЕМ ЦЕЛОЕ ЧИСЛО И УМНОЖАЕМ ЕГО
*НА 10...... ДО ДОВЕДЕНИЯ ВСЕГО ЧИСЛА ДО 14 ЗНАЧАЩИХ ЦИФР
D3=[SN D3,14,0]  И ПЕРЕВОДИМ ЕГО В СТРОКУ С 14 СИМВОЛАМИ
D3=[CP D3,1,1]+'.'+[CP D3,2,13] И ВСТАВЛЯЕМ ТОЧКУ МЕЖДУ 1-М И 2-М СИМВОЛАМИ
GOTO                                                       MD01010102
*............... *обработка чисел > 1
:                                                          MD01010101
!
C4='+'
D1=[SN C1,15,4]     ЧИСЛО В СТРОКУ (10/4) ПРИ ЦЕЛОЙ ЧАСТИ >0
D5=[CP D1,1,10]       ВЫДЕЛЯЕМ СТРОКУ С ЦЕЛОЙ ЧАСТЬЮ = 10 СИМВОЛАМ
D6=[CP D1,12,4]       ВЫДЕЛЯЕМ СТРОКУ С ДРОБНОЙ ЧАСТЬЮ = 4 СИМВОЛАМ
D7=D5+D6      СКЛАДЫВАЕМ ЦЕЛЫЕ И ДРОБНЫЕ СТРОКИ 10+4=14
!
!C1 IN 1..9.99999   ОПРЕДЕЛЯЕМ КОЛ.НУЛЕЙ  В НАЧАЛЕ ЦЕЛОЙ ЧАСТИ СТРОКИ
C3='0000'
D2=10000000000
!C1IN 10..99.99999
C3='0001'
D2=1000000000
!C1IN 100..999.99999
C3='0002'
D2=100000000
!C1IN 1000..9999.99999
C3='0003'
D2=10000000
!C1IN 10000..99999.99999
C3='0004'
D2=1000000
!C1IN 100000..999999.99999
C3='0005'
D2=100000
!C1IN 1000000..9999999.99999
C3='0006'
D2=10000
!C1IN 10000000..99999999.99999
C3='0007'
D2=1000
!C1IN 100000000..999999999.99999
C3='0008'
D2=100
!C1IN 1000000000..9999999999.99999
C3='0009'
D2=10
!
D3=[VL D7]*D2   ИЗ ПОЛУЧЕННОЙ СТРОКИ ПОЛУЧАЕМ ЦЕЛОЕ ЧИСЛО И УМНОЖАЕМ ЕГО
*НА 10...... ДО ДОВЕДЕНИЯ ВСЕГО ЧИСЛА ДО 15 ЗНАЧАЩИХ ЦИФР
D3=[SN D3,15,0]  И ПЕРЕВОДИМ ЕГО В СТРОКУ С 15 СИМВОЛАМИ
D3=[CP D3,1,1]+'.'+[CP D3,2,13] И ВСТАВЛЯЕМ ТОЧКУ МЕЖДУ 1-М И 2-М СИМВОЛАМИ
*...............
:                                                          MD01010102
C5='E'
C8='N='
C9=[N1#]
C0=B1
D0=C0+''+C9+''+C8+C7+D3+C5+C4+C3
D8=[PS 'E',D0]+5
D0=[CP D0,1,D8]
*ПРЕОРАЗОВАНИЕ СТРОКИ В ОГРАНИЧЕННУЮ ДЛИНУ
!D8=10
^^^^^^^^D0
!D8=11
^^^^^^^^^D0
!D8=12
^^^^^^^^^^D0
!D8=13
^^^^^^^^^^^D0
!D8=14
^^^^^^^^^^^^D0
!D8=15
^^^^^^^^^^^^^D0
!D8=16
^^^^^^^^^^^^^^D0
!D8=17
^^^^^^^^^^^^^^^D0
!D8=18
^^^^^^^^^^^^^^^^D0
!D8=19
^^^^^^^^^^^^^^^^^D0
!D8=20
^^^^^^^^^^^^^^^^^^D0
!D8=21
^^^^^^^^^^^^^^^^^^^D0
!D8=22
^^^^^^^^^^^^^^^^^^^^D0
!D8=23
^^^^^^^^^^^^^^^^^^^^^D0
!D8=24
^^^^^^^^^^^^^^^^^^^^^^D0
!D8=25
^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=26
^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=27
^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=28
^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=29
^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=30
^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=31
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=32
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=34
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=35
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=36
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=37
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=38
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=39
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=40
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=41
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=42
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=43
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=44
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=45
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=46
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=47
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=48
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=49
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!D8=50
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D0
!
* вышестоящая строка может добавляется в фаил  
:                                            MD010101
#
*****************************
Высылаю как есть (подсказки не редактировались, но убирать не стал)  
Конечно,  с учетом современных операторов в ФБП,  выглядит примитивно (это же 95 год), но работает безотказно.  
« Изменён в : 19.02.06 в 22:40:59 пользователем: Valery » Зарегистрирован

С уважением, Валерий.
Valery

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 153
Re: 95год...
« Ответить #6 В: 19.02.06 в 23:25:51 »
Цитировать | Править

on 19.02.06 в 18:00:36, Boris, Kiev. wrote:

По поводу Ваших удалений и ревизий, всё нормально, но опять же об этом мог бы и сервер позаботиться системно. (Нет объекта, не может быть и его экстрапараметра.)

Конечно мог бы. Но это уже один из вариантов получения результата.  Главное здесь, что процедура перехода в новый год (в части очистки extra) НИ ГДЕ НЕ УПОМИНАЕТСЯ в руководстве пользователя. Можно было бы как-то расширить  раздел "токости и трюки", выделив его в отдельный блок помощи. А помещаемые там примеры  должны быть более информативны в части пояснений ( с расчетом на среднестатического пользователя).    Ну а в принципе я только "за", если появиться что-то понятное и простое для использования и можно будет задавать пределы сохраняемых числовых значений в э/пар.  Но, думается это не так просто для разработчика...
Зарегистрирован

С уважением, Валерий.
Aleksey

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 133
Re: Extra.e
« Ответить #7 В: 20.02.06 в 09:44:51 »
Цитировать | Править

У меня такая форма очистки extra.b в новом году (перед этим, конечно, удаляются ненужные счета из acnt.a3p):
 
* Загрузка и очистка extra.b
S='C:\FBP\2005\EXTRA.B'
loadtxt S
A0=[Ged 'lt.N']
A2=[Intsn A0]
A1=[Ged 'lt.overflow']
If A1=0
   Загрузка прошла успешно. Загружено ^^^^A2 записей.
   Call Proceed
*Else
*   Ошибка: загружаемый файл содержал недопустимые строки!
EndIf
***
STOP
***
Tongueroceed
 For II=1 To A0
     S1=[Ged 'lt.'+[Intsn II]]
     P0=[Ps ' ',S1]+1
     AC=[Cp S1,P0,[Length S1]-P0]
     P1=[Ps ' ',AC]-1
     AC=[Cp AC,1,P1]
     If [Ex *AC]=1
      Printstr S1+[Ch 10]+[Ch 13]
     EndIf
 EndFor
 Return
« Изменён в : 20.02.06 в 09:46:55 пользователем: Aleksey » Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
проще, быстрее и  системнее
« Ответить #8 В: 20.02.06 в 09:57:05 »
Цитировать | Править

on 19.02.06 в 22:39:40, Valery wrote:
Радую...
Версия 4000 (опытная модефикация ultra от 29.1195)
Ниже  фрагмент обработки  числового э/параметра по 01сч.
*************************************
#01  
B1='D0101'    имя э/параметра
A1=[GET#,B1]
...

 
Одним словом - геморрой.(Извините - конечно - 95год)
К тому же, ведь Вы в самом начале говорили о форме, в свою очередь просил же порадовать с чтением файла, а Вы выписали эту копию 95 года с индивидуальным обходом каждого экстрапараметра и сбросом в отчет и ..., чтобы окончательно запутать того среднестатистического пользователя?
Короче порадовали наоборот.Cry
 
Посмею покритиковать Ваш "подход" 95-года, т.к. наверное, при условии, что в локале  95-года по F2 записывались все экстрапараметры <>0(извините, искать соответствующую версию не буду, может Аркадий подтвердит, что этот фрагмент у него не изменялся), то рекомендовал бы в 95 году обратить Ваше детище в ф-к с принудительным обращением неугодных в откровенный "0", тогда никакого геморроя с формированием extra не будет.  
 В свою очередь мой меньший геморрой моего решения в необходимости модификации этого ф-к, т.к. по "ходу пьесы" приходится рожать новые индексы(опять же параметрические в том числе) экстрапарметров и на обход которых может уходить всё больше времени.
 А вот при решении этой задачи сервером системно(см.первое сообщение) освободит нас напрочь от этих недугов.
 
Вы говорите сложно для сервера, пожалуйста покажите в чем-же сложность такой обработки, которую мы с Вами худо ли бедно устраиваем, просто серверу - это сделать - проще, быстрее и  системнее.
По моим соображениям - это может вылиться в два if(a)
Один при сбросе extra.e по директиве Q - на предмет лимита числовых значений, второй при чтении extra.b на предмет соответствия объектам плана счетов.
 
Правда по второму условию можно было бы с  возможной трансформацией extra.b и автоматической перезагрузкой.
 
Повторюсь, всё это можно сегодня и без участия сервера, но предлагаю, т.к. эти вещи отношу к системе.
Зарегистрирован
IBZ

**





   
Просмотреть Профиль | E-мэйл

Сообщений: 68
Re: Extra.e
« Ответить #9 В: 20.02.06 в 10:07:29 »
Цитировать | Править

Тут я целиком на стороне Бориса. Я даже считаю, что должен существовать целый ряд функций работы с  э/параметрами, равно как и дисковыми параметрами [ged]. Например цикл по всем параметрам. Если я не ошибаюсь такие планы в HD были, но почему-то не воплощены.
 
С уважением, Игорь.
Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
для порядка побухтеть надо.
« Ответить #10 В: 20.02.06 в 10:42:07 »
Цитировать | Править

on 20.02.06 в 09:44:51, Aleksey wrote:
У меня такая форма очистки extra.b в новом году (перед этим, конечно, удаляются ненужные счета из acnt.a3p):
 
* Загрузка и очистка extra.b
S='C:\FBP\2005\EXTRA.B'
...

 
Неужели это из реального набора форм?
Неужели каждый год Вы ходите сюда и забиваете эту строку?
Наверное, здесь Вы хотели написать такой комментарий:
это для большей наглядности, но не для примера.  пишите у себя так: S=[dir0]+'EXTRA.B'
 
Или на худой конец:
S='C:\FBP\_CY_\EXTRA.B'    (_CY_ - current year)
 
Это к тому, что Ваш фрагмент, может быть бездумно скопирван некоторыми типами молодых людей, с которыми мне приходилось сталкиваться, а потом к Вам и нам будет претензия, возможно утрирую, но так для порядка побухтеть надо.
P.S
Да, и на диске С: данные ложить не советую.
Зарегистрирован
Konstantin

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 118
Re: Extra.e
« Ответить #11 В: 20.02.06 в 11:22:43 »
Цитировать | Править

Немного не по теме, но все же. Не всегда бывает удобна индексация данных в acnt.a3p, тем более, если в конце года его настолько нужно чистить. К примеру, - оправданно, наверное, держать в acnt.a3p индексы поставщиков, или индексы номенклатуры товара, -  срок их жизни явно больше года. В то же время, для остальных индексов можно применить такой подход. В ветви вопросе вводим уникальный индекс. Форма,  предлагающая его, имитирует работу сервера по штампованию операций. При старте просматривает все индексы находит старший и для подстраховки заносит его в extrd.dat. При разлистывании, опять же проверяет по списку индексов и подстрахуется extrd.dat. Откатов нет. Каждый раз берется больший индекс. В формате, к примеру SSSSNNNN (S-буква, N – число). Такой Индекс легко преобразовать в число, проверить старшинство, и потом обратно получить из числа (Об этом упоминал Александр из Киева, когда говорил, что штамп загнал в параметр счета). Штампы не использую, поскольку, - вдруг перештамповать придется, да и удобнее по каждому списку – свою индексацию и разрядность. Все. При разлистывании индексов, вместо циклов по субсчетам, они сканируются, формируется массив и проводится цикл по массиву. Конечно, что бы их почистить в конце года надо тоже написать процедуру в Ф-К, но это несложно. Преимущество - План счетов не трогается в этом случае ни на входе ни на выходе.
 
* Подпрограмма уникального индекса для отгрузок
************************************************************************ **********************
:ENCODE (NM) на входе:nm – число от 0 до 6759999
 LOCAL sn,lp,d1,d2,l1
 if nm>6759999 sn='<6759999!!!';Return (SN);endif на выходе:sn-оно же в формате 'AA-0000'
 lp=[tr nm/10000]
 d1=[tr lp/26];d2=lp%26    d2=lp-d1*26
 d1=[ch 65+d1];d2=[ch 65+d2]
 sn=[strip'0000000'+[intsn nm]];ll=[length sn];sn=[cp sn,ll-3,4];sn=d1+d2+'-'+sn
Return (SN)
************************************************************************ **********************
 
: DECODE (SN) на вх.:sn – число в формате 'AA-0000';на выходе:nm – оно же в десятичном формате
 LOCAL nm,d1,d2
 if [type[vl[cp sn,4,1]]] nm='error';return (nm);endif
 d1=[hc sn,1]-65;d2=[hc sn,2]-65;nm=d1*26+d2;nm=nm*10000+[vl[cp sn,4,4]]
Return (NM)  
 
Зарегистрирован
Alexander_Kiev

*****





194144279 194144279    
Просмотреть Профиль | E-мэйл

Сообщений: 661
Re: проще, быстрее и  системнее
« Ответить #12 В: 20.02.06 в 12:01:50 »
Цитировать | Править

on 20.02.06 в 09:57:05, Boris, Kiev. wrote:

По моим соображениям - это может вылиться в два if(a)
Один при сбросе extra.e по директиве Q - на предмет лимита числовых значений, второй при чтении extra.b на предмет соответствия объектам плана счетов.

Ну да, два "if" позволят организовать диалог с оператором на предмет задания диапозона игнорируемых значений, а кому то надо определенные строки отфильтровать. По поводу эстров от ненужных счетов чет совсем не въехал. Ненужные счета появляются уже после перехода на новый год, так как в старом по ним еще движняк присутствует. А в новом их и удаляют, с последующей коррекцией extra.b. но никак не наоборот.
Если задача решается своими силами какие проблемы? Нет предела совершенству, так что, теперь латки клеить на каждую прихоть пользователя. Это я злой, потому как и мои пользователи мне мозги постоянно полощат своими новациями. И приходиться держать на пульсе столько вариантов сколько и пользователей. А принцип простой: деньги заплочены по сотоянию системы на момент ее приобретения. Ошибки устраняются бесплатно, все остальное на усмотрения производителя.  
« Изменён в : 20.02.06 в 12:03:34 пользователем: Alexander_Kiev » Зарегистрирован

С уважением,
Александр.
Alexander_Kiev

*****





194144279 194144279    
Просмотреть Профиль | E-мэйл

Сообщений: 661
Re: Extra.e
« Ответить #13 В: 20.02.06 в 13:27:24 »
Цитировать | Править

on 20.02.06 в 11:22:43, Konstantin wrote:
Немного не по теме, но все же. Не всегда бывает удобна индексация данных в acnt.a3p, тем более, если в конце года его настолько нужно чистить. К примеру, - оправданно, наверное, держать в acnt.a3p индексы поставщиков, или индексы номенклатуры товара, -  срок их жизни явно больше года. В то же время, для остальных индексов можно применить такой подход.....
Напротив, это наверное единственное, что интересно видеть и обсуждать. Имеются ввиду подходы и методы решения различных задач. Вы Константин совершенно верно заметили, что вести обработку связанных данных за счет субсчетов - кощунство. Каждый субсчет в неэкономном режиме это 2.5 Kb. памяти. Коль Вы упомянули мою ссылку по поводу запихивания штампа на цифровой параметр, хочу предостеречь. Это было сделано исключительно для конкретной ситуации, мне нужно была знать какая операция сидит сверху субсчета. Можно было бы использовать просто экстрапараметр, но я их принципиально для таких целей не использую. Поэтому следует иметь ввиду, там удалось втиснуться только за счет ограничения диапозона используемых символов A-Z. Цифровые символы в этот диапозон не входили, да и смысла нет, прямое преобразование компактней, если можно вообще говорить о компактости хранении чисел в их цифровых символах. Smiley  
« Изменён в : 20.02.06 в 13:33:16 пользователем: Alexander_Kiev » Зарегистрирован

С уважением,
Александр.
Aleksey

***



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 133
Re: для порядка побухтеть надо.
« Ответить #14 В: 21.02.06 в 11:04:31 »
Цитировать | Править

on 20.02.06 в 10:42:07, Boris, Kiev. wrote:

 
Неужели это из реального набора форм?
Неужели каждый год Вы ходите сюда и забиваете эту строку?
... Ваш фрагмент, может быть бездумно скопирван некоторыми типами молодых людей, с которыми мне приходилось сталкиваться, а потом к Вам и нам будет претензия, возможно утрирую, но так для порядка побухтеть надо.
P.S
Да, и на диске С: данные ложить не советую.

В реальном наборе используется именно [dir 0], это отладочная версия с клиента, но это скорее вопрос стиля. Раз в год мне не трудно изменить одну цифру в одной форме. Smiley  
В будущем буду добавлять текст "Текст программы должен использоваться исключительно в информационных целях. Автор не несет никакой ответственности в случае использования данного материала в иных целях. Автор не несет никакой ответственности за специфический, прямой или косвенный ущерб, вызванный данной публикацией или явившийся ее следствием..."
А почему плохо хранить данные на диске С?
« Изменён в : 21.02.06 в 11:05:59 пользователем: Aleksey » Зарегистрирован
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать

« Предыдущая Тема | Следующая Тема »

Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board