[РЕШЕНО] Как проверить программно необходимость востановление последовательности?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Bkmz, 9 окт 2017.

  1. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    331
    Симпатии:
    11
    Баллы:
    29
    Есть у меня такой код:

    Код:
    #Область ПроверитьГраницу
    
    &НаКлиенте
    Процедура ПроверитьГраницу(Команда)
        ПроверитьГраницуНаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура ПроверитьГраницуНаСервере()
        ТекущаяГраница = Последовательности.Основная.ПолучитьГраницу();
        Отбор = Новый Структура;
        Отбор.Вставить("Событие", Перечисления.Событие.Первое);
        ГраницаАктуальна = Последовательности.Основная.Проверить(ТекущаяГраница, Отбор); 
        Если ГраницаАктуальна Тогда
            Сообщить("Граница актуальна");
        Иначе
            Сообщить("Граница НЕ актуальна");
        КонецЕсли;
    КонецПроцедуры
    
    #КонецОбласти
    
    он мене даже при сбитой последовательности показывает что последовательность восстанавливать не надо. Я наверное не правильно понимаю логику работы метода Проверить()?

    В интернете инфы найти не могу. В типовых УТ, КА, БУХ по одной две каких-то последовательностей. Там что получается вопрос с восстановлением последовательности решается в рамках закрытия месяца?
    Последнее редактирование: 9 окт 2017
  2. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    331
    Симпатии:
    11
    Баллы:
    29
    Наверное я сравниваю границу с границей.

    А надо типа как-то так:
    Код:
    #Область ПроверитьГраницу
    
    &НаКлиенте
    Процедура ПроверитьГраницу(Команда)
       ПроверитьГраницуНаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура ПроверитьГраницуНаСервере()
     
       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
       |   Основная.МоментВремени КАК МоментВремени
       |ИЗ
       |   Последовательность.Основная КАК Основная
       |ГДЕ
       |   Основная.Событие = ЗНАЧЕНИЕ(Перечисление.Событие.Первое)
       |
       |УПОРЯДОЧИТЬ ПО
       |   МоментВремени УБЫВ";
       Выборка = Запрос.Выполнить().Выбрать();
       Выборка.Следующий();
       МоментВремениПоследнегоДокумента = Выборка.МоментВремени; 
     
       Отбор = Новый Структура;
       Отбор.Вставить("Событие", Перечисления.Событие.Первое);
       ГраницаАктуальна = Последовательности.Основная.Проверить(МоментВремениПоследнегоДокумента, Отбор); 
       Если ГраницаАктуальна Тогда
         Сообщить("Граница актуальна");
       Иначе
         Сообщить("Граница НЕ актуальна");
       КонецЕсли;
     
    КонецПроцедуры
    
    #КонецОбласти
    
    
    Последнее редактирование: 9 окт 2017

Поделиться этой страницей