Пропадает граница последовательности при загрузке системы
Пропадает граница последовательности при загрузке системы. В глобальном модуле есть функция, суть - восстановление последовательности по регистру товары.
В результате проводятся все документы, а границы последовательности - нет. Вот результат:
Документ ГП не определён.
Имя последовательности Товары
Последовательность неприрывна до: . . 00:00:00
Позиция ГП: # 0 0
Последовательность восстановлена!
Даже если я устанавливаю ГП вручную, через: Послед.Установить(Док);
то после перезагрузки все равно слетает! Что это может быть???
Для А=1 По Метаданные.Последовательность() Цикл
Посл = Метаданные.Последовательность(А).Идентификатор;
Если Найти(Посл,"Товары")<>0 Тогда //вот она родимая........
Послед=Последовательность.ПолучитьАтрибут(Посл);
ДокПос=Послед.ПолучитьДокумент(); //вот и документ получили
ПозицияНач = Послед.ПолучитьПозицию();
ДатП = Послед.ПолучитьДату();
Прервать;
КонецЕсли;
КонецЦикла;
Док = СоздатьОбъект("Документ"); б = 0;
Док.ВыбратьПоПоследовательности(ПозицияНач, , Посл);
Пока Док.ПолучитьДокумент() = 1 Цикл
б = б + 1;
Если б > 1 тогда
// непроведенные документы не принадлежат посл-тям
Если Док.Проведен() = 0 Тогда
Продолжить;
КонецЕсли;
// запретить регистрацию изменений документа при его проведении
Док.РегистрацияИзменений(0);
// собственно проведение документа. так как документы проводятся
// последовательно то граница посл-ти будет перенесена на данный
// документ
Если Док.Провести()=0 Тогда
Сообщить("ОБНАРУЖЕНА ОШИБКА. Документ не провелся! "+Док);
Прервать;
КонецЕсли;
Сообщить(Док);
КонецЕсли;
//тут считаем сколько доков проведи и при необходимости делаем паузу
КонецЦикла;
Если б > 1 тогда
Сообщить("Документ ГП "+?(Док.Выбран()=1,""+Док," не определён."));
Сообщить("Имя последовательности "+Посл);
Сообщить("Последовательность неприрывна до: "+Послед.Получить());
Сообщить("Документ розрыва: "+ДокПос);
Сообщить("Последовательность восстановлена!");
КонецЕсли;
Послед.Установить(Док);
ПоказатьВ результате проводятся все документы, а границы последовательности - нет. Вот результат:
Документ ГП не определён.
Имя последовательности Товары
Последовательность неприрывна до: . . 00:00:00
Позиция ГП: # 0 0
Последовательность восстановлена!
Даже если я устанавливаю ГП вручную, через: Послед.Установить(Док);
то после перезагрузки все равно слетает! Что это может быть???
По теме из базы знаний
Найденные решения
(5) ну. включи как бы мозг.
Послед.Установить(Док); //как бы тут закончена обработка ВСЕХ доков. ты находишься за пределами ВСЕХ доков. о каком доке ЗДЕСЬ ты ведешь речь?
//
Док = СоздатьОбъект("Документ"); б = 0;
Док.ВыбратьПоПоследовательности(ПозицияНач, , Посл);
Пока Док.ПолучитьДокумент() = 1 Цикл
.....
КонецЦикла;
Послед.Установить(Док); //как бы тут закончена обработка ВСЕХ доков. ты находишься за пределами ВСЕХ доков. о каком доке ЗДЕСЬ ты ведешь речь?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ну, перепровел ты кучу документов в последовательности - и что?
автоматом только ТА сдвигается если проведение идет в "текущем времени" со сдвигом ТА - тогда и ГП сдвинется автоматом.
а так если без сдвига ТА - провел доки в последовательности - ставь программно ГП на нужный момент времени.
автоматом только ТА сдвигается если проведение идет в "текущем времени" со сдвигом ТА - тогда и ГП сдвинется автоматом.
а так если без сдвига ТА - провел доки в последовательности - ставь программно ГП на нужный момент времени.
(5) ну. включи как бы мозг.
Послед.Установить(Док); //как бы тут закончена обработка ВСЕХ доков. ты находишься за пределами ВСЕХ доков. о каком доке ЗДЕСЬ ты ведешь речь?
//
Док = СоздатьОбъект("Документ"); б = 0;
Док.ВыбратьПоПоследовательности(ПозицияНач, , Посл);
Пока Док.ПолучитьДокумент() = 1 Цикл
.....
КонецЦикла;
Послед.Установить(Док); //как бы тут закончена обработка ВСЕХ доков. ты находишься за пределами ВСЕХ доков. о каком доке ЗДЕСЬ ты ведешь речь?
Большое спасибо CheBurator!!! Действительно для установления ГП нужно было выбрать документ!
Решил добавлением таблицы значений:
В таблице у меня также есть колонки для сортировки по типу документа, и при надобности можно перепровести документы с заданной сортировкой и изменением времени документа...
Решил добавлением таблицы значений:
ТабДок = СоздатьОбъект("ТаблицаЗначений");
ТабДок.НоваяКолонка("Документ");
...
Если Док.Провести()=0 Тогда
Сообщить("ОБНАРУЖЕНА ОШИБКА. Документ не провелся! "+Док);
Прервать;
иначе
ТабДок.НоваяСтрока();
ТабДок.Документ = Док.ТекущийДокумент();
КонецЕсли;
...
Если ТабДок.КоличествоСтрок() > 0 тогда
ДокПос = ТабДок.ПолучитьЗначение(ТабДок.КоличествоСтрок(),"Документ");
Послед.Установить(ДокПос);
ПозицияНач = Послед.ПолучитьПозицию();
Иначе Сообщить("Последовательность проведения документов актуальная!");
КонецЕсли;
ПоказатьВ таблице у меня также есть колонки для сортировки по типу документа, и при надобности можно перепровести документы с заданной сортировкой и изменением времени документа...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот