Окажите помощь



Posted by Демехина Яна on February 02, 2000 at 01:55:26:

Уважаемый Аркадий Григорьевич! Уважаемые Корифеи!
Помогите разобраться в следующей проблеме. Она возникла при переходе
на новый год.
От старого года осталась лента фактов, сохраненная в facts.b
вот фрагмент из нее:

31.12.1999
S=цена
N= 9.00000000000000E-0002 *цена товара
S=004 *субсчет товара
S=P-01 *субсчет склада
N= 3.00000000000000E+0003 *количество

Не всегда с помощью оператора news в сетевой версии находится этот факт,
а только если не задана цена. Если цена вводится с клавиатуры с
помощью ? CE, то факт не находится. Для иллюстрации я создала следующий
файл:

NEWS цена ?CY товара [N1004] в подразделении [N1P-01] в к-ве ?Q1
F1=[FACT_D];F2=[FACT_M]/100;D1=F1+F2
^^^^^^CY^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =CY ^^^^^^^^Q1^^^^^^ ^^^^D1^^
? CE
*********
здесь вводится 0.09
************
D2=0
NEWS цена CE товара [N1004] в подразделении [N1P-01] в к-ве ?Q2
IF [SUCCESS]=1
F3=[FACT_D];F4=[FACT_M]/100;D2=F1+F2
ENDIF
^^^^^CE^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =CE ^^^^^^^^Q2^^^^^^^^ ^^^D2^^
IF CY=CE
ИСТИНА CY=CE
ELSE
ЛОЖЬ CY=CE
ENDIF

Сетевая версия (сервер 3.11u) выдает такой результат:
.0900000000000000100000 =CY 3000.000000 31.12

.09000000000000000000000 =CE 0.00000000 0.00
ИСТИНА CY=CE
**Это ошибка. Факт ведь есть в facts.b, но только с единицей в 17-м знаке после
запятой.
Так происходит не со всеми фактами и ценами. Я нашла пока только один, но и этого
достаточно, чтобы не работала программа.
В дереве проводок ? СЕ обьявлена .N. В 1999 году программа работала как часы (швейцарские).
Почему так происходит и как этого избежать в сетевой версии?
Однопользовательская под win выдает такой результат:

0.089999999999999997 =CY 3000.000000 31.12

0.089999999999999997 =CE 3000.00000000 31.12
ИСТИНА CY=CE
**Все нормально.

Заранее благодарна Демехина Яна, ООО"АвтоматикА" г.Днепропетровск



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