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

Хранилище

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

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



> Группировка по контрагенту          
wmatik Подменю пользователя
сообщение 12.04.13, 10:54
Сообщение #1

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

Подскажите, что не так делаю, мне надо сгруппировать по контрагенту, но сгруппировать получается только в цикле по документу, а мне надо по всем документам чтобы группировало контрагента
Процедура Сформировать()
    
    Запрос = СоздатьОбъект("Запрос");
    
    ТекстЗапроса = "
    |Период с НачДата По КонДата;
    |Док = Документ.БанковскаяВыписка.ТекущийДокумент;
    |Затраты = Документ.ПланБюджетирование.КодЗатрат, Документ.ПриходныйКассовый.Затраты, Документ.РасходныйКассовый.Затраты, Документ.БанковскаяВыписка.ВидыЗатрат;
    |Группировка Док;";
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Таб = СоздатьОбъект("ТаблицаЗначений");
    Таб.НоваяКолонка("Док");
    Таб.НоваяКолонка("Примечание");
    Таб.НоваяКолонка("План","Число");
    Таб.НоваяКолонка("Факт","Число");
    
    ТаблСтрок = СоздатьОбъект("ТаблицаЗначений");
    ТаблСтрок.НоваяКолонка("Контр");
    ТаблСтрок.НоваяКолонка("Сумма");
    ТаблСтрок.НоваяКолонка("Прим");
    ТаблСтрок.НоваяКолонка("Статья");  
                                    
    Табл = СоздатьОбъект("Таблица");
    Табл.ИсходнаяТаблица("Таблица");
    Табл.ВывестиСекцию("Шапка");
    Табл.Опции(0,0,Табл.ВысотаТаблицы(),0);
    Итог = 0;
    Пока Запрос.Группировка(1) = 1 Цикл
        ПечСумма = 0;
        Док = Запрос.Док;
        Таб.НоваяСтрока();
        Таб.Док = Док;
        Таб.Примечание = Док.Примечание;
        
        Если (Док.Вид() = "БанковскаяВыписка") Тогда    
            Док.ВыбратьСтроки();  
            ТаблСтрок.УдалитьСтроки();
            Пока Док.ПолучитьСтроку() = 1 Цикл
                Если ПроверкаСоответствия(Док.ВидыЗатрат) = 1 Тогда
                    Сум = глПересчет(Док.СуммаСНДС,Док.РСчет.Валюта,Док.ДатаДок,Гривня,Док.ДатаДок,Док.ДатаДок);
                    ПечСумма = ПечСумма + Сум;
                    ТаблСтрок.НоваяСтрока();
                    ТаблСтрок.Контр = Док.Субконто1;
                    ТаблСтрок.Сумма = Сум;
                КонецЕсли;
            КонецЦикла;  
            ТаблСтрок.Свернуть("Контр", "Сумма");
            Если ТаблСтрок.КоличествоСтрок() > 0 Тогда
                Таб.Факт = ПечСумма;  
                ТаблСтрок.ВыбратьСтроки();
                Пока ТаблСтрок.ПолучитьСтроку() = 1 Цикл
                    ПечКонтр = ТаблСтрок.Контр;
                    ПечСум = ТаблСтрок.Сумма;
                    Табл.ВывестиСекцию("Строка");  
                КонецЦикла;
            КонецЕсли;    

        Иначе
            Если ПроверкаСоответствия(Док.Затраты) = 1 Тогда
                ПечСумма = глПересчет(Док.СуммаВал,Док.РСчет.Валюта,Док.ДатаДок,Гривня,Док.ДатаДок,Док.ДатаДок);
                Таб.Факт = ПечСумма;      
                Табл.ВывестиСекцию("Док");
                ПечКонтр = Док.Субконто1;
                Если Док.Вид() = "ПлатежноеПоручение" Тогда
                    ПечПримечание = Док.Содержание;
                Иначе
                    ПечПримечание = Док.Примечание;
                КонецЕсли;
                ПечСум = ПечСумма;  
                ПечСтатья = Док.Затраты;      
                Табл.ВывестиСекцию("Строка");
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;                          
    
    Таб.ВыбратьСтроки();
    Факт = Таб.Итог("Факт");

    Табл.ВывестиСекцию("Итог");    
    Табл.ТолькоПросмотр(1);
    Табл.Показать();


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Acid Подменю пользователя
сообщение 12.04.13, 11:24
Сообщение #2

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 378 раз
Рейтинг: 262

почему тогда?
|Группировка Док;";


Signature

Документируйте Код! мать вашу...


wmatik Подменю пользователя
сообщение 12.04.13, 11:34
Сообщение #3

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

если в запросе поставить группировка Субконто1, Сумма будет тянуться неправильная


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

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

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

Цитата(wmatik @ 12.04.13, 12:34) *
если в запросе поставить группировка Субконто1, Сумма будет тянуться неправильная


1.Что такое Субконто1 ?

2. Что долджно получиться на выходе ?

3.
Если (Док.Вид() = "БанковскаяВыписка") Тогда
???


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

Домовик Подменю пользователя
сообщение 12.04.13, 15:58
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

..

Сум = глПересчет(Док.СуммаСНДС,Док.РСчет.Валюта,Док.ДатаДок,Гривня,Док.ДатаДок,Док.ДатаДок);

эту формулу в запрос, конечно, не затянешь.

Но почему не через бухгалтерские итоги (режим запроса) тогда?

Сообщение отредактировал Домовик - 12.04.13, 16:02

Мичман Харитонов Подменю пользователя
сообщение 17.04.13, 15:19
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 164
Из: м. Кам'янське
Спасибо сказали: 26 раз
Рейтинг: 0

Куда бы тут вклиниться.. сразу заполняются таблицы значений, и вывод в таблицу идет...
Лучше бы заполнить таблицу значений,

Таб.Сортировать("Контрагент+")

Потом - вывод данных в таблицу.

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


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

 

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