![]() |
|
Вопрос по последовательностям | ☑ | ||
---|---|---|---|---|
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
|
Ап
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |