|
v7: Перепроведение и ТА | ☑ | ||
---|---|---|---|---|
0
OnePrg
10.12.20
✎
17:11
|
Хочу перепровести базу с 1 августа.
Запускаю перепроведение http://imagizer.imageshack.com/img922/6151/nAcS36.png При этом выскакивает предупреждение, что точка актуальности будет перенесена. Ладно. Жму ОК. Начинают проводится документы за 01.08, на одном из документов спотыкается, говорит, что недостаточно товара на остатке. Захожу в журнал, нахожу этот документ и вижу, что ТА установлено на 01.08. Если я ставлю ТА на этот документ, то он проводится нормально. Получается, что во время перепроведении ТА не переносится по документам, а стоит на 01.08.20 00:00:00 |
|||
1
OnePrg
10.12.20
✎
17:11
|
База SQL
|
|||
2
Злопчинский
10.12.20
✎
20:21
|
ставить ТА на документ - это не значит что документ перепроводитьтся. можно сдивнуть ТА без перепроведения документов.
Соответственно а) как вы двигаете ТА - нам отсюда не видно и б) хз что там у вас в модуле проведения написано. В типовых конфигах результат проведения в ТА и не в ТА (задним числом) - одинаков. |
|||
3
Volodja
11.12.20
✎
10:53
|
_сДаты=Дата("01.01.2015"); //здесь устанавливаю ТА на начало периода перепроведения
УстановитьТАНа(_сДаты); (0 )Я вот так двигаю ТА, когда перепроведение за большой период нужно сделать Если (НачНедели(Док.ДатаДок)>=НачНедели(ПолучитьДатуТА())) И (МонопольныйРежим()=1) Тогда //ЗафиксироватьТранзакцию(); _НоваяДатаТА=конГода(ДобавитьМесяц(Док.ДатаДок,3));//Так потом быстрее проводит,3-12 месяцев вперед закидываю Если _НоваяДатаТА>РабочаяДата() Тогда _НоваяДатаТА=КонМесяца(РабочаяДата()); КонецЕсли; УстановитьТАПо(_НоваяДатаТА); //НачатьТранзакцию(); КонецЕсли; Док.Провести(0); |
|||
4
Василий Алибабаевич
11.12.20
✎
11:09
|
(0) "Получается, что во время перепроведении ТА не переносится по документам".
Не получается. Просто оно выполняется в единственной транзакции. И если произошла ошибка - откатывается назад. Если нужно проводить "подокументно" - нужно собственным кодом. Примерно так : Докс = СоздатьОбъект("Документ"); Докс.УстановитьФильтр(...); //Проведенные непроведенные ... Докс.ВыбратьДокументы(начДата, конДата); Пока Докс.ПолучитьДокумент() = 1 Цикл Если Докс.Провести() = 0 Тогда Сообщить("!!! и прочая лабуда за то что не провелось с какого то перепугу"); Прервать; КонецЕсли; КонецЦикла; |
|||
5
Mikeware
11.12.20
✎
11:21
|
(4) а еще - установить ТА на начало. Иначе временный расчет, тормоза и все такое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |