Помогите решить проблему.
Необходимо написать обработку для выполнения перепроведения документов за определенный период - аналог встроенной в системе функции перепроведения. Не буду объяснять зачем это нужно, есть определенные моменты в работе стандартной функции. Так вот для перепроведения необходимо выстроить все документы в хронологическом порядке. Насколько я понимаю специально для определения документа на оси времени есть метод МоментВремени. Но при сортировке по этому полю наблюдается не совсем хронологический порядок документов - некоторые документы в конце списка имеют более раннюю дату, чем документы средины списка.
Привожу код обработки. Подскажите что не так.
ТЗДокументы = Новый ТаблицаЗначений;
ТЗДокументы.Колонки.Добавить("ДокСсылка");
ТЗДокументы.Колонки.Добавить("Момент");
Состояние("Создание списка документов...");
Для Каждого Док из Метаданные.Документы Цикл
Если Док.Имя = "УстановкаСоответствияСчетовБУиНУ" или Док.Имя = "УстановкаСоответствияСчетовБУиМСФО" Тогда
Продолжить;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст + ?(Запрос.Текст = "","", "ОБЪЕДИНИТЬ ВСЕ") + "
|
|ВЫБРАТЬ
| Документ" + Док.Имя + ".Ссылка,
| Документ" + Док.Имя + ".МоментВремени
|ИЗ
| Документ." + Док.Имя + " КАК " + "Документ" + Док.Имя + "
|ГДЕ Документ" + Док.Имя + ".Дата >= &ДатаС И Документ" + Док.Имя + ".Дата <= &ДатаПо
| И Документ" + Док.Имя + ".Проведен
|";
Запрос.УстановитьПараметр("ДатаС", ДатаС);
Запрос.УстановитьПараметр("ДатаПо", ДатаПо);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтрТЗДокументы = ТЗДокументы.Добавить();
СтрТЗДокументы.ДокСсылка = Выборка.Ссылка;
СтрТЗДокументы.Момент = Выборка.МоментВремени;
КонецЦикла;
КонецЦикла;
Состояние("Сортировка списка документов...");
ТЗДокументы.Сортировать("Момент");
Для Каждого Стр Из ТЗДокументы Цикл
ДокОбъект = Стр.ДокСсылка.ПолучитьОбъект();
Состояние("Перепроведение " + Стр.ДокСсылка);
Попытка
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Исключение
Сообщить(ОписаниеОшибки());
Продолжить;
КонецПопытки;
КонецЦикла;
Заранее спасибо
i | Выделяйте код |