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

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
28.03.24 в 12:58:03


Наш сайт | 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
   ФБП для начинающих

   Плавающая ошибка
« Предыдущая Тема | Следующая Тема »
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: Плавающая ошибка  (Прочитано 2523 раз)
Tupitsin

***



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

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

Сообщений: 191
Re: Плавающая ошибка
« Ответить #15 В: 07.07.06 в 13:00:17 »
Цитировать | Править

on 07.07.06 в 12:25:58, Alexander,Kiev wrote:

Не думается, что кто то умышленно пытается передавать значение ч/з глобальную переменную, которая на самом деле глобальная достаточно условно.  

 
Никто не говорит об умышленной передаче значений. Это классическая ошибка инициализации, которая описывается в учебниках по методике программирования.
Зарегистрирован
Alexander_Kiev

*****





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

Сообщений: 661
Re: Плавающая ошибка
« Ответить #16 В: 07.07.06 в 15:16:37 »
Цитировать | Править

on 07.07.06 в 13:00:17, Tupitsin wrote:

 
Никто не говорит об умышленной передаче значений. Это классическая ошибка инициализации, которая описывается в учебниках по методике программирования.

Чет я не понял, где здесь ошибка инициализации?
Переменная V1 после перезаписи контекста инициализирована нулем во второй операции.
« Изменён в : 07.07.06 в 15:17:22 пользователем: Alexander_Kiev » Зарегистрирован

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

***



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

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

Сообщений: 191
Re: Плавающая ошибка
« Ответить #17 В: 07.07.06 в 16:06:05 »
Цитировать | Править

Ошибка заключается в том, что программист должен был написать строчку
V1=0
(если нужен 0)
или  
V1=$
(если нужна сумма операции).  
А программист забыл и не написал такую строчку, т.е. не инициализировал переменную V1 перед использованием. Поэтому значение переменной V1, вообще говоря, не определено. Это и есть ошибка.
« Изменён в : 07.07.06 в 16:08:09 пользователем: Tupitsin » Зарегистрирован
Alexander_Kiev

*****





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

Сообщений: 661
Re: Плавающая ошибка
« Ответить #18 В: 07.07.06 в 16:39:33 »
Цитировать | Править

on 07.07.06 в 16:06:05, Tupitsin wrote:
Ошибка заключается в том, что программист должен был написать строчку....
 
Отсутствие инициализации дает непрогнозируемый результат, ошибки выполнения быть не должно.
Беру таймаут, надо немного вспомнить.
Зарегистрирован

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

***



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

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

Сообщений: 191
Re: Плавающая ошибка
« Ответить #19 В: 07.07.06 в 17:47:28 »
Цитировать | Править

А я и не сказал, что это ошибка выполнения. Это ошибка программиста. Это он не заинициализировал переменную.
« Изменён в : 07.07.06 в 17:53:13 пользователем: Tupitsin » Зарегистрирован
Alexander_Kiev

*****





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

Сообщений: 661
Re: Плавающая ошибка
« Ответить #20 В: 07.07.06 в 18:49:37 »
Цитировать | Править

on 07.07.06 в 17:47:28, Tupitsin wrote:
А я и не сказал, что это ошибка выполнения. Это ошибка программиста.

И ошибка копмиляции и времени выполнения - ошибки программера Smiley
Поигрался на всяк случай, чтоб убедится.  
Переменные живут на время перерасчета, с контекстами это не связано.  
Полностью согласен, что изначальное сообщение может быть связано с данным фактом. Считать переменные перерасчета глобальными таки не стоит, так же как и не стоит забывать обратное. Для одной фазы перерасчета они глобальны, для разных инициализированы нулями  
Не сразу дошло, зачем такой алгоритм с сэтами с extra.e приведен.
Достаточно в ф/к первого месяца дать V1=5, второго V2=25/V1.
Вторая операция регистрируется, но баланс загибается, а после перерасчета с начала года работает как ни в чем не бывало. Также и при редакции.
« Изменён в : 07.07.06 в 19:08:49 пользователем: Alexander_Kiev » Зарегистрирован

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

***



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

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

Сообщений: 133
Re: Плавающая ошибка
« Ответить #21 В: 10.07.06 в 10:26:57 »
Цитировать | Править

Но ведь в моем файле-коэффициенте переменная VR каждый раз рассчитывается, а не записывается в параметр.  Huh Попробую перед формулой разместить VR=0. Странно все же, что с правом P у пользователей никогда не возникало ошибок.  Roll Eyes
Зарегистрирован
Tupitsin

***



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

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

Сообщений: 191
Re: Плавающая ошибка
« Ответить #22 В: 10.07.06 в 11:12:24 »
Цитировать | Править

А разве переменная VR  у Вас единственная переменная в ф/к-ах?
Кроме того, если переменной  присваивается значение где-то во вложенных блоках if..else..endif, то может попасться сочетание, которое не предусмотрено проверками. Например:
if A=0
    X =1
elseif A>0
    X =2
endif
 
Здесь пропущена проверка на A<0
Лучший способ избежать этого - присвоить значение "по умолчанию" до всех проверок. В предыдущем примере  
X =0
ПЕРЕД первым if.
Зарегистрирован
Alexander_Kiev

*****





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

Сообщений: 661
Re: Плавающая ошибка
« Ответить #23 В: 10.07.06 в 12:32:13 »
Цитировать | Править

on 10.07.06 в 10:26:57, Aleksey wrote:
Но ведь в моем файле-коэффициенте переменная VR каждый раз рассчитывается, а не записывается в параметр.  Huh Попробую перед формулой разместить VR=0. Странно все же, что с правом P у пользователей никогда не возникало ошибок.  Roll Eyes

Если есть уверенность что переменная всегда имеет присваение в ф/к, то конечно делать предварительную инициализацию не нужно. Но как правильно замечено, может иметь место наведенная ошибка. Вот еще вариант: VR присваивается всегда, а в расчете или позже модифицируется с участием переменной VX, которая может инициализироваться не гарантировано.  
Это все лиш предположения, никто ведь не видел, как у вас это реализовано.  
Хотя, ф/к приведен (ужо упустил из виду). Это действующий фрагмент?  
 
P.S.  VR= [EP $D, 1]- [EP $D, 4]- [EP $D, 5]+ [EP $D, 2]
Ну вот, как можно гарантировать, что комбинация суммы параметров не даст ошибку в свете приведенных выше причин.
« Изменён в : 10.07.06 в 12:51:30 пользователем: Alexander_Kiev » Зарегистрирован

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

***



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

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

Сообщений: 133
Re: Плавающая ошибка
« Ответить #24 В: 10.07.06 в 13:51:38 »
Цитировать | Править

on 10.07.06 в 12:32:13, Alexander,Kiev wrote:

Хотя, ф/к приведен (ужо упустил из виду). Это действующий фрагмент?  
 
P.S.  VR= [EP $D, 1]- [EP $D, 4]- [EP $D, 5]+ [EP $D, 2]
Ну вот, как можно гарантировать, что комбинация суммы параметров не даст ошибку в свете приведенных выше причин.

Да, это и есть тот самый фрагмент. Sad Не представляю, что может быть, чтобы сумма параметров дала какую-то ошибку.  
Tupitsin
Вот как раз Ifов никаких нет.
Зарегистрирован
Alexander_Kiev

*****





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

Сообщений: 661
Re: Плавающая ошибка
« Ответить #25 В: 10.07.06 в 14:24:29 »
Цитировать | Править

on 10.07.06 в 13:51:38, Aleksey wrote:

Да, это и есть тот самый фрагмент. Sad Не представляю, что может быть, чтобы сумма параметров дала какую-то ошибку.  

Да, ну не ошибку, а непрогнозируемое значение. Надо бы проанализировать как формируются значения всех участвующих параметров во всех ф/к. У вас это может быть и простая зависимость, но мы то этого не знаем. Учитывая, что "справедливость" востанавливается после перасчета предыдущего месяца, причина таки в неучтенной инициализации  до этого места.  
« Изменён в : 10.07.06 в 14:25:40 пользователем: Alexander_Kiev » Зарегистрирован

С уважением,
Александр.
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать

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

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