понедельник, 24 декабря 2012 г.

Выбор всех документов по оси времени в 1С v82

Тут давеча, пришла в голову совершенно пошлая идея: в управлении торговлей версия 8.2. Выбрать все документы так сказать независимо от вида, а токмо по очередности расположения на оси, сиречь - шкале, времени. И вот, тыж погляди, в 1С v77 есть такой тип "Документ" делай по нему выборку и пперёд. А в 8.2? Про типы в восьмерке я не говорю. От типов в восьмерке волосы встают дыбом и рвутся из ширинки, а яйца от ужаса превращаются в остренькие ромбы. Но вот как эту задачу решить? Нет, есть конечно конструкция вида:


Для Й = 0 По Метаданные.Документы.Количество() - 1 Цикл
ТипДокумента = Метаданные.Документы.Получить(Й).ПолноеИмя();
Сообщить(""+ТипДокумента);
Док=Новый(СтрЗаменить(ТипДокумента,"Документ","ДокументМенеджер"));
Выборка = Док.Выбрать();
Пока Выборка.Следующий() Цикл
ТабСтр = ТЗ.Добавить();
ТабСтр.Документ = Выборка.Ссылка;
ТабСтр.Дата = Выборка.Дата;
КонецЦикла;
КонецЦикла;


но она выбирает документы потипно, а мне нужно перемешать их и расположить по оси времени.
Тупил... Вечерело... От недалёкого крика в ухо снизашло озарение: ТАБЛИЦЫ!
Ну собственно вот, остальное и вообще вся эта задача яйца выеденного не стоит.


        ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Документ");
ТЗ.Колонки.Добавить("Дата");
Для Й = 0 По Метаданные.Документы.Количество() - 1 Цикл
ТипДокумента = Метаданные.Документы.Получить(Й).ПолноеИмя();
Сообщить(""+ТипДокумента);
Док = Новый (СтрЗаменить(ТипДокумента,"Документ","ДокументМенеджер"));
Выборка = Док.Выбрать();
Пока Выборка.Следующий() Цикл
ТабСтр = ТЗ.Добавить();
ТабСтр.Документ = Выборка.Ссылка;
ТабСтр.Дата = Выборка.Дата;
КонецЦикла;
КонецЦикла;

ТЗ.Сортировать("Дата Убыв");
Для Каждого ТабСтр из ТЗ Цикл
Сообщить(""+ТабСтр.Документ+" "+ТабСтр.Дата );
КонецЦикла;

Хотя, решение в народ не пошло, как то все медленно снимает документы с проведения.

Комментариев нет:

Отправить комментарий