Как найти дату самого раннего документа в любой базе (или сам документ при желании)
Функция НайтиСамыйПервыйДокументБазыДата() Экспорт
ТаблицаПервыхДокументов = Новый ТаблицаЗначений;
ТаблицаПервыхДокументов.Колонки.Добавить("Дата");
Для Каждого ВидДокумента Из Метаданные.Документы Цикл
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИмяДокумента.Дата КАК Дата
|ИЗ
| Документ.%ИмяДокумента% КАК ИмяДокумента
|
|УПОРЯДОЧИТЬ ПО
| Дата";
Запрос.Текст = СтрЗаменить(Запрос.Текст,"%ИмяДокумента%", ВидДокумента.Имя);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Продолжить;
КонецЕсли;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи.Следующий();
НоваяЗапись = ТаблицаПервыхДокументов.Добавить();
НоваяЗапись.Дата = ВыборкаДетальныеЗаписи.Дата;
КонецЦикла;
ТаблицаПервыхДокументов.Сортировать("Дата Возр");
Если ТаблицаПервыхДокументов.Количество()=0 Тогда
НоваяЗапись = ТаблицаПервыхДокументов.Добавить();
НоваяЗапись.Дата = "ЗАМЕНИТЬ НА ВАШУ ДАТА НА ВЫБОР";
КонецЕсли;
Возврат ТаблицаПервыхДокументов[0].Дата;
КонецФункции
НайтиЭлементСпискаЗначений (БСП)
НайтиСтрокуВДанныхФормыДерево (БСП)
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы (БСП)
ПроверитьНомерДокументаПоДате (БСП)
ПроверитьНомерДокументаПоДатеИОрганизации (БСП)
#1, 27 ноября 2023 10:40
Запрос в цикле. Плохой подход в данной ситуации.
#2, 27 ноября 2023 10:48
(1) dr.Ally, да создание текста запроса в цикле было бы скорее всего правильнее и ТЧ не нужно было бы потом мучить
#3, 27 ноября 2023 11:13
(2) Yana, для данной задачи это бессмысленно. Очевидно что решение под разовую задачу найди док с кривой датой и дать по шапке