Имя: Пароль:
1C
1С v8
Опись документов и работа с макетом
0 1Слайт
 
22.05.20
10:14
Добрый день, я снова за помощью)
Есть хранилище, в нем папки. Нужно сделать опись по всему хранилищу в разрезе папок.
Так чтобы выводилась таблички
ТТТТТ1
АААА1   АААА4
АААА2   АААА5
АААА3

РРРР1
АААА6
АААА7
АААА8

Где ТТТТТ и РРРРР название папки, АААА номер документа.
Сейчас у меня выдает одну табличку, где все документы присваиваются первой найденной папке - помогите решить эту проблему


Запрос.УстановитьПараметр("Хранилище", Отчет.Хранилище);
            Запрос.УстановитьПараметр("СтатусДокумента", Перечисления.СтатусДокумента.НаХранении);
            Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            //Отбираем папки/ящики/блоки
            Запрос2 = Новый Запрос;
               Запрос2.Текст =
                    "ВЫБРАТЬ
                    |    ПапкиВСейфе.Наименование КАК Наименование,
                    |    ПапкиВСейфе.Владелец КАК Владелец
                    |ИЗ
                    |    Справочник.ПапкиВСейфе КАК ПапкиВСейфе
                    |ГДЕ
                    |    ПапкиВСейфе.Владелец = &Владелец";
            Запрос2.УстановитьПараметр("Владелец", Отчет.Хранилище);
            РезультатЗапроса = Запрос2.Выполнить();
            ВыборкаПапок = РезультатЗапроса.Выбрать();
            
            Пока ВыборкаПапок.Следующий() Цикл
                Сообщить(ВыборкаПапок.Наименование);
                ОбластьШапкаТабл.Параметры.Папка = ВыборкаПапок.Наименование;
                ТабДок.Вывести(ОбластьШапкаТабл);
                    Пока Выборка.Следующий() Цикл
                        Если Выборка.КолЭкз > 1 Тогда
                            ОбластьЗначенияТабл.Параметры.РегНомер = Выборка.РегНомер + " " + Выборка.КолЭкз + " экз.";
                        Иначе
                            ОбластьЗначенияТабл.Параметры.РегНомер = Выборка.РегНомер;
                        КонецЕсли;
                        ОбластьЗначенияТабл.Записать(Выборка.РегНомер);
                        ТабДок.Вывести(ОбластьЗначенияТабл);
                    КонецЦикла;
            КонецЦикла;
1 D_E_S_131
 
22.05.20
10:55
Выборка в Выборке? А нельзя сразу одним запросом получить всю необходимую информацию? И что (и откуда) выбирает первый запрос?
2 1Слайт
 
22.05.20
11:01
(1)возможно можно) честно не пробовала, первый запрос большой и отбрает нужные документы
3 1Слайт
 
22.05.20
13:45
(1) Пока Выборка.Следующий() Цикл
                ОбластьЗначенияТабл.Параметры.Папка = Выборка.Папка;
                    Если Выборка.КолЭкз > 1 Тогда
                        ОбластьЗначенияТабл.Параметры.РегНомер = Выборка.РегНомер + " " + Выборка.КолЭкз + " экз.";
                    Иначе
                          ОбластьЗначенияТабл.Параметры.РегНомер = Выборка.РегНомер;
                    КонецЕсли;
                ТабДок.Вывести(ОбластьЗначенияТабл);
            КонецЦикла;
сейчас у меня получается, что под каждый документ создается таблица
Как сделать эти таблицы в разрезе папок?
попробовала в запросе сделать итоги по папке - не выводит номера документов и ругается Выборка.КолЭкз > 1, типа сравнение можно применять только к числу, булево и т.д., а КолЭкз у меня и так число...
4 hhhh
 
22.05.20
13:52
(3) наверно в итогах не указала КолЭкз, вот оно и не число.
5 1Слайт
 
22.05.20
14:07
(4) мне ничего суммировать не нужно, в итогах попробовала использовать только группировку по папкам
КолЭкз нуэно только чтобы дописать к номеру число экземпляров документов если оно более 1
6 1Слайт
 
22.05.20
14:54
вопрос решен