|
запрос все усложнняется 🠗 (Волшебник 04.05.2020 18:07) | ☑ | ||
---|---|---|---|---|
0
103
04.05.20
✎
17:10
|
хелп ми, плиз))
Есть Справочник Хранилища. Каждое хранилище закреплено за Ответственным. Есть документы которые хранятся в этих хранилищах. При создании документа указывается в каком хранилище он находится, количество подлинников и количество копий, при чем копии хранятся в другом хранилище (его тоже указываем в документе) с другим Ответственным. Нужна, грубо говоря опись по всем хранилищам по заданному Ответственному: Задаем Ответственного и получаем таблицу: №пп Хранилище Кол-во наименований документа Кол-во экземпляров док-та КАК ПРИПЛЮСОВАТЬ КОПИИ? ВЫДАЕТ ОТДЕЛЬНОЙ СТРОКОЙ И ВЕЗДЕ ПРОПИСЫВАЕТ ОДНО И ТО ЖЕ ХРАНИЛИЩЕ А123, ВО 2 И 4 СТРОКЕ ДОЛЖНЫ БЫТЬ ДРУГИЕ В 3-ЕЙ СТРОКЕ КОПИЯ, ДАННЫЕ 1 И 3 СТРОК ДОЛЖНЫ СУММИРОВАТЬСЯ И БЫТЬ В ОДНОЙ СТРОКЕ № п/п Номер хранилища Количество наименований документов Количество экземпляров документов Примечание 1 А123 8 11 Согласно описи хранилища А123 2 А123 4 6 Согласно описи хранилища А123 3 А123 1 2 Согласно описи хранилища А123 4 А123 1 2 Согласно описи хранилища А123 Функция СформироватьАктПередачиУход() ТабДок = Новый ТабличныйДокумент; НовОтчет = РеквизитФормыВЗначение("Объект"); ОбъектМакет = НовОтчет.ПолучитьМакет("МакетУход"); ОбластьШапка = ОбъектМакет.ПолучитьОбласть("Шапка"); ОбластьШапка.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + "г."; ОбластьШапкаТабл = ОбъектМакет.ПолучитьОбласть("ШапкаТабл"); ОбластьЗначениеТабл = ОбъектМакет.ПолучитьОбласть("ЗначениеТабл"); ОбластьПункт2 = ОбъектМакет.ПолучитьОбласть("Пункт2"); ОбластьПодвал = ОбъектМакет.ПолучитьОбласть("Подвал"); ОбластьПодвал.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + "г."; ОбластьПодвал.Параметры.Отв = Объект.ТекОтв.Сокращенно; ОбластьПодвал.Параметры.Приним = Объект.НовОтветственный.Сокращенно; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА АрхивныйДокумент.КолвоПодл > 0 | ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоПодл, 0) | КОНЕЦ КАК КолвоПодл, | ВЫБОР | КОГДА АрхивныйДокумент.КолвоКопий > 0 | ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0) | КОНЕЦ КАК КолвоКопий, | АрхивныйДокумент.Хранилище КАК Хранилище, | АрхивныйДокумент.ХранилищеКоп КАК ХранилищеКоп, | АрхивныйДокумент.Ответственный КАК Ответственный, | АрхивныйДокумент.Ответственный.Должность КАК Должность, | АрхивныйДокумент.Ссылка КАК КолДок |ИЗ | Документ.АрхивныйДокумент КАК АрхивныйДокумент |ГДЕ | (АрхивныйДокумент.ХранилищеКоп = &ХранилищеКоп | ИЛИ АрхивныйДокумент.Хранилище = &Хранилище | ИЛИ АрхивныйДокумент.Ответственный = &Ответственный | ) |ИТОГИ | СУММА(КолвоПодл), | КОЛИЧЕСТВО(КолДок) |ПО | Хранилище"; Хран = Справочники.Хранилища.НайтиПоРеквизиту("Ответственный",Объект.ТекОтв,,); Запрос.УстановитьПараметр("Ответственный",Объект.ТекОтв); Запрос.УстановитьПараметр("ХранилищеКоп",Хран); Запрос.УстановитьПараметр("Хранилище",Хран); Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьШапка.Параметры.ДолжностьОтпускник = Объект.ТекОтв.Должность; ОбластьШапка.Параметры.ФИООтпускник = Объект.ТекОтв.Наименование; ОбластьШапка.Параметры.ДолжностьПринимающий = Объект.НовОтветственный.Должность; ОбластьШапка.Параметры.ФИОПринимающий = Объект.НовОтветственный.Наименование; ОбластьПодвал.Параметры.НомПечатиПринимающего = Объект.ПечатьНовОтветственного; ОбластьПодвал.Параметры.НомПечатиОтпускника = Объект.ПечатьТекОтв; ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьШапкаТабл); Кол = 0; Пока Выборка.Следующий() Цикл Кол = Кол+1; ОбластьЗначениеТабл.Параметры.НомХран = Хран.Наименование; ОбластьЗначениеТабл.Параметры.КолЭкз = Выборка.КолвоПодл; ОбластьЗначениеТабл.Параметры.КолДок = Выборка.КолДок; ОбластьЗначениеТабл.Параметры.НомерПП= Кол; ТабДок.Вывести(ОбластьЗначениеТабл); КонецЦикла; ТабДок.Вывести(ОбластьПункт2); ТабДок.Вывести(ОбластьПодвал); Возврат(ТабДок); |
|||
1
Волшебник
модератор
04.05.20
✎
18:08
|
Тема не отражает суть сообщения.
Прописные буквы. Уродский программный код через одну строку |
|||
2
103
04.05.20
✎
20:30
|
(1) Я сюда за помощью, а не за оценкой!
|
|||
3
103
04.05.20
✎
20:31
|
(1) а вам, как модератору, можно было бы вести себя тактичнее
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |