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

Хранилище

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

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



> Отчет по двум запросам , Сформировать отчет по двум запросам 2 страниц V  < 1 2          
nysysimara Подменю пользователя
сообщение 09.11.17, 14:53
Сообщение #21

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

код
Запрос3 = СоздатьОбъект("Запрос"); 
ТекстЗапроса =
"//{{ЗАПРОС3(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ДатаДок = Документ.НачисленияУдержанияСписком.ДатаДок;
|Расчет = Документ.НачисленияУдержанияСписком.Расчет;
|НомерДок = Документ.НачисленияУдержанияСписком.НомерДок;
|Величина = Документ.НачисленияУдержанияСписком.Величина;
|СкидкаКДоходамДляСтраховыхВзносов = Документ.НачисленияУдержанияСписком.СкидкаКДоходамДляСтраховыхВзносов;
|Функция СкидкаКДоходамДляСтраховыхВзносовСумма = Сумма(СкидкаКДоходамДляСтраховыхВзносов-СкидкаКДоходамДляСтраховыхВзносов+Число(Величина));
|Группировка ДатаДок без упорядочивания;
|Группировка Расчет;
|Группировка НомерДок;
|Условие(Расчет = ВыбРасчет);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос3.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
КонецЕсли;

ТабОбщ = СоздатьОбъект("ТаблицаЗначений");
Запрос3.Выгрузить(ТабОбщ,0,1); //0 - значения групп и функций;//1 - итоги по группировкам выводить сверху

Запрос1 = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС1(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ДатаДок1 = Документ.НачисленияУдержанияСписком.ДатаДок;
|Расчет1 = Документ.НачисленияУдержанияСписком.Расчет;
|НомерДок1 = Документ.НачисленияУдержанияСписком.НомерДок;
|Величина1 = Документ.НачисленияУдержанияСписком.Величина;
|СкидкаКДоходамДляСтраховыхВзносов1 = Документ.НачисленияУдержанияСписком.СкидкаКДоходамДляСтраховыхВзносов;
|Функция СкидкаКДоходамДляСтраховыхВзносовСумма1 = Сумма(СкидкаКДоходамДляСтраховыхВзносов1-СкидкаКДоходамДляСтраховыхВзносов1+Число(Величина1));
|Группировка ДатаДок1 без упорядочивания;
|Группировка Расчет1;
|Группировка НомерДок1;
|Условие(Расчет1 = ВыбРасчет1);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос1.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
КонецЕсли;

ТабОбщ.НоваяКолонка("Расчет1");//
ТабОбщ.НоваяКолонка("СкидкаКДоходамДляСтраховыхВзносов1","Число");

Пока Запрос1.Группировка(1) = 1 Цикл
    ДатаДок1 = Запрос1.ДатаДок1;
    ТабОбщ.НоваяСтрока();
    ТабОбщ.ДатаДок = ДатаДок1;
    ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
    Пока Запрос1.Группировка(2) = 1 Цикл
        Расчет1 = Запрос1.Расчет1;
        ТабОбщ.НоваяСтрока();
        ТабОбщ.ДатаДок = ДатаДок1;
        ТабОбщ.Расчет1 = Расчет1;
        ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
        Пока Запрос1.Группировка(3) = 1 Цикл
            ТабОбщ.НоваяСтрока();
            ТабОбщ.ДатаДок = ДатаДок1;
            ТабОбщ.НомерДок = Запрос1.НомерДок1;
            ТабОбщ.Расчет1 = Расчет1;
            ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
        КонецЦикла;
    КонецЦикла;
КонецЦикла;

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


а строка таблицы
<ТабОбщ.ДатаДок>|<ТабОбщ.НомерДок>|<ТабОбщ.Расчет>|<ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов>| |<ТабОбщ.ДатаДок>|<ТабОбщ.НомерДок>|<ТабОбщ.Расчет1>|<ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1>|

Сообщение отредактировал nysysimara - 09.11.17, 15:08

ranis Подменю пользователя
сообщение 09.11.17, 15:03
Сообщение #22

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

nysysimara @ Сегодня, 15:53 * ,
Пока ТабОбщ.ПолучитьСтроку() <<?>>Цикл
{C:\USERS\FIN\DESKTOP\ГТОВО2.ERT(88)}: Выражение должно иметь логический тип

nysysimara Подменю пользователя
сообщение 09.11.17, 15:10
Сообщение #23

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

ranis @ Сегодня, 15:03 * ,
Пока ТабОбщ.ПолучитьСтроку()=1 Цикл


блин, как стала кодить в 8ке это моя самая частая ошибка


ranis Подменю пользователя
сообщение 09.11.17, 15:20
Сообщение #24

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

nysysimara @ Сегодня, 16:10 * ,
А тут то что не то sad.gif

Вот что выходит

nysysimara Подменю пользователя
сообщение 09.11.17, 15:21
Сообщение #25

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

ranis @ Сегодня, 15:16 * ,
в свойствах ячеек с данными нужно указать тип="Выражение"

ranis Подменю пользователя
сообщение 09.11.17, 15:35
Сообщение #26

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

nysysimara @ Сегодня, 16:21 * ,
Что то тут явно не то biggrin.gif

Вот что за нулевые поля?

nysysimara Подменю пользователя
сообщение 09.11.17, 15:49
Сообщение #27

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

ranis @ Сегодня, 15:31 * ,
взамен
ТабОбщ.Сортировать("ДатаДок,НомерДок");

так
ТабОбщ.Сортировать("ДатаДок,НомерДок,Расчет,Расчет1");


взамен кода
ТабОбщ.НоваяКолонка("СкидкаКДоходамДляСтраховыхВзносов1","Число");

Пока Запрос1.Группировка(1) = 1 Цикл
    ДатаДок1 = Запрос1.ДатаДок1;
    ТабОбщ.НоваяСтрока();
    ТабОбщ.ДатаДок = ДатаДок1;
    ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
    Пока Запрос1.Группировка(2) = 1 Цикл
        Расчет1 = Запрос1.Расчет1;
        ТабОбщ.НоваяСтрока();
        ТабОбщ.ДатаДок = ДатаДок1;
        ТабОбщ.Расчет1 = Расчет1;
        ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
        Пока Запрос1.Группировка(3) = 1 Цикл
            ТабОбщ.НоваяСтрока();
            ТабОбщ.ДатаДок = ДатаДок1;
            ТабОбщ.НомерДок = Запрос1.НомерДок1;
            ТабОбщ.Расчет1 = Расчет1;
            ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносов1;
        КонецЦикла;
    КонецЦикла;
КонецЦикла;

ТабОбщ.Свернуть("ДатаДок,НомерДок,Расчет,Расчет1","СкидкаКДоходамДляСтраховыхВзносов,СкидкаКДоходамДляСтраховыхВзносов1");


этот
ТабОбщ.НоваяКолонка("СкидкаКДоходамДляСтраховыхВзносовСумма1","Число");

Пока Запрос1.Группировка(1) = 1 Цикл
    ДатаДок1 = Запрос1.ДатаДок1;
    ТабОбщ.НоваяСтрока();
    ТабОбщ.ДатаДок = ДатаДок1;
    ТабОбщ.ССкидкаКДоходамДляСтраховыхВзносовСумма1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносовСумма1;
    Пока Запрос1.Группировка(2) = 1 Цикл
        Расчет1 = Запрос1.Расчет1;
        ТабОбщ.НоваяСтрока();
        ТабОбщ.ДатаДок = ДатаДок1;
        ТабОбщ.Расчет1 = Расчет1;
        ТабОбщ.СкидкаКДоходамДляСтраховыхВзносовСумма1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносовСумма1;
        Пока Запрос1.Группировка(3) = 1 Цикл
            ТабОбщ.НоваяСтрока();
            ТабОбщ.ДатаДок = ДатаДок1;
            ТабОбщ.НомерДок = Запрос1.НомерДок1;
            ТабОбщ.Расчет1 = Расчет1;
            ТабОбщ.СкидкаКДоходамДляСтраховыхВзносовСумма1 = Запрос1.СкидкаКДоходамДляСтраховыхВзносовСумма1;
        КонецЦикла;
    КонецЦикла;
КонецЦикла;

ТабОбщ.Свернуть("ДатаДок,НомерДок,Расчет,Расчет1","СкидкаКДоходамДляСтраховыхВзносовСумма,СкидкаКДоходамДляСтраховыхВзносовСумма1");


и в таблице заменить
ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов на ТабОбщ.СкидкаКДоходамДляСтраховыхВзносовСумма
ТабОбщ.СкидкаКДоходамДляСтраховыхВзносов1 на ТабОбщ.СкидкаКДоходамДляСтраховыхВзносовСумма1

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

logist Подменю пользователя
сообщение 09.11.17, 15:53
Сообщение #28

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(ranis @ 09.11.17, 8:03) *
актуально

У нас не принято "поднимать" темы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

ranis Подменю пользователя
сообщение 09.11.17, 15:55
Сообщение #29

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

nysysimara @ Сегодня, 16:49 * ,
в группировке у меня похоже проблема sad.gif

logist @ Сегодня, 16:53 * ,
Я не поднял тему, а просто указал, что проблема не решена. И заранее прошу прощения за ошибки, я не знаю всех правил

salton Подменю пользователя
сообщение 10.11.17, 8:07
Сообщение #30

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

Цитата(ranis @ 09.11.17, 15:55) *
в группировке у меня похоже проблема


"Без Итогов"
в обеих запросах. Если нужен итог - пользуйтесь ТЗ.Итог("ИмяКолонки")

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

ranis Подменю пользователя
сообщение 10.11.17, 9:11
Сообщение #31

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

salton @ Сегодня, 9:07 * ,
Это для итого по всему документу?

nysysimara @ Вчера, 16:49 * ,
Огромное спасибо за помощь wub.gif . Теперь я хоть что-то представляю. Задача решена, чуть чуть подкорректировал

И всем остальным, выражаю огромную благодарность

Vofka Подменю пользователя
сообщение 10.11.17, 9:40
Сообщение #32

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(ranis @ 10.11.17, 9:11) *
Огромное спасибо за помощь

Жмите палец вверх.

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

salton Подменю пользователя
сообщение 10.11.17, 11:31
Сообщение #33

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

Цитата(ranis @ 10.11.17, 9:11) *
salton @ Сегодня, 9:07 ,
Это для итого по всему документу?

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

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

ставим
СуммаСкидкаКДоходамДляСтраховыхВзносовСумма = ТабОбщ.Итог("СкидкаКДоходамДляСтраховыхВзносовСумма");

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

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


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

 

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