Имя: Пароль:
1C
1С v8
Вопрос по последовательностям
0 Tateossian
 
11.04.14
11:50
Мистяне, нужна подсказка. Есть вот такой кусок кода, запускающийся регламентно (взят из типовой УПП):
...        
МоментВремениДокумента = Новый МоментВремени(д); // д - это дата, конец месяца
ОтборДляГраницы = Новый Структура("Организация, ПроведенВХронологическойПоследовательности", Организация, Ложь);
Если НЕ ИзменитьГраницу(ВидУчета, МоментВремениДокумента, ОтборДляГраницы) Тогда Возврат; КонецЕсли;
...
//Взято из типовой, добавлена проверка на кривые моменты времени
Функция ИзменитьГраницу(Учет, МоментВремениДокумента, ОтборДляГраницы)
    //Сообщить("Попытка изменить границу на "+МоментВремениДокумента);
    ПустойМоментВремени = Новый МоментВремени('00010101', Неопределено);
    ИмяПоследовательности = ?(Учет = "Упр", "ПартионныйУчет", "ПартионныйУчетБУ");
    ТекущаяГраница = Обработки.ПроведениеПоПартиям.Создать().ПолучитьГраницуПоследовательности(Учет, ОтборДляГраницы.Организация);
    Последовательности[ИмяПоследовательности].ПолучитьГраницу(ОтборДляГраницы);
    Если ТекущаяГраница = ПустойМоментВремени Тогда
        Сообщить("По организации """+ОтборДляГраницы.Организация+""" в последовательности "+?(Учет = "Упр", "управленческого партионного учета", "бухгалтерского и налогового партионного учета")+" границы не существует");
        Последовательности[ИмяПоследовательности].УстановитьГраницу(МоментВремениДокумента, ОтборДляГраницы);
        а=1/0;
        Возврат Ложь;
    КонецЕсли;    
//    НачатьТранзакцию();

    Последовательности[ИмяПоследовательности].УстановитьГраницу(МоментВремениДокумента, ОтборДляГраницы);
    ЗаполнитьИзмерениеПроведенВХронологическойПоследовательности(ИмяПоследовательности, МоментВремениДокумента.Дата, ОтборДляГраницы.Организация);
//    ЗафиксироватьТранзакцию();
    
    ЧтоПолучилось = Обработки.ПроведениеПоПартиям.Создать().ПолучитьГраницуПоследовательности(Учет, ОтборДляГраницы.Организация);
    Если ЧтоПолучилось <> МоментВремениДокумента Тогда
        Сообщить("Не получилось установить границу в "+МоментВремениДокумента+", для "+ОтборДляГраницы.Организация);
        Сообщить("Получилось вот так: "+ЧтоПолучилось);
        а=1/0;
        Возврат Ложь;
    КонецЕсли;
    Возврат Истина;
КонецФункции

Сразу скажу - это не моя поделка:3

Вопрос в следующем - иногда в этом месте
Последовательности[ИмяПоследовательности].УстановитьГраницу(МоментВремениДокумента, ОтборДляГраницы)
граница устанавливается на период 00010101, грубо говоря, "слетает". Я даже смотрел профайлером - действительно удаляется запись границы. Почему так может быть?
1 Tateossian
 
11.04.14
11:53
Вот это не могу понять - зойчем эта строка

Последовательности[ИмяПоследовательности].ПолучитьГраницу(ОтборДляГраницы);
2 Tateossian
 
11.04.14
12:20
Ап
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn