Имя: Пароль:
1C
1C 7.7
v7: БухИтоги.Рассчитать - проблема с датами периода
0 gumoldova
 
16.08.12
18:48
Пытаюсь создать связь 1С(7.7) и .NET приложение (VB)

Возникла следующая проблема при расчете БухИтогов
после задания периода даты верные

Dim BuxItog As Object = V77.EvalExpr("СоздатьОбъект(""БухгалтерскиеИтоги"")")

BuxItog.ПериодД("УстановитьДату()", "УстановитьДату()")

Значения : BuxItog.НачПероида=#7/1/2012#
          BuxItog.КонПероида=#9/30/2012#

Но как только даю :
BuxItog.Рассчитать()

НачПероида и КонПериода становятся #12/30/1899#

Причем сам Рассчитать проходит без збоев
Вылетает уже СКД при переборе в цикле справочника товаров
Dim SchetPoCodu As Object = v77.evalexpr("СчетПоКоду(""217"")")
.....
ost = BuxItog.СКД(SchetPoCodu, 3, , KatalogTovar.CurrentItem())
.....

Поможите кто чем может.
1 Rie
 
16.08.12
18:54
(0) Ты действительно полагаешь, что передаваемая в ПериодД строка вдруг ни с того ни с сего превратится в дату?
2 gumoldova
 
16.08.12
20:23
Я полагаю, что передаю функцию УстановитьДату() и что интересно как-то эта дата устанавливается.
В режиме отладки (работаю на VB VisualStuio2008) просматриваю значения после выполнения ПериодД, они равны:    

          BuxItog.НачПероида=#7/1/2012#

          BuxItog.КонПероида=#9/30/2012#

Но после BuxItog.Рассчитать() меняются на  #12/30/1899# .
Может подскажете как надо из VB по OLE правильно это сделать.
3 Rie
 
17.08.12
05:19
(2) Не передаёшь ты функцию. Передаёшь строку "УстановитьДату()".
BuxItog.ПериодД(V77.EvalExpr("УстановитьДату()"),V77.EvalExpr("УстановитьДату()"))
может быть поможет - если УстановитьДату является экспортируемой функцией глобального модуля.
Или просто передай даты, если можешь вычислить их непосредственно в VB.
4 zladenuw
 
17.08.12
05:26
если ты не в 1с типы давай 1с
5 zladenuw
 
17.08.12
05:31
(4) no like aline
6 gumoldova
 
17.08.12
10:10
Пытаюсь по всякому :

1 сначала забить дату в переменную и ее вставить в бухитоги

  Dim EndDate As Object = v77.evalexpr(""РабочаяДата()"")

  BuxItog.Рассчитать("", EndDate , "", "", "", "")

2 Переформатить дату в строку 'DD.MM.YY'

       Dim Dat2 As Date = CDate(BuxItog.НачПериода)
       Dim Dat3 As Date = CDate(BuxItog.КонПериода)
       Dim DatStart As String
       Dim DatEnd As String
       DatStart = "'" & Dat2.Day & "." & Dat2.Month & "." & Dat2.Year & "'"
       DatEnd = "'" & Dat3.Day & "." & Dat3.Month & "." & Dat3.Year & "'"

Но после

       BuxItog.Рассчитать(DatStart, DatEnd, "", "", "", "")

Контроль показывает, что период сбрасывается на  #12/30/1899#.

       Dat2 = CDate(BuxItog.НачПериода)
       Dat3 = CDate(BuxItog.КонПериода)

В чем траблы понять не могу, как Бухитог.Рассчитать может изменить период если до его вызова период правильный ?
7 Rie
 
17.08.12
10:12
(6) Есть основные итоги, есть временные итоги.
8 gumoldova
 
17.08.12
14:32
То есть при переходе в режим временных итогов период основных итогов (НачПериода, КонПериода) "сбрасывается" в  #12/30/1899#, а расчет временных остатков идет по своим датам периода ?
Как-то можно проверить период временных итогов ?
9 Rie
 
17.08.12
14:38
(8) А зачем тебе вообще временный расчёт? Режим бухгалтерского запроса - не поможет?
10 gumoldova
 
17.08.12
14:47
Вообще задача стоит сформировать накладную 1С на основании работы программы на VB
Для того, чтобы проверить количественные остатки 1С и задать им соответствие с "справочником" VB нужно знать остатки в 1С. Вот я их и пытаюсь рассчитать для начала
11 Rie
 
17.08.12
14:50
(10) Используй режим бухзапроса.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс