Имя: Пароль:
1C
1C 7.7
v7: Выгрузка через ОЛЕ
,
0 userMR3
 
18.10.11
10:17
Настроил выгрузку в комплексную, раньше работала без выбора контрагента и все было нормально, но сейчас сделал выбор контрагента, и при проведение документа он не отображается во взаиморасчетах.
Даже если перепровести документ и перевыбрать контрагента ничего не меняется, в журнале проводок почему то нет движения по контрагенту.
В чем ошибка?
1 m g r
 
18.10.11
10:21
СуммаВзаиморасчетов =0 ?
2 userMR3
 
18.10.11
10:26
да в "Сумма по документу" нету значений, как до нее достучатся?
3 Рэйв
 
18.10.11
10:28
(2)При переносе как то так:
Док.СуммаПоДокументу=ТабЧасть.Итог("Сумма")
4 userMR3
 
18.10.11
10:30
А как поступить с уже созданными документами?
5 Рэйв
 
18.10.11
10:34
(4)Обработка на 6строк
6 userMR3
 
18.10.11
12:31
Процедура Сформировать()
   ДокРеализация = СоздатьОбъект("Документ.Реализация");
   ДокРеализация.УстановитьФильтр(1,0);
   ДокРеализация.ВыбратьДокументы(НачДата, КонДата);
   
   Пока ДокРеализация.ПолучитьДокумент() = 1 Цикл
       ТекДокумент = ДокРеализация.ТекущийДокумент();
         ТекДокумент.СуммаВзаиморасчетов    = ТекДокумент.Итог("Сумма")
                           +?(ТекДокумент.СуммаВклНП =1,0,Итог("СуммаНП" ))
                           +?(ТекДокумент.СуммаВклНДС=1,0,Итог("СуммаНДС"));
   КонецЦикла;
КонецПроцедуры

Нужно ли плюсовать СуммуНДС/НП как это делается в Функция ПересчетСуммыВзаиморасчетов()?
7 userMR3
 
18.10.11
13:00
(5) что то не меняется значение, можешь подсказать как сделать.
8 userMR3
 
18.10.11
14:54
up
9 ДенисЧ
 
18.10.11
14:54
Наверное, не записываешь...
10 userMR3
 
18.10.11
14:58
ДокРеализация.Провести();
стоит в конце, все равно не запоминает, запись пробовал, тоже не работает...
11 Рэйв
 
18.10.11
15:00
(10)Посмотри в отлдчике чему равны твои итоги
12 userMR3
 
18.10.11
15:08
не знаю как в отладчике смотреть, но вообще Сообщить(ТекДокумент.СуммаВзаиморасчетов); работает.
13 Рэйв
 
18.10.11
15:10
>>не знаю как в отладчике смотреть

Это сильное заявление...

Самое время узнать.
14 Рэйв
 
18.10.11
15:12
В конфигураторе поставь точку останова и запусти чтобы на ней остановилось.
Потом нажми Ctrl+Alt+W , появится табло в котором ты можешь писать любые переменные и выражения и смотреть их значения в тек момент.
пробуй.
15 userMR3
 
18.10.11
15:20
Ctrl+Alt+W  ?
такого хоткея нету, но есть Shift + F9 - вычислить выражение, если это оно, то оно выдает ТекДокумент.СуммаВзаиморасчетов = 0.
16 userMR3
 
18.10.11
15:22
хотя ТекДокумент.Итог("сумма") = 902.1
17 Рэйв
 
18.10.11
15:23
(15)Тебя ждут великие открытия!:-)
Пробуй что тебе говорят
18 Рэйв
 
18.10.11
15:24
ааа.блин..у тебя 77 :-)
19 Рэйв
 
18.10.11
15:24
значит тебя пока не ждут открытия:-))
20 userMR3
 
18.10.11
15:28
В общем итог он считает, но почему то в реквизит СуммаВзаиморасчетов ничего не записывает, единственный способ которым можно изменить уже существующий документ, это изменить сумму документа, тогда он изменяет сумму взаиморасчетов, а в этой процедуре просто задается значение и идет глПрересчет, который просто переводит курс валюты, как я понял...
Есть идеи?
21 1Сергей
 
18.10.11
15:55
а СуммаВзаиморасчетов - реквизит шапки?
22 userMR3
 
18.10.11
16:00
Да, 1с 7.7 комплексная 4.5
23 userMR3
 
18.10.11
16:22
да блеа, что не так то...
24 userMR3
 
18.10.11
16:53
up
25 Михаил Козлов
 
18.10.11
17:15
Проверьте курс взаиморасчетов в документах.
26 userMR3
 
18.10.11
17:52
курс=1
27 userMR3
 
18.10.11
19:04
ап
28 userMR3
 
18.10.11
20:10
up :/
29 userMR3
 
18.10.11
21:05
Ну неужели никто не знает.
30 Kreont
 
18.10.11
21:45
(20) Не просто с глПересчет:

Функция глПересчетТорг(Цена,ВалютаНач,ПоКурсуВалютыНач,ВалютаКон,ПоКурсуВалютыКон,ДатаКурса) Экспорт
   // Эта функция пересчитывает Цену из ВалютаНач и возвращает значение Цена в ВалютаКон
   // в параметрах ПоКурсуВалютыНач и ПоКурсуВалютыНач могут передаваться
   // либо сами курсы либо даты
31 userMR3
 
18.10.11
21:59
Процедура Сформировать()
   ДокРеализация = СоздатьОбъект("Документ.Реализация");
   ДокРеализация.УстановитьФильтр(1,0);
   ДокРеализация.ВыбратьДокументы(НачДата, КонДата);
   
   Пока ДокРеализация.ПолучитьДокумент() = 1 Цикл
       ТекДокумент = ДокРеализация.ТекущийДокумент();
       СуммаВзаиморасчетовДок    = ТекДокумент.Итог("Сумма")
                           +?(ТекДокумент.СуммаВклНП =1,0,ТекДокумент.Итог("СуммаНП" ))
                           +?(ТекДокумент.СуммаВклНДС=1,0,ТекДокумент.Итог("СуммаНДС"));    
           
       ТекДокумент.СуммаВзаиморасчетов        = глПересчет(СуммаВзаиморасчетовДок,ТекДокумент.Валюта,ТекДокумент.Курс,
                           ТекДокумент.Договор.ВалютаВзаиморасчетов,ТекДокумент.ДатаДок,ТекДокумент.Кратность);

       ДокРеализация.Провести();

   КонецЦикла;
КонецПроцедуры

Так тоже не работает.
32 Kreont
 
19.10.11
10:44
(31) А если так:
ДокРеализация.Записать();
ДокРеализация.Провести();
Ошибка? Это не ошибка, это системная функция.