|
v7: сортировка в отчете | ☑ | ||
---|---|---|---|---|
0
Ardov
11.11.14
✎
12:11
|
Подскажите пожалуйста каким образом можно сделать что бы в отчете сортировало всю таблицу по 1 колонке?
|
|||
1
Looser-1c
11.11.14
✎
12:12
|
тз.Сортировать("перваяКолонка");
ЗЫ, какой вопрос, такой и ответ |
|||
2
Мигало
11.11.14
✎
12:12
|
.Сортировать("+<ИмяКолонки>");
|
|||
3
Ardov
11.11.14
✎
12:12
|
получаеться что нужно что бы сортировало по сумме2
//******************************************* Процедура ПриОткрытии() ВидОтчета = 1; надату=ТекущаяДата(); КонецПроцедуры //******************************************* Функция ДатаОпл(ЧислоДней, ДаНач,КалендДни) Если КалендДни=1 Тогда ДаНач=ДаНач+ЧислоДней; Иначе кк = 1; Пока кк <= ЧислоДней - 1 Цикл // проверка празников Если ((ДатаЧисло(ДаНач) = 1) и (ДатаМесяц(ДаНач) = 1)) или // 1 января ((ДатаЧисло(ДаНач) = 7) и (ДатаМесяц(ДаНач) = 1)) или // 7 января (рождество) ((ДатаЧисло(ДаНач) = 8) и (ДатаМесяц(ДаНач) = 3)) или // 8 марта ((ДатаЧисло(ДаНач) = 19) и (ДатаМесяц(ДаНач) = 4)) или // Пасха ((ДатаЧисло(ДаНач) = 1) и (ДатаМесяц(ДаНач) = 5)) или // 1 мая ((ДатаЧисло(ДаНач) = 2) и (ДатаМесяц(ДаНач) = 5)) или // 2 мая ((ДатаЧисло(ДаНач) = 9) и (ДатаМесяц(ДаНач) = 5)) или // 9 мая ((ДатаЧисло(ДаНач) = 27) и (ДатаМесяц(ДаНач) = 5)) или // Тройца ((ДатаЧисло(ДаНач) = 28) и (ДатаМесяц(ДаНач) = 6)) или // День конституции ((ДатаЧисло(ДаНач) = 24) и (ДатаМесяц(ДаНач) = 8)) Тогда// День независимости Иначе Если НомерДняНедели(ДаНач) <= 5 Тогда кк = кк + 1; КонецЕсли; КонецЕсли; ДаНач = ДаНач + 1; КонецЦикла; КонецЕсли; Возврат ДаНач; КонецФункции //ДатаОпл() //******************************************* Функция СтДата(ЧислоДней, ДаНач,КалендДни) Если КалендДни=1 Тогда ДаНач=ДаНач-ЧислоДней; Иначе кк = 0; Пока кк <= ЧислоДней Цикл // проверка празников Если ((ДатаЧисло(ДаНач) = 1) и (ДатаМесяц(ДаНач) = 1)) или // 1 января ((ДатаЧисло(ДаНач) = 7) и (ДатаМесяц(ДаНач) = 1)) или // 7 января (рождество) ((ДатаЧисло(ДаНач) = 8) и (ДатаМесяц(ДаНач) = 3)) или // 8 марта ((ДатаЧисло(ДаНач) = 19) и (ДатаМесяц(ДаНач) = 4)) или // Пасха ((ДатаЧисло(ДаНач) = 1) и (ДатаМесяц(ДаНач) = 5)) или // 1 мая ((ДатаЧисло(ДаНач) = 2) и (ДатаМесяц(ДаНач) = 5)) или // 2 мая ((ДатаЧисло(ДаНач) = 9) и (ДатаМесяц(ДаНач) = 5)) или // 9 мая ((ДатаЧисло(ДаНач) = 27) и (ДатаМесяц(ДаНач) = 5)) или // Тройца ((ДатаЧисло(ДаНач) = 28) и (ДатаМесяц(ДаНач) = 6)) или // День конституции ((ДатаЧисло(ДаНач) = 24) и (ДатаМесяц(ДаНач) = 8)) Тогда// День независимости Иначе Если НомерДняНедели(ДаНач) <= 5 Тогда кк = кк + 1; КонецЕсли; КонецЕсли; ДаНач = ДаНач - 1; КонецЦикла; КонецЕсли; Возврат ДаНач; КонецФункции //СтДата //******************************************* Процедура Сформировать() Если ПустоеЗначение(НаДату) = 1 Тогда Сообщить("Введите дату!", "!"); Возврат; КонецЕсли; Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ?(ВыбКонтрагент.Выбран() = 1, ВыбКонтрагент, ""), 1, 0); Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной); Ит.ИспользоватьРазделительУчета(Константа.БазФирма); Ит.ВключатьСубсчета(0, 0); Ит.Опции(0, 0); Попытка Ит.ВыполнитьЗапрос("01.01.05", НаДату, "361", "", , 3, 2); Исключение Сообщить("Запрос по бух. итогам не выполнен! Укажите по меньше дату!", "!"); Возврат; КонецПопытки; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); ДопЗаголовок = ""; Если ВыбКонтрагент.Выбран() = 1 Тогда ДопЗаголовок = "По контрагенту "+ВыбКонтрагент.ПолнНаименование; ИначеЕсли ВидОтчета = 1 Тогда ДопЗаголовок = "По всем контрагентам"; ИначеЕсли ВидОтчета = 2 Тогда ДопЗаголовок = "По корпорации"; ИначеЕсли ВидОтчета = 3 Тогда ДопЗаголовок = "Без учета корпорации"; КонецЕсли; Таб.ВывестиСекцию("Шапка"); ИтогОбщийДолг = 0; ИтогПросрочка = 0; Ит.ВыбратьСубконто(1,,,,,,); Пока Ит.ПолучитьСубконто(1,,) = 1 Цикл Если ВидОтчета = 2 Тогда Если Лев(Ит.Субконто(1).Родитель.Наименование,10) <> "Корпорация" Тогда //Ит.Субконто(1).Родитель.Код <> "1000" Тогда Продолжить; КонецЕсли; ИначеЕсли ВидОтчета = 3 Тогда Если Лев(Ит.Субконто(1).Родитель.Наименование,10) = "Корпорация" Тогда //Ит.Субконто(1).Родитель.Код = "1000" Тогда Продолжить; КонецЕсли; КонецЕсли; Если ит.СКД()<=0 тогда продолжить; Конецесли; Заплатил = Ит.КО("С"); Если ПустоеЗначение(Ит.Субконто(1).БазДоговор) = 0 Тогда Если ПустоеЗначение(Ит.Субконто(1).БазДоговор.ГлубинаКредита) = 0 Тогда //СрокОтсрочки = Ит.Субконто(1).БазДоговор.ГлубинаКредита; Если Ит.Субконто(1).Код="00402" Тогда ммДог = СоздатьОбъект("Документ.Договор"); Если ммДог.НайтиПоНомеру("1048/14-М",'01.01.14',"Договор")=1 Тогда СрокОтсрочки=ммДог.ТекущийДокумент().ГлубинаКредита; КДни=ммДог.ТекущийДокумент().ГлубинаВКалендарныхДнях; Конецесли; Иначе СрокОтсрочки = Ит.Субконто(1).БазДоговор.ГлубинаКредита; КДни=Ит.Субконто(1).БазДоговор.ГлубинаВКалендарныхДнях; Конецесли; Иначе СрокОтсрочки = 0; КонецЕсли; Иначе СрокОтсрочки = 0; КонецЕсли; Просрочка = 0; ОбщийДолг = 0; Ит.ВыбратьПериоды(,,,); Пока Ит.ПолучитьПериод(,) = 1 Цикл Документ = Ит.Операция; Если Ит.ДО("С") > 0 Тогда Если Заплатил > 0 Тогда ТекЗаплатил = Мин(Заплатил, Ит.ДО("С")); Если ТекЗаплатил < Ит.ДО("С") Тогда Если ДатаОпл(СрокОтсрочки, Документ.ДатаОперации,КДни) < НаДату Тогда //Если Документ.ДатаОперации + СрокОтсрочки < НаДату Тогда Просрочка = Просрочка + (Ит.ДО("С") - ТекЗаплатил); КонецЕсли; КонецЕсли; ОбщийДолг = ОбщийДолг + (Ит.ДО("С") - ТекЗаплатил); Заплатил = Заплатил - ТекЗаплатил; Иначе Если ДатаОпл(СрокОтсрочки, Документ.ДатаОперации,КДни) < НаДату Тогда //Если Документ.ДатаОперации + СрокОтсрочки < НаДату Тогда Просрочка = Просрочка + Ит.ДО("С"); КонецЕсли; ОбщийДолг = ОбщийДолг + Ит.ДО("С"); КонецЕсли; КонецЕсли; КонецЦикла; Если ((ОбщийДолг = 0) И (Просрочка = 0)) Тогда Продолжить; КонецЕсли; ИтогОбщийДолг = ИтогОбщийДолг + ОбщийДолг; ИтогПросрочка = ИтогПросрочка + Просрочка; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСекцию("Итоги"); Таб.ТолькоПросмотр(1); Таб.ПовторятьПриПечатиСтроки(1, 5); Таб.Опции(0, 0, 5); Таб.Показать(); КонецПроцедуры //======================================== Процедура Сформировать2() ДопЗаголовок = ""; Если ВыбКонтрагент.Выбран() = 1 Тогда ДопЗаголовок = "По контрагенту "+ВыбКонтрагент.ПолнНаименование; ИначеЕсли ВидОтчета = 1 Тогда ДопЗаголовок = "По всем контрагентам"; ИначеЕсли ВидОтчета = 2 Тогда ДопЗаголовок = "По корпорации"; ИначеЕсли ВидОтчета = 3 Тогда ДопЗаголовок = "Без учета корпорации"; КонецЕсли; би=СоздатьОбъект("БухгалтерскиеИтоги"); би.ИспользоватьРазделительУчета(константа.БазФирма); вс1=видыСубконто.контрагенты; Если ВыбКонтрагент.Выбран()=1 тогда если ВыбКонтрагент.ЭтоГруппа()=1 тогда би.ИспользоватьСубконто(вс1,ВыбКонтрагент,1); иначе би.ИспользоватьСубконто(вс1,ВыбКонтрагент,2); конецесли; иначе би.ИспользоватьСубконто(вс1,,1); Конецесли; би.ВыполнитьЗапрос(НаДату,наДату,"36"); би.ВыбратьСубконто(1); тб=СоздатьОбъект("ТаблицаЗначений"); тб.НоваяКолонка("Контр"); тб.НоваяКолонка("Срок","число"); тб.НоваяКолонка("Календ","число"); тб.НоваяКолонка("Сумма","число"); тб.НоваяКолонка("Сумма1","число"); тб.НоваяКолонка("Сумма2","число"); тб.НоваяКолонка("Сумма3","число"); Пока би.ПолучитьСубконто(1)=1 цикл лснд=би.СНД(); Если фМинДолг<>0 тогда Если лСнд<фМинДолг тогда продолжить; Конецесли; Конецесли; Если лСнд>0 тогда Если пустоеЗначение(би.Субконто())=1 тогда продолжить; Конецесли; Если ВидОтчета = 2 Тогда Если Лев(би.Субконто().Родитель.Наименование,10) <> "Корпорация" Тогда //би.Субконто().Родитель.Код <> "1000" Тогда Продолжить; КонецЕсли; ИначеЕсли ВидОтчета = 3 Тогда Если Лев(би.Субконто().Родитель.Наименование,10) = "Корпорация" Тогда //би.Субконто().Родитель.Код = "1000" Тогда Продолжить; КонецЕсли; КонецЕсли; тб.НоваяСтрока(); тб.Контр=би.Субконто(); тб.Сумма=би.СКД(); Конецесли; КонецЦикла; тб.ВыбратьСтроки(); пока тб.ПолучитьСтроку()=1 цикл квоД=тб.Контр.глубина.Получить(наДату); Если тб.контр.БазДоговор.Выбран()=1 тогда Если тб.контр.БазДоговор.Вид()="Договор" тогда Если тб.контр.БазДоговор.ГлубинаКредита<>0 тогда //квоД=тб.контр.БазДоговор.ГлубинаКредита; Если тб.Контр.Код="00402" Тогда ммДог = СоздатьОбъект("Документ.Договор"); Если ммДог.НайтиПоНомеру("1048/14-М",'01.01.14',"Договор")=1 Тогда квоД=ммДог.ТекущийДокумент().ГлубинаКредита; КДни=ммДог.ТекущийДокумент().ГлубинаВКалендарныхДнях; Конецесли; Иначе квоД=тб.контр.БазДоговор.ГлубинаКредита; КДни=тб.контр.БазДоговор.ГлубинаВКалендарныхДнях; Конецесли; Конецесли; Конецесли; Конецесли; Если квоД=0 тогда Если фНео=0 тогда Сообщить("У контрагента "+ тб.контр+" неограниченый кредит.","."); продолжить; иначе квоД=21; КДни=1; Конецесли; Конецесли; тб.срок=квоД; тб.Календ=КДни; //СтаДата=дата(СтДата(квоД,наДату,КДни)); мДат=наДату; СтаДата=СтДата(квоД,мДат,КДни); би=СоздатьОбъект("БухгалтерскиеИтоги"); би.ИспользоватьРазделительУчета(константа.БазФирма); би.ИспользоватьСубконто(вс1,тб.контр,2); //би.ВыполнитьЗапрос(наДату-квоД,наДату,"361"); би.ВыполнитьЗапрос(СтаДата,наДату,"361"); би.ВыбратьСубконто(); Если би.ПолучитьСубконто()=1 тогда лКО=би.КО(); лДО=би.ДО(); лСН=би.СНД(); Если тб.Сумма>лДо тогда тб.Сумма2=тб.Сумма-лДо; би.ИспользоватьРазделительУчета(константа.БазФирма); би.ИспользоватьСубконто(вс1,тб.контр,2); //би.ВыполнитьЗапрос(наДату-квоД-21,наДату-квоД,"361"); би.ВыполнитьЗапрос(СтаДата-21,СтаДата,"361"); би.ВыбратьСубконто(); Если би.ПолучитьСубконто()=1 тогда лДО2=би.ДО(); Если тб.Сумма2>лДО2 тогда тб.Сумма3=тб.Сумма2-лДО2; Конецесли; конецесли; Конецесли; Конецесли; конеццикла; таб=СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Таблица"); таб.ВывестиСекцию("Шапка"); таб.Опции(0,0,таб.ВысотаТаблицы(),0); тб.Сортировать("контр"); тб.ВыбратьСтроки(); Пока тб.ПолучитьСтроку()=1 цикл тб.Сумма1=тб.сумма-тб.сумма2; Если тб.сумма1<0 тогда тб.Сумма2=тб.сумма2+тб.сумма1; тб.сумма1=0; Конецесли; тб.Сумма2=тб.сумма2-тб.сумма3; Если тб.сумма2<0 тогда тб.Сумма3=тб.сумма3+тб.сумма2; тб.сумма2=0; Конецесли; таб.ВывестиСекцию("Строка"); КонецЦикла; таб.ВывестиСекцию("Итоги"); таб.ТолькоПросмотр(1); таб.Параметрыстраницы(1,100,0,0,0,0,0,0,0,1); таб.Показать("Реестр просроченой задолженности",,1); КонецПроцедуры |
|||
4
Ardov
11.11.14
✎
12:13
|
а где нужно прописывать саму сортировку, в каком месте? Подскажите пожалуйста
|
|||
5
Looser-1c
11.11.14
✎
12:13
|
Не буду я читать всё это грязное бельё...
|
|||
6
Ardov
11.11.14
✎
12:17
|
подскажите плиз, куда нужно это прописывать, делаю, не получается(
|
|||
7
Chameleon1980
11.11.14
✎
13:00
|
после последней добавленной строки, вероятно
|
|||
8
Злопчинский
11.11.14
✎
13:09
|
Ну его нафиг все это разбирать
В первую очередь потому что Пасха не имеет фиксированной даты в противовес тому что накривляно сучковатыми ручками в этом коде |
|||
9
hefffer
11.11.14
✎
13:19
|
Обалдеть, а я стесняюсь выкладывать свою писанину...
Троица - тоже день не фиксирован. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |