Имя: Пароль:
1C
1С v8
Как перенести границы последовательности без перепроведения?
0 Тенепопятам
 
20.04.21
10:14
Нужно перенести границы без перепроведения документов. Для этого, насколько я понял, есть метод УстановитьГраницу(). Проблема в том, что я не могу понять, как применить этот метод к конкретной последовательности. Помогите разобраться.
1 Beduin
 
20.04.21
10:17
В типовых там по кнопке в закрытии можно сделать.
2 Обработка
 
20.04.21
10:18
(0) Дарю.

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Последовательности.ПартионныйУчет.УстановитьГраницу(ДатаПоследовательности);

КонецПроцедуры
3 mikecool
 
20.04.21
10:26
(2) а чего не на документ? или на убоже, что нам не гоже? ))
4 Serg_1960
 
20.04.21
10:45
Всё просто. Азбука: границу последовательности, имхо, надо устанавливать на момент времени документа, входящего в последовательность. Кроме того, ещё нужно учесть наличие в последовательности  дополнительных измерений (как правило, организация). Примерный пример :)

НужнаяПоследовательность.УстановитьГраницу(Новый МоментВремени(НужныйДокумент.Дата), Новый Структура("Организация",НужныйДокумент.Организация));
5 Serg_1960
 
20.04.21
10:51
PS: типовая конфигурация - лучший учебник :) Погугли в конфигурации "СдвигГраницыПоследовательности", ".УстановитьГраницу(" - получишь примеры написания алгоритмов.
6 Обработка
 
20.04.21
10:54
(3) Согласен не спорю.
7 Обработка
 
20.04.21
11:06
Вот с

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    МоментВремениДокумента = Новый МоментВремени(ДокументГаницы.Дата, ДокументГаницы.Ссылка);
    Последовательности.ПартионныйУчет.УстановитьГраницу(МоментВремениДокумента);

КонецПроцедуры
8 Serg_1960
 
20.04.21
12:10
Про измерения не забудь :) Я помню какой фурор произвели методисты 1С добавив в последовательности ПроведенВХронологическойПоследовательности :(
9 Тенепопятам
 
20.04.21
12:16
Спасибо. В общем так и делал. Измерений у меня в УТ нет. Дело в том, что запрос к границам последовательности выдает таблицу, в которой несколько одинаковых записей с одним документом и несколько с другим. Причем граница стоит на одном из этих документов с более ранней датой. Я делал так: УстановитьГраницу(Документ.МоментВремени()), где документ - это документ с более поздней датой из таблицы, но граница при этом не изменялась. Соответственно, мне не понятно - это нормально, что запрос к границам возвращает такой результат? Если да, почему два документа? Это две разные последовательности? Тогда почему только две? Или это какой-то глюк и надо менять границу через скуль?
10 Serg_1960
 
20.04.21
12:41
Если мне память не изменяет, то в УТ есть штатный функционал восстановления последовательностей.
PS: иногда штатный функционал не помогает - бывают такие глюки в базе, когда граница словно замерзает и перестаёт двигаться. тогда легче всё удалить и вновь заполнить последовательность.