Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Перепроведение и ТА

v7: Перепроведение и ТА
Я
   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
 
 Партнерская программа EFSOL Oblako
   OnePrg
 
1 - 10.12.20 - 17:11
База SQL
   Злопчинский
 
2 - 10.12.20 - 20:21
ставить ТА на документ - это не значит что документ перепроводитьтся. можно сдивнуть ТА без перепроведения документов.
Соответственно а) как вы двигаете ТА - нам отсюда не видно и б) хз что там у вас в модуле проведения написано. В типовых конфигах результат проведения в ТА и не в ТА (задним числом) - одинаков.
   Volodja
 
3 - 11.12.20 - 10:53
_сДаты=Дата("01.01.2015");//здесь устанавливаю ТА на начало периода перепроведения

УстановитьТАНа(_сДаты);

(0 )Я вот так двигаю ТА, когда перепроведение за большой период нужно сделать
        Если (НачНедели(Док.ДатаДок)>=НачНедели(ПолучитьДатуТА())) И (МонопольныйРежим()=1) Тогда
            //ЗафиксироватьТранзакцию();

                _НоваяДатаТА=конГода(ДобавитьМесяц(Док.ДатаДок,3))//Так потом быстрее проводит,3-12 месяцев вперед закидываю

                Если _НоваяДатаТА>РабочаяДата()  Тогда
                    _НоваяДатаТА=КонМесяца(РабочаяДата());
                КонецЕсли;
                УстановитьТАПо(_НоваяДатаТА);
            //НачатьТранзакцию();

        КонецЕсли;
Док.Провести(0);
   Василий Алибабаевич
 
4 - 11.12.20 - 11:09
(0) "Получается, что во время перепроведении ТА не переносится по документам".
Не получается. Просто оно выполняется в единственной транзакции. И если произошла ошибка - откатывается назад.
Если нужно проводить "подокументно" - нужно собственным кодом. Примерно так :
Докс = СоздатьОбъект("Документ");
Докс.УстановитьФильтр(...);//Проведенные непроведенные ...

Докс.ВыбратьДокументы(начДата, конДата);
Пока Докс.ПолучитьДокумент() = 1 Цикл
  Если Докс.Провести() = 0 Тогда
    Сообщить("!!! и прочая лабуда за то что не провелось с какого то перепугу");
    Прервать;
  КонецЕсли;
КонецЦикла;
   Mikeware
 
5 - 11.12.20 - 11:21
(4) а еще - установить ТА на начало. Иначе временный расчет, тормоза и все такое

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.