Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) класс для общих функций, которые используются при проведении в неск. доках (число прочтений - 4677 )
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
класс для общих функций, которые используются при проведении в неск. доках
10. Сентября 2010 :: 14:16
Печать  
появилась необходимость вынести  ряд функций , которые используются в модулях нескольких доков в одно место. в глобальнике и так полно всего.  захотелось вынести в отдельных класс как методы.

в итоге появилась такая функция  -кусок

Если Конт.ИтогиАктуальны()=0 Тогда
           РегВзаиморасчетыПокупателейВал.ВременныйРасчет(1);
           Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент());
     КонецЕсли;
КонецПроцедуры
     
     Возврат РегВзаиморасчетыПокупателейВал.СводныйОстаток(выбСчет.Фирма, Контрагент, выбСчет,ВалютаУчета,"ДолгПоОтгрузкам");

где Конт - это контекст документа, в модуле которого вызывается. все работает. вроде замечательно... кроме того, что не постоянно, но факт, возвращает неверный остаток по регистру. тот же кусок назад в модуль - все рассчитывает верно.

подскажите, что не так
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #1 - 10. Сентября 2010 :: 14:41
Печать  
а чего, в эту функцию передаете еще и Контрагента,выбСчет,ВалютаУчета ?
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #2 - 10. Сентября 2010 :: 14:53
Печать  
потому что они своими финтами расчитываются в доке. вопрос не в этом - почему остаток корявый?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #3 - 13. Сентября 2010 :: 09:11
Печать  
Нам отсюда не видно, откуда идёт вызов этого всего, и что передаётся в качестве измерений регистра.
А так, чудес на свете не бывает.
Да  и жуколов расскажет, что к чему.
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #4 - 13. Сентября 2010 :: 10:09
Печать  
вызов идет из модуля документа. если этот кусок без изменений назад в модуль документа, цифра нормальная.  а пошаговая отладка дает только остаток по регистру при одних и тех же передаваемых параметрах
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #5 - 13. Сентября 2010 :: 10:14
Печать  
Покажи весь код целиком + вызов его из модуля документа.
А так, нам отсюда не видно, откуда ты Контрагент,выбСчет взял .

  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #6 - 13. Сентября 2010 :: 10:17
Печать  
в модуле дока

ОстатокДолга = та,ТекКонтрагент, ДокОплаты, Контекст);


Функция ПолучитьОстатокДолгаОплат(ВалютаУчета, Контрагент, выбСчет, Конт) экспорт      

Рег = СоздатьОбъект("Регистры");
     РегВзаиморасчетыПокупателейВал = Рег.ВзаиморасчетыПокупателейВал;
     
     ,1);
     РегВзаиморасчетыПокупателейВал.УстановитьЗначениеФильтра("Счет",Счет,1);
     та,1);
     
     Если Конт.ИтогиАктуальны()=0 Тогда
           РегВзаиморасчетыПокупателейВал.ВременныйРасчет(1);
           Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент());
     КонецЕсли;
     
     Возврат РегВзаиморасчетыПокупателейВал.Остаток(выбСчет.Фирма, Контрагент, выбСчет,ВалютаУчета, "ДолгПоОплатам");

КонецФункции
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #7 - 13. Сентября 2010 :: 10:21
Печать  
ДокОплаты = выбсчет ???
+
Нафига валюта сдалась в измерении ?
+ нафига устанавливать фильтр, когда один хрен потом Остаток применяешь по выбранным измерениям ?
+ почему в сабже, СводныйОстаток, а тут Остаток?
+ там ДолгПоОтгрузкам, тут ДолгПоОплатам ?
+Структура регистра вообще какая ?
Дай описалово из мд.
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #8 - 13. Сентября 2010 :: 10:59
Печать  
ВзаиморасчетыПокупателейВал

Измерения:
   Фирма, Контрагент, Счет, ВалютаУчета

Ресурсы
   ДолгПоОплатам, ДолгПоОтгрузкам

Реквизиты думаю не нужны. хотя у аффтора хотелось бы узнать, зачем ему нужен был реквизит - ТекущийДокумент
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #9 - 13. Сентября 2010 :: 11:01
Печать  
Tvish писал(а) 13. Сентября 2010 :: 10:59:
ВзаиморасчетыПокупателейВал

Измерения:
  Фирма, Контрагент, Счет, ВалютаУчета

Ресурсы
  ДолгПоОплатам, ДолгПоОтгрузкам

Реквизиты думаю не нужны. хотя у аффтора хотелось бы узнать, зачем ему нужен был реквизит - ТекущийДокумент


Типы реквизитов неплохо бы озвучить + ответы на другие вопросы.
+ вот это что значит?
Цитата:
хотя у аффтора хотелось бы узнать, зачем ему нужен был реквизит - ТекущийДокумент


Вы не автор сабжа что ли ?

  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #10 - 13. Сентября 2010 :: 11:21
Печать  
база - наследство. доделывать - переделывать

Фирма - спрасочник.фирмы
Контрагент - справочник.контрагенты
Счет - Документ.Счет
ВалютаУчета - Справочник.ВалютыУчета

ДолгПоОплатам - число
ДолгПоОтгрузкам - число


ВалютаУчета - может не совпадать с валютой платежного документа. Думаю он ее добавил для того, чтобы ускорить обращение к регистру, не идти через массу "точек". хотя это избыточность

  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #11 - 13. Сентября 2010 :: 11:24
Печать  
Eprst писал(а) 13. Сентября 2010 :: 10:21:
ДокОплаты = выбсчет ???
+
Нафига валюта сдалась в измерении ?
+ нафига устанавливать фильтр, когда один хрен потом Остаток применяешь по выбранным измерениям ?
+ почему в сабже, СводныйОстаток, а тут Остаток?
+ там ДолгПоОтгрузкам, тут ДолгПоОплатам ?
+Структура регистра вообще какая ?
Дай описалово из мд.


фильтры - это быстро скопировано, лишние слешы удалены
почему в сабже, СводныйОстаток, а тут Остаток? - пятница вечер, не помню
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #12 - 13. Сентября 2010 :: 11:28
Печать  
Сделай мини-демо конфу с твоим классом и 1 документом для воспроизводимой ошибки и выложи тут для обозрения.
А так - ищи ошибку в коде.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #13 - 13. Сентября 2010 :: 11:39
Печать  
Tvish писал(а) 13. Сентября 2010 :: 11:21:
база - наследство. доделывать - переделывать

Фирма - спрасочник.фирмы
Контрагент - справочник.контрагенты
Счет - Документ.Счет
ВалютаУчета - Справочник.ВалютыУчета

ДолгПоОплатам - число
ДолгПоОтгрузкам - число


ВалютаУчета - может не совпадать с валютой платежного документа. Думаю он ее добавил для того, чтобы ускорить обращение к регистру, не идти через массу "точек". хотя это избыточность


Если ВалютаУчета избыточна то удаляй ее из измерения регистра обязательно. Ускоришь работу с базой.
Вроде регистр вполне может и  не закрываться.

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: класс для общих функций, которые используются при проведении в неск. доках
Ответ #14 - 13. Сентября 2010 :: 11:43
Печать  
И нет еще никакой уверенности, что вот по этому измерению
"Счет - Документ.Счет" тоже "закрывается" нормально.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать