|
Через какое время после проведения документа данные фактически меняются | ☑ | ||
---|---|---|---|---|
0
BlackJack
10.01.12
✎
00:08
|
Делаю обработку, чтобы в УТ 10.3 на SQL автоматически заполнить документы расчётов.
Выбираю регистраторы по взаиморасчетам с документами расчетов. Для каждого регистратора делаю запрос о состоянии взаиморасчетов на момент перед ним, заполняю табличную часть (расшифровку платежа или документы расчетов), провожу документ-регистратор и перехожу к следующему. Опять делаю запрос об остатках, но почему-то в данных этого запроса не учитываются изменения, которые сделал только что проведенный регистратор! Хотя если посмотреть по отчёту, то первый регистратор закрывает документы расчётов правильно. Помогите, plz, разобраться, иначе завтра мне будет пипец. |
|||
1
agarych
10.01.12
✎
00:12
|
ну так наверно у тебя все время один и тот же параметр в запросе МоментВремени...
а вообще код давай... |
|||
2
BlackJack
10.01.12
✎
00:14
|
Первое, что проверил момент времени. Нет, не он.
Вот код функции, которая получает остатки перед регистратором. Док - это он. Функция ВзаиморасчетыПередДокументом(Док,Сравнение) Сделка=СделкаДокумента(Док); Если Сделка=Неопределено Тогда Возврат Неопределено; КонецЕсли; Граница=Новый Граница(Док.МоментВремени(),ВидГраницы.Исключая); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата",Граница); Запрос.УстановитьПараметр("Организация",Док.Организация); Запрос.УстановитьПараметр("Контрагент",Док.Контрагент); Запрос.УстановитьПараметр("Договор",Док.ДоговорКонтрагента); Запрос.УстановитьПараметр("Сделка",Сделка); Запрос.УстановитьПараметр("УпрУчет",Док.ОтражатьВУправленческомУчете); Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом",Перечисления.ВидыРасчетовСКонтрагентами.ПоРеализации); Запрос.УстановитьПараметр("Знак",?(Сравнение=">",1,-1)); Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток*&Знак КАК СуммаВзаиморасчетов, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаРеглОстаток*&Знак КАК СуммаРегл, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КАК ДатаОплаты, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента, | 1 КАК КурсВзаиморасчетов, | 1 КАК КратностьВзаиморасчетов, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток*&Знак КАК СуммаПлатежа, | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18) КАК СтавкаНДС, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток * 18 / 118 *&Знак КАК СуммаНДС |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( | &Дата, | Контрагент = &Контрагент | И Организация = &Организация | И Сделка = &Сделка | И УпрУчет = &УпрУчет | И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом | И ДоговорКонтрагента = &Договор) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки |ГДЕ //| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0 | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток "+Сравнение+" 0 | |УПОРЯДОЧИТЬ ПО | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата"; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции |
|||
3
BlackJack
10.01.12
✎
00:21
|
Конвертнул в файловый вариант - тоже самое.
|
|||
4
KUBIK
10.01.12
✎
00:24
|
А если попробовать:
Запрос.УстановитьПараметр("Дата",Док.МоментВремени()); |
|||
5
Чайник Рассела
10.01.12
✎
00:25
|
мдя...
|
|||
6
BlackJack
10.01.12
✎
00:29
|
(4) не помогает.
Вот какая штука в отчёте. 30.09.2011 0:00:00 Ввод начальных остатков по взаиморасчетам Сб000000002 от 30.09.2011 0:00:00 30.09.2011 23:59:59 Платежное поручение входящее Сб000019589 от 30.09.2011 5:26:24 30.09.2011 23:59:59 Платежное поручение входящее Сб000019588 от 30.09.2011 5:26:34 Платёжки закрывают ввод остатков, но время их движения отличается от времени самого документа. |
|||
7
petrowsky
10.01.12
✎
00:47
|
(6) посмотри в обработку проведения платежек, может там при движении по взаиморасчетам с датой что-то намудрили
|
|||
8
BlackJack
10.01.12
✎
00:54
|
(7) Наверное ставит в конец даты оплаты.
Получить момент времени движений тоже не самая тривиальная задача. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |