Имя: Пароль:
1C
1C 7.7
v7: Нужна ваша помощь, помогите
0 Karina0687
 
14.11.12
15:11
У меня есть некий отчет
http://s019.radikal.ru/i626/1211/3c/b537575ee57e.png
мне нужно в него добавить В кнопку "Действия" сортировку по контрагентам. По периоду есть, а по контрагентам нету(
Помогите пожалуйста, программист наш запил, а начальник весь день на меня кричит. Как можно реализовать, чтобы там появилась сортировка по контрагентам

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

//*******************************************
//
Процедура Сформировать()

КонецПроцедуры
//========================================
Процедура ПриОткрытии()
   Тб.НоваяКолонка("ТМЦ",,,,,20);
   Тб.НоваяКолонка("Период",,,,,10);
   Тб.НоваяКолонка("Кво","число",,,"Кол-во",12);
   тб1=СоздатьОбъект("ТаблицаЗначений");
   тб.Выгрузить(тб1);
   тб1.НоваяКолонка("Сумма","число");
   фПодразд=ВосстановитьЗначение("МЦ_ПОДРАЗДЕЛЕНИЕ");
   флПер=ВосстановитьЗначение("МЦ_ФЛАГ_ПЕРИОДА");
   Если ПустоеЗначение(фПодразд)=0 тогда
       ЗаполнитьТб(1);
   Конецесли;
КонецПроцедуры
//========================================
Процедура ВыборПодразд()
   ЗаполнитьТб(1);
КонецПроцедуры
//========================================
Процедура ПриЗакрытии()
   Сохранитьзначение("МЦ_ПОДРАЗДЕЛЕНИЕ",фПодразд);
   Сохранитьзначение("МЦ_ФЛАГ_ПЕРИОДА",флПер)
КонецПроцедуры
//========================================
Процедура Группировать(лФл)
   лтб=СоздатьОбъект("ТаблицаЗначений");
   тб1.Выгрузить(лтб);
   кстр=лтб.КоличествоСтрок();
   Пока кСтр>0 цикл
       
       лДата=лтб.ПолучитьЗначение(кстр,2).ДатаДок;
       
       Если (ПустоеЗначение(дата1)=0)и(ПустоеЗначение(дата2)=0) тогда
           Если (лДата>Дата2)или(лДата<Дата1) тогда
               лтб.УдалитьСтроку(кстр);
           Конецесли;
       Конецесли;
       кстр=кстр-1;
   КонецЦикла;
   
   лтб.НоваяКолонка("лпер","строка");
   лтб.НоваяКолонка("лпер1","строка");
   лтб.выбратьСтроки();
   Пока лтб.ПолучитьСтроку()=1 цикл
       лдата=лтб.период.ДатаДок;
       Если лФл=1 тогда
           лтб.лПер=Формат(лдата,"ДММММГГГГ");
           лтб.лПер1=строка(ДатаГод(лдата))+формат(ДатаМесяц(лдата),"Ч02");
       иначеЕсли лФл=2 тогда
           лтб.лПер=Формат(лдата,"ДККККГГГГ");
       иначеЕсли лФл=3 тогда
           лтб.лПер=Строка(ДатаГод(лдата))+" г.";
       иначе
           лтб.лПер=формат(лдата,"ДДДММГГГГ");
           лПер1=лдата;
       Конецесли;
   КонецЦикла;
   лтб.Свернуть("ТМЦ,Лпер1,Лпер","кво, сумма");
   лтб.Сортировать("лпер1,ТМЦ");
   тб.УдалитьСтроки();
   лтб.ВыбратьСтроки();
   Пока лтб.ПолучитьСтроку()=1 цикл

       тб.НоваяСтрока();
       тб.тмц=лтб.ТМЦ;
       тб.кво=лтб.кво;
       тб.период=лтб.лпер;
   КонецЦикла;
КонецПроцедуры

//========================================
Процедура ВыборТБ()
   тк=тб.ТекущаяКолонка();
   тс=тб.ТекущаяСтрока();
   Если тк="Период" тогда
       спс=СоздатьОбъект("СписокЗначений");
       спс.ДобавитьЗначение(1,"По Месячно");
       спс.ДобавитьЗначение(2,"По Квартально");
       спс.ДобавитьЗначение(3,"По Годично");
       спс.ДобавитьЗначение(4,"По пятилеткам");
       спс.ДобавитьЗначение(4,"По Столетиям");
       спс.ДобавитьЗначение(4,"По Тысячелетиям");
       спс.ДобавитьЗначение(4,"По дням");
       флПер=0;
       зн=0;
       Если спс.ВыбратьЗначение(зн,,,,1)=1 тогда
           Группировать(зн);
           флПер=зн;
       Конецесли;
   Конецесли;
   
КонецПроцедуры
//========================================
Процедура ПриНачалеВыбораЗначения(ид,фл)

КонецПроцедуры
//========================================
Процедура кнПечать()
   таб=СоздатьОбъект("Таблица");
   таб.ИсходнаяТаблица("Таблица");
   таб.ВывестиСекцию("Шапка");
   таб.Опции(0,0,таб.ВысотаТаблицы(),0);
   тб.выбратьСтроки();
   нпп=1;
   Пока тб.ПолучитьСтроку()=1 цикл
       таб.ВывестиСекцию("стр");
       нпп=нпп+1;
   КонецЦикла;
   таб.ТолькоПросмотр(1);
   таб.ПараметрыСтраницы(1,100,0,0,0,0,0,0,0,1);
   таб.Показать("Малоценка",,1);
КонецПроцедуры

//========================================
Процедура КнДействия()
   
   спс=СоздатьОбъект("СписокЗначений");
   спс.ДобавитьЗначение(1,"Отобрать период");
   спс.ДобавитьЗначение(2,"Вывести все");
   спс.ДобавитьЗначение(3,"Печать");
   зн=0;
   Если спс.ВыбратьЗначение(зн,,,,1)=0 тогда
       Возврат;
   Конецесли;
   Если зн=1 тогда
       фл=0;
       ВвестиПериод(дата1,дата2,"Выбор периода");
       Группировать(флПер);    
   иначеесли зн=2    тогда
       ВыборПодразд();
   иначеесли зн=3    тогда
       кнПечать();
   Конецесли;
   пПериод=ПериодСтр(дата1,дата2);
КонецПроцедуры
1 zak555
 
14.11.12
15:13
фотка в личке ненастоящая
2 dedmoroz777
 
14.11.12
15:15
Процедура КнДействия()
   
   спс=СоздатьОбъект("СписокЗначений");
   спс.ДобавитьЗначение(1,"Отобрать период");
   спс.ДобавитьЗначение(2,"Вывести все");
   спс.ДобавитьЗначение(3,"Печать");
   спс.ДобавитьЗначение(4,"Сортировка по контрагентам");
   зн=0;
   Если спс.ВыбратьЗначение(зн,,,,1)=0 тогда
       Возврат;
   Конецесли;
   Если зн=1 тогда
       фл=0;
       ВвестиПериод(дата1,дата2,"Выбор периода");
       Группировать(флПер);    
   иначеесли зн=2    тогда
       ВыборПодразд();
   иначеесли зн=3    тогда
       кнПечать();
   Иначеесли зн=4 тогда
        тб.Сортировать("А тут сортируй как хочешь");
   Конецесли;
   пПериод=ПериодСтр(дата1,дата2);
КонецПроцедуры
3 Skylark
 
14.11.12
15:16
(0) Отличная жалостливая история! Ты в тренде.
4 dedmoroz777
 
14.11.12
15:17
только контрагентов у тебя нет в таблице
5 ПиН
 
14.11.12
15:18
фотка неправильная, не будем помогать...
6 SeregaMW
 
14.11.12
15:18
не не будем....
7 АЛьФ
 
14.11.12
15:19
2(2) За такое бан положен.
8 Karina0687
 
14.11.12
15:23
а не подскажите как сделать, что бы мне в таблице контрагенты показывались,
я столбик с контрагентом создала, но там пусто, как правильно прописать
9 АЛьФ
 
14.11.12
15:24
2(8) Надо сменить фотку в личке.
11 Grobik
 
14.11.12
15:29
12 Эльниньо
 
14.11.12
22:21
Ай-яй-яй
13 orange777
 
14.11.12
23:03
(8)а как они связаны с тем, что выводится в отчете?
14 Азат
 
14.11.12
23:05
(0) присылай отчет на почту в личке, сделаю просто так.
15 КошерныйТролль
 
14.11.12
23:14
(14) кто выглядит голодным - никогда не наестся
16 Азат
 
14.11.12
23:15
(15) у кого не хватило ума на нормальный ник, не хватит и на все остальное...
17 КошерныйТролль
 
14.11.12
23:26
(16) у кого не хватает ума завести десяток ников - у того высоки шансы выглядеть голодным
18 Lionee
 
14.11.12
23:37
(0)нее нее фотка не будем
19 Lionee
 
14.11.12
23:37
как говорили в фильмеце искузмиии
20 Lionee
 
14.11.12
23:39
(9) ы бан на 3 дня , за фальсификацию
21 Amra
 
14.11.12
23:40
(20) Давай, до свиданья
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн