Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вывод итогов выборки в конец табличного документа          
mabuta009 Подменю пользователя
сообщение 08.11.11, 4:22
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго время суток.

У меня возникла такая небольшая проблемка, есть выборка, в конце после сортировки и всего остального я пытаюсь вывести ИТОГИ по колонкам.

Сами итоги выводяться но только сверху (вначале самой таблицы), и без каких либо подписей, что это итоги. А мне надо выводить эти итоги в конце табличного документа ну и подписать что это ИТОГИ.

Вот "кусок" запроса и сам внешний вид его:

|ВЫБРАТЬ
|    ОсновнаяВыборка.Сотрудник КАК Сотрудник,
|    (ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2 КАК Резерв,
  |    ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0) КАК РезультатСреднего,
|    (ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355 КАК СредняяЗП,
|    ((ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355) КАК СумОбесп,
|    (((ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355))*0.3726 КАК СумОбеспФОТ,
|    ((((ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355))) + ((((ОсновнаяВыборка.РезервОтпуска - ОсновнаяВыборка.Резерв2010) + РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА( &ДатаКон, ДЕНЬ), МЕСЯЦ)*2)*((ЕСТЬNULL(НачисленияРезультат.РезультатСреднего, 0))/355))*0.3726) КАК СумОбеспОбщ
|ИЗ
|    ОсновнаяВыборка КАК ОсновнаяВыборка
|        ЛЕВОЕ СОЕДИНЕНИЕ НачисленияРезультат КАК НачисленияРезультат
|        ПО ОсновнаяВыборка.Сотрудник = НачисленияРезультат.СотрудникиНач
|
|УПОРЯДОЧИТЬ ПО
|    Сотрудник
|АВТОУПОРЯДОЧИВАНИЕ
|ИТОГИ
|    СУММА (Резерв),
|    СУММА (РезультатСреднего),
|    СУММА (СредняяЗП),
|    СУММА (СумОбесп),
|    СУММА (СумОбеспФОТ),
|    СУММА (СумОбеспОбщ)
|    ПО
|    ОБЩИЕ
|";


Помогите пожалуйста, если что вывожу результаты просто:

Пока Результат.Следующий() Цикл
ОбработкаПрерыванияПользователя();
СтрОснова = Макет.ПолучитьОбласть("Основа");
СтрОснова.Параметры.Сотрудник = Результат.Сотрудник;
СтрОснова.Параметры.РезервОтпуска = Результат.Резерв;
СтрОснова.Параметры.РезультатСред = Результат.РезультатСреднего;
СтрОснова.Параметры.СредняяЗП = Результат.СредняяЗП;
СтрОснова.Параметры.СумОбесп = Результат.СумОбесп;
СтрОснова.Параметры.СумОбеспФОТ = Результат.СумОбеспФОТ;
СтрОснова.Параметры.СумОбеспОбщ = Результат.СумОбеспОбщ;
ТабДокумент.Вывести(СтрОснова);
КонецЦикла;


Вот картинка нет картинки, читаем правила.
Причина редактирования: Правила, п.11. Вофка.

Flamepayne Подменю пользователя
сообщение 08.11.11, 5:56
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Сибирь
Спасибо сказали: 13 раз
Рейтинг: 0

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

Потом после цикла уже выводите куда Вам надо.


Signature
Ничто так не ограничивает полет мысли программиста, как компилятор...

Спасибо сказали: mabuta009,

awp Подменю пользователя
сообщение 08.11.11, 8:24
Сообщение #3

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

тзРезультат = Результат.Выгрузить();
Для каждого Результат из тзРезультат Цикл
ОбработкаПрерыванияПользователя();
СтрОснова = Макет.ПолучитьОбласть("Основа");
СтрОснова.Параметры.Сотрудник = Результат.Сотрудник;
СтрОснова.Параметры.РезервОтпуска = Результат.Резерв;
СтрОснова.Параметры.РезультатСред = Результат.РезультатСреднего;
СтрОснова.Параметры.СредняяЗП = Результат.СредняяЗП;
СтрОснова.Параметры.СумОбесп = Результат.СумОбесп;
СтрОснова.Параметры.СумОбеспФОТ = Результат.СумОбеспФОТ;
СтрОснова.Параметры.СумОбеспОбщ = Результат.СумОбеспОбщ;
ТабДокумент.Вывести(СтрОснова);
  КонецЦикла;

СтрОснова = Макет.ПолучитьОбласть("Итоги");
СтрОснова.Параметры.СредняяЗП = тзРезультат.Итог("СредняяЗП");
СтрОснова.Параметры.СумОбесп = тзРезультат.Итог("СумОбесп");
СтрОснова.Параметры.СумОбеспФОТ = тзРезультат.Итог("СумОбеспФОТ");
СтрОснова.Параметры.СумОбеспОбщ = тзРезультат.Итог("СумОбеспОбщ");
ТабДокумент.Вывести(СтрОснова);


Signature
Бухгалтер - это не профессия! Это диагноз!

mabuta009 Подменю пользователя
сообщение 08.11.11, 19:13
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Flamepayne @ 08.11.11, 5:56) *
Не совсем понял, что Вы хотите, но можно в цикле считать итоги, потом выводить
Пока Результат.Следующий() Цикл
ОбработкаПрерыванияПользователя();
СтрОснова = Макет.ПолучитьОбласть("Основа");
СтрОснова.Параметры.Сотрудник = Результат.Сотрудник;
СтрОснова.Параметры.РезервОтпуска = Результат.Резерв;
СтрОснова.Параметры.РезультатСред = Результат.РезультатСреднего;
СтрОснова.Параметры.СредняяЗП = Результат.СредняяЗП;
СтрОснова.Параметры.СумОбесп = Результат.СумОбесп;
СтрОснова.Параметры.СумОбеспФОТ = Результат.СумОбеспФОТ;
СтрОснова.Параметры.СумОбеспОбщ = Результат.СумОбеспОбщ;
ТабДокумент.Вывести(СтрОснова);
ИтогРезерв = ИтогРезерв+Результат.Резерв; // и так делать для всех, где хотите получить итог
КонецЦикла;

Потом после цикла уже выводите куда Вам надо.



Спасибо, ВАШ способ подошел, я так и хотел с делать, только вот с циклами перемужрил, и еще там надо еще присвоить переменной 0, чтоб суммиа считалась

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 18:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!