Имя: Пароль:
1C
1C 7.7
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) а еще - установить ТА на начало. Иначе временный расчет, тормоза и все такое
2 + 2 = 3.9999999999999999999999999999999...