Имя: Пароль:
1C
1C 7.7
v7: Таблица Значений нет сортировки
0 APDATE
 
18.03.13
12:11
привет всем
почему тз не сортирует
               Пока БИ.ПолучитьСубконто(3) = 1 Цикл
                   ТЗсортировка=СоздатьОбъект("ТаблицаЗначений");
                   ТЗсортировка.НоваяКолонка("Сотр","Справочник.МестоРаботы");
                   ТЗсортировка.НоваяКолонка("Сортировка");
                   ТЗсортировка.НоваяКолонка("ФИО","Строка");
                   ТЗсортировка.НоваяКолонка("Код","Число");
                   ТЗсортировка.НоваяКолонка("Ставки","Число");
                   
                   БИ.ВыбратьСубконто(4);
                   Пока БИ.ПолучитьСубконто(4) = 1 Цикл  
                       Если (Число(БИ.СКД()-БИ.СКК()) = 0) и (Число(БИ.СКД(3)) =  0) Тогда
                       Иначе
                           Если пустоезначение(БИ.Субконто(4)) = 1 тогда
                               ТЗсортировка.НоваяСтрока();
                               ТЗсортировка.ФИО="ЯЯЯЯ";
                               ТЗсортировка.Код=1;
                               ТЗсортировка.Ставки=(БИ.СКД()-БИ.СКК());
                           Иначе
                               Если (БИ.Субконто(4).СостояниеФизлица=перечисление.СостояниеФизлица.ШС_Совм) или (БИ.Субконто(4).СостояниеФизлица=перечисление.СостояниеФизлица.ШС_РЗО)
                               или (БИ.Субконто(4).СостояниеФизлица=перечисление.СостояниеФизлица.ВС_Совм) или (БИ.Субконто(4).СостояниеФизлица=перечисление.СостояниеФизлица.ВС_РЗО) тогда
                                   ТЗсортировка.НоваяСтрока();
                                   ТЗсортировка.ФИО="ЯЯЯЯ";
                                   ТЗсортировка.Код=1;
                                   ТЗсортировка.Ставки=(БИ.СКД()-БИ.СКК());
                               
                                   ТЗсортировка.НоваяСтрока();
                                   ТЗсортировка.Сотр=БИ.Субконто(4);
                                   ТЗсортировка.Сортировка = БИ.Субконто(4).Владелец.Код;
                                   ТЗсортировка.ФИО="ЯЯЯЯ";
                                   ТЗсортировка.Код=2;
                               Иначе
                                   ТЗсортировка.НоваяСтрока();
                                   ТЗсортировка.Сотр=БИ.Субконто(4);
                                   ТЗсортировка.Сортировка = БИ.Субконто(4).Владелец.Код;
                                   Если Число(БИ.Субконто(4).ФактСтавка.Получить(ДатаОтчета)) <> 0 Тогда
                                       ТЗсортировка.Ставки=(БИ.Субконто(4).ФактСтавка.Получить(ДатаОтчета));    
                                   Иначе
                                       ТЗсортировка.Ставки=(БИ.СКД()-БИ.СКК());
                                   КонецЕсли;
                                   Если ПустоеЗначение(БИ.Субконто(4).РеалЗаменяемый.Получить(ДатаОтчета)) = 0 Тогда
                                       ТЗсортировка.ФИО=СокрЛП(БИ.Субконто(4).РеалЗаменяемый.Получить(ДатаОтчета));
                                       ТЗсортировка.Код=99999;
                                   ИначеЕсли ПустоеЗначение(БИ.Субконто(4).МестоЗаменяемого.Получить(ДатаОтчета)) = 0 Тогда
                                       ТЗсортировка.ФИО=СокрЛП(БИ.Субконто(4).МестоЗаменяемого.Получить(ДатаОтчета).Владелец);
                                       ТЗсортировка.Код=99999;
                                   Иначе
                                       ТЗсортировка.ФИО=СокрЛП(БИ.Субконто(4).Владелец);
                                       ТЗсортировка.Код=Число(БИ.Субконто(4).Код);
                                   КонецЕсли;
                                   //===================================================================
                                   Если Число(БИ.Субконто(4).ФактСтавка.Получить(ДатаОтчета)) <> 0 Тогда
                                       Если Число(БИ.СКД()-БИ.СКК()-БИ.Субконто(4).ФактСтавка.Получить(ДатаОтчета)) <> 0 Тогда
                                           ТЗсортировка.НоваяСтрока();
                                           ТЗсортировка.ФИО="ЯЯЯЯ";
                                           ТЗсортировка.Код=1;
                                           ТЗсортировка.Ставки=(БИ.СКД()-БИ.СКК()-БИ.Субконто(4).ФактСтавка.Получить(ДатаОтчета));
                                       КонецЕсли;
                                   КонецЕсли;
                               КонецЕсли;
                           КонецЕсли;
                       КонецЕсли;
                   КонецЦикла;
                   ТЗсортировка.Свернуть("Сотр,Сортировка,ФИО,Код","Ставки");
                   ТЗсортировка.Сортировать("Сортировка");
                   //ТЗсортировка.Сортировать("+ФИО,+Код");
1 APDATE
 
18.03.13
12:12
выдает все в разнобой
2 cw014
 
18.03.13
12:12
(1) Какой тип у "Сортировка"?
3 APDATE
 
18.03.13
12:14
Строка
4 cw014
 
18.03.13
12:14
По колонке "Сортировка" вразнобой идет? Приведи пример
5 APDATE
 
18.03.13
12:15
ТЗсортировка.Сортировка = БИ.Субконто(4).Владелец.Код;
Владелец = спр.Сотрудники
у спр.Сотрудники рекв код тип текст
6 cw014
 
18.03.13
12:15
(5) Пример в студию.
7 APDATE
 
18.03.13
12:17
колонку "сортироква" я не вывожу
в печ форму идут только
"Сотр"
ФИО"
"Код"
"Ставки"
8 APDATE
 
18.03.13
12:17
куда скрин залить?
9 YF
 
18.03.13
12:18
(7) Ты выведи значения колонки "Сортировка" идущих подряд  трех  строк
10 cw014
 
18.03.13
12:18
Покажи, что у тебя поле "Сортировка" вразнобой идет. Просто скопипасть сюда коды последовательно из этой колонки, где сбой идет
11 YF
 
18.03.13
12:19
(8) пока не ответишь на (9) что тоже самое что и (6) нифиг скрин
12 fgaabbb
 
18.03.13
12:19
(8) ТЗсортировка.выбратьстроку() сделай и заскринь
13 APDATE
 
18.03.13
12:19
ок
14 APDATE
 
18.03.13
12:19
4073
4010
4021
4022
4044
4082
4020
4062
4064
4016
4025
4027
4040
4069
4092
4024
4029
4039
4042
4043
4045
4046
4047
4068
4075
4078
4079
4083
4084
4089
4093

4043
4045
4046
4047
4078
4093

4024
4075

4037
4042
4083
4084
15 APDATE
 
18.03.13
12:20
вот допустим 4024
16 APDATE
 
18.03.13
12:20
это колонка код
17 cw014
 
18.03.13
12:21
(15) Хороший скрин конечно
18 Ёпрст
 
18.03.13
12:21
(16) СокрЛП() воткни в код - у тебя пробелы есть.
19 cw014
 
18.03.13
12:22
(15) Скрин сделай - и пришли
20 APDATE
 
18.03.13
12:22
это копия колонки из печ формы
21 cw014
 
18.03.13
12:23
(18) +1
(20) в (18) твое решение
22 APDATE
 
18.03.13
12:24
сокрлп не помогает
23 APDATE
 
18.03.13
12:24
ТЗсортировка.Сортировка = СокрЛП(БИ.Субконто(4).Владелец.Код);
24 cw014
 
18.03.13
12:25
(23) тогда скрин прямо из эсины
25 APDATE
 
18.03.13
12:27
блин во косяк короче на форме отчета создал тз обозвал ее ТЗсортировка в коде заремил создание обьекта ТЗсортировка
после сформировал отчет на форме из тз все ок!! "сортируется!!! а вот на печ форме косяк!
26 APDATE
 
18.03.13
12:30
так куда скрин то залить?
27 cw014
 
18.03.13
12:31
А что, сервисов мало?
28 cw014
 
18.03.13
12:31
29 cw014
 
18.03.13
12:31
Дальше перечислять?
30 APDATE
 
18.03.13
12:39
это скрин того что на форме отчета
http://s020.radikal.ru/i708/1303/cc/0b8be954a8a8.jpg
здесь все ок!!!
31 cw014
 
18.03.13
12:41
(30) Ну вот и отлично
32 Cthulhu
 
18.03.13
12:42
только такие вещи кошернее сохранять в ПНГ.
и не в таком мелком хрен-чо-увидишь масштабе.
33 APDATE
 
18.03.13
12:44
щас залью большом моштабе
34 APDATE
 
18.03.13
12:47
http://s019.radikal.ru/i607/1303/e7/b3be08e52ca3.jpg
это то что на форме в тз


http://s002.radikal.ru/i197/1303/2f/ceec49823a9e.jpg
а это что в печ форме
35 cw014
 
18.03.13
12:49
(34) Давай теперь код, которым выводишь в таблицу
36 APDATE
 
18.03.13
12:50
ТЗсортировка.Свернуть("Сотр,Сортировка,ФИО,Код","Ставки");
                   ТЗсортировка.Сортировать("Сортировка");
                   //ТЗсортировка.Сортировать("+ФИО,+Код");
                   ТЗсортировка.ВыбратьСтроки();
                   Пока ТЗсортировка.ПолучитьСтроку() = 1 Цикл
                       ПечТО="";ПечОклад=0;ПечФонд=0;ПечФонд1=0;
                       если пустоезначение(ТЗсортировка.Сотр) = 1 тогда
                           ПечТН = "";
                           ПечСотр = "Вакансия";
                           ПечСпециальность = "";
                           КвалификацияДляВакансии = "";
                           КвалификацияДляВакансии = глПолучитьКвалификациюДляВакансии(БИ.Субконто(3),ДатаОтчета);
                           Если ПустоеЗначение(КвалификацияДляВакансии) = 0 Тогда
                               Если БИ.Субконто(3).Должность.Объединение = 1 Тогда  
                                   ПечДолжность = СокрЛП(КвалификацияДляВакансии.Должность);
                               Иначе
                                   ПечДолжность = СокрЛП(БИ.Субконто(3).Должность);
                               КонецЕсли;
                               
                               Если ПустоеЗначение(КвалификацияДляВакансии.Категория) = 0 Тогда
                                   ПечСпециальность = СокрЛП(КвалификацияДляВакансии.Категория);
                               КонецЕсли;
                               
                               ТР=КвалификацияДляВакансии.Разряд.Разряд;
                               ТК=КвалификацияДляВакансии.Разряд.Коэффициент.Получить(ДатаОтчета);
                               КК=КвалификацияДляВакансии.Разряд.КоррКоэффициент.Получить(ДатаОтчета);
                               КС=БИ.Субконто(3).КоэфСложности.Получить(ДатаОтчета);
                               КР=БИ.Субконто(3).КоэфРуководство.Получить(ДатаОтчета);
                           КонецЕсли;
                           КС=БИ.Субконто(3).КоэфСложности.Получить(ДатаОтчета);
                           КР=БИ.Субконто(3).КоэфРуководство.Получить(ДатаОтчета);
                                   
                           ПечСтаж = "";
                           ПечСтавка = сокрлп(формат(ТЗсортировка.Ставки,"Ч19.2. "));
                           ПечТО = Окр(глПолучитьТарифныйОкладВакансии(БИ.Субконто(3),ДатаОтчета));
                           Таб.ВывестиСекцию("Сотр|Основная");
                           
                           Оклад=0;
                           ТЗ.ВыбратьСтроки();
                           Пока ТЗ.ПолучитьСтроку() = 1 Цикл
                               Рез=0;Сумм="";
                               Если ПустоеЗначение(ТЗ.ВР) = 0 Тогда
                                   Список = глРезультатНачисленияУдержанияВакансии(ТЗ.ВР, БИ.Субконто(3), ДатаОтчета);
                                   Если Список <> "нет" Тогда
                                       Если ТипЗначенияСтр(Список) = "СписокЗначений" Тогда
                                           Если Список.РазмерСписка() = 2 Тогда    
                                               Рез = Окр(Список.ПолучитьЗначение(1));
                                               Сумм = ""+СокрЛП(Список.ПолучитьЗначение(2))+" %"+РазделительСтрок+СокрЛП(Формат(Список.ПолучитьЗначение(1),"Ч19.0. "));
                                           КонецЕсли;
                                       Иначе
                                           Рез = Окр(Список);
                                           Сумм = СокрЛП(Формат(Список,"Ч19.0. "));
                                       КонецЕсли;
                                       Оклад=Оклад+Рез;
                                   КонецЕсли;
                               КонецЕсли;
                               Таб.ПрисоединитьСекцию("Сотр|ВР");
                               
                               Иотд[ТЗ.НомерСтроки+10] = Иотд[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                               Иподр[ТЗ.НомерСтроки+10] = Иподр[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                               Иобщ[ТЗ.НомерСтроки+10] = Иобщ[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                           КонецЦикла;
                           ПечОклад = Окр(ПечТО+Оклад);
                           ПечФонд = Окр(Число(ПечОклад)*Число(ТЗсортировка.Ставки));
                           Прим = "";
                           Таб.ПрисоединитьСекцию("Сотр|Хвост");
                           
                           Иотд[1] = Иотд[1]+(ТЗсортировка.Ставки);
                           Иподр[1] = Иподр[1]+(ТЗсортировка.Ставки);
                           Иобщ[1] = Иобщ[1]+(ТЗсортировка.Ставки);
                           
                           Иотд[2] = Иотд[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           Иподр[2] = Иподр[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           Иобщ[2] = Иобщ[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           
                           Иотд[3] = Иотд[3]+ПечФонд;
                           Иподр[3] = Иподр[3]+ПечФонд;
                           Иобщ[3] = Иобщ[3]+ПечФонд;
                       иначе
                           ПечТН = СокрЛП(ТЗсортировка.Сотр.Владелец.код);
                           ПечСотр = СокрЛП(ТЗсортировка.Сотр.Владелец);
                           Если БИ.Субконто(3).Должность.Объединение = 1 Тогда  
                               ПечДолжность = СокрЛП(ТЗсортировка.Сотр.квалификация.Получить(ДатаОтчета).Должность);
                           Иначе
                               ПечДолжность = СокрЛП(БИ.Субконто(3).Должность);
                           КонецЕсли;
                           Если ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Категория = Перечисление.Категории.Высшая Тогда
                               ПечКат = "высшая"+РазделительСтрок+СокрЛП(ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Разряд);
                           ИначеЕсли ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Категория = Перечисление.Категории.Первая Тогда
                               ПечКат = "первая"+РазделительСтрок+СокрЛП(ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Разряд);
                           ИначеЕсли ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Категория = Перечисление.Категории.Вторая Тогда
                               ПечКат = "вторая"+РазделительСтрок+СокрЛП(ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Разряд);
                           Иначе
                               ПечКат = СокрЛП(ТЗсортировка.Сотр.квалификация.получить(ДатаОтчета).Разряд);
                           КонецЕсли;
                           ПечСпециальность = ПолучитьИнформациюПоАттестацииСотрудника(ТЗсортировка.Сотр);
                           ПечСтаж = глПредставлениеСтажаКратко(ДатаОтчета,ТЗсортировка.Сотр.Владелец.СтажМедицинский);
                           ПечСтавка = сокрлп(формат(ТЗсортировка.Ставки,"Ч19.2. "));
                           Если Число(ТЗсортировка.Сотр.ЧасовСУН.Получить(ДатаОтчета)) <> 0 Тогда
                               ПечСтавка = ПечСтавка+РазделительСтрок+Число(ТЗсортировка.Сотр.ЧасовСУН.Получить(ДатаОтчета))+" ч.";
                           КонецЕсли;
                           Если Число(ТЗсортировка.Сотр.Доплата.Получить(ДатаОтчета)) <> 0 Тогда
                               ПечСтавка = ПечСтавка+РазделительСтрок+Число(ТЗсортировка.Сотр.Доплата.Получить(ДатаОтчета))+" %";
                           КонецЕсли;
                           ПечТО = Окр(глПолучитьТарифныйОклад(ТЗсортировка.Сотр,ДатаОтчета));
                           
                           ТР=ТЗсортировка.Сотр.Квалификация.Получить(ДатаОтчета).Разряд.Разряд;
                           ТК=ТЗсортировка.Сотр.Квалификация.Получить(ДатаОтчета).Разряд.Коэффициент.Получить(ДатаОтчета);
                           КК=ТЗсортировка.Сотр.Квалификация.Получить(ДатаОтчета).Разряд.КоррКоэффициент.Получить(ДатаОтчета);
                           КС=БИ.Субконто(3).КоэфСложности.Получить(ДатаОтчета);
                           КР=БИ.Субконто(3).КоэфРуководство.Получить(ДатаОтчета);
                           
                           Таб.ВывестиСекцию("Сотр|Основная");
                           Оклад=0;
                           
                           Если (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ШС_Совм) или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ШС_РЗО)
                           или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ВС_Совм) или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ВС_РЗО) тогда
                               ТЗ.ВыбратьСтроки();
                               Пока ТЗ.ПолучитьСтроку() = 1 Цикл
                                   Таб.ПрисоединитьСекцию("Сотр|ВР");  
                               КонецЦикла;
                           Иначе    
                               ТЗ.ВыбратьСтроки();
                               Пока ТЗ.ПолучитьСтроку() = 1 Цикл
                                   Рез=0;Сумм="";
                                   Если ПустоеЗначение(ТЗ.ВР) = 0 Тогда
                                       Список = глРезультатНачисленияУдержания(ТЗ.ВР, ТЗсортировка.Сотр.Владелец, ТЗсортировка.Сотр, ДатаОтчета);
                                       Если Список <> "нет" Тогда
                                           Если ТипЗначенияСтр(Список) = "СписокЗначений" Тогда
                                               Если Список.РазмерСписка() = 2 Тогда    
                                                   Рез = Окр(Список.ПолучитьЗначение(1));
                                                   Сумм = ""+СокрЛП(Список.ПолучитьЗначение(2))+" %"+РазделительСтрок+СокрЛП(Формат(Список.ПолучитьЗначение(1),"Ч19.0. "));
                                                   
                                                   //*** выгрузка в файл ***
                                                   Если ФормФайла = 1 Тогда
                                                       База.Добавить();
                                                       База.УстановитьЗначениеПоля("TN",СокрЛП(ТЗсортировка.Сотр.Владелец.Код));
                                                       База.УстановитьЗначениеПоля("FIO",СокрЛП(ТЗсортировка.Сотр.Владелец.Наименование));
                                                       База.УстановитьЗначениеПоля("KODSF",Число(ТЗсортировка.Сотр.Код));
                                                       База.УстановитьЗначениеПоля("SF",СостояниеДляВыгрузки(ТЗсортировка.Сотр));
                                                       База.УстановитьЗначениеПоля("KS",БИ.Субконто(3).КоэфСложности.Получить(ДатаОтчета));
                                                       База.УстановитьЗначениеПоля("KR",БИ.Субконто(3).КоэфРуководство.Получить(ДатаОтчета));
                                                       База.УстановитьЗначениеПоля("KODPODR",Число(БИ.Субконто(1).ИД));
                                                       База.УстановитьЗначениеПоля("PODR",СокрЛП(БИ.Субконто(1).Наименование));
                                                       База.УстановитьЗначениеПоля("KODDOLG",Число(БИ.Субконто(3).Должность.ИД));
                                                       База.УстановитьЗначениеПоля("DOLG",СокрЛП(БИ.Субконто(3).Должность.Наименование));
                                                       База.УстановитьЗначениеПоля("RASCHET",СокрЛП(ТЗ.ВР));
                                                       База.УстановитьЗначениеПоля("PROS",СокрЛП(Список.ПолучитьЗначение(2)));
                                                       База.УстановитьЗначениеПоля("SUMA",Рез);
                                                       База.Записать();
                                                   КонецЕсли;
                                               КонецЕсли;
                                           Иначе
                                               Рез = Окр(Список);
                                               Сумм = СокрЛП(Формат(Список,"Ч19.0. "));
                                               
                                               //*** выгрузка в файл ***
                                               Если ФормФайла = 1 Тогда
                                                   База.Добавить();
                                                   База.УстановитьЗначениеПоля("TN",СокрЛП(ТЗсортировка.Сотр.Владелец.Код));
                                                   База.УстановитьЗначениеПоля("FIO",СокрЛП(ТЗсортировка.Сотр.Владелец.Наименование));
                                                   База.УстановитьЗначениеПоля("KODSF",Число(ТЗсортировка.Сотр.Код));
                                                   База.УстановитьЗначениеПоля("SF",СостояниеДляВыгрузки(ТЗсортировка.Сотр));
                                                   База.УстановитьЗначениеПоля("KS",БИ.Субконто(3).КоэфСложности.Получить(ДатаОтчета));
                                                   База.УстановитьЗначениеПоля("KR",БИ.Субконто(3).КоэфРуководство.Получить(ДатаОтчета));
                                                   База.УстановитьЗначениеПоля("KODPODR",Число(БИ.Субконто(1).ИД));
                                                   База.УстановитьЗначениеПоля("PODR",СокрЛП(БИ.Субконто(1).Наименование));
                                                   База.УстановитьЗначениеПоля("KODDOLG",Число(БИ.Субконто(3).Должность.ИД));
                                                   База.УстановитьЗначениеПоля("DOLG",СокрЛП(БИ.Субконто(3).Должность.Наименование));
                                                   База.УстановитьЗначениеПоля("RASCHET",СокрЛП(ТЗ.ВР));
                                                   База.УстановитьЗначениеПоля("PROS",ПечФонд);
                                                   База.УстановитьЗначениеПоля("SUMA",Рез);
                                                   База.Записать();
                                               КонецЕсли;
                                           КонецЕсли;
                                           Оклад=Оклад+Рез;
                                       КонецЕсли;
                                   КонецЕсли;  
                                   Таб.ПрисоединитьСекцию("Сотр|ВР");
                                   
                                   Иотд[ТЗ.НомерСтроки+10] = Иотд[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                                   Иподр[ТЗ.НомерСтроки+10] = Иподр[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                                   Иобщ[ТЗ.НомерСтроки+10] = Иобщ[ТЗ.НомерСтроки+10]+Окр(Рез*(ТЗсортировка.Ставки));
                               КонецЦикла;
                           КонецЕсли;
                           ПечОклад = Окр(ПечТО+Оклад);
                           ПечФонд = Окр(Число(ПечОклад)*Число(ТЗсортировка.Ставки));
                           Прим = Примечиние(ТЗсортировка.Сотр);
                           Таб.ПрисоединитьСекцию("Сотр|Хвост");
                           
                           Иотд[1] = Иотд[1]+(ТЗсортировка.Ставки);
                           Иподр[1] = Иподр[1]+(ТЗсортировка.Ставки);
                           Иобщ[1] = Иобщ[1]+(ТЗсортировка.Ставки);
                           
                           Иотд[2] = Иотд[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           Иподр[2] = Иподр[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           Иобщ[2] = Иобщ[2]+Окр(ПечТО*(ТЗсортировка.Ставки));
                           
                           Иотд[3] = Иотд[3]+ПечФонд;
                           Иподр[3] = Иподр[3]+ПечФонд;
                           Иобщ[3] = Иобщ[3]+ПечФонд;
                           
                           //*** изменение стажа ***
                           ДатаИзмененияСтажа = глПолучитьДатуИзмененияСтажаПоСпециальности(ТЗсортировка.Сотр.Владелец,ДатаОтчета,КонГода(ДатаОтчета));
                           Если ПустоеЗначение(ДатаИзмененияСтажа) = 0 Тогда  
                               ПечИзменение = "Изменение стажевой группы с "+ДатаИзмененияСтажа;
                               ПечСтаж1 = глПредставлениеСтажаКратко(ДатаИзмененияСтажа,ТЗсортировка.Сотр.Владелец.СтажМедицинский);
                               ПечТО1 = Окр(глПолучитьТарифныйОклад(ТЗсортировка.Сотр,ДатаИзмененияСтажа));
                               
                               Таб.ВывестиСекцию("СотрИзм|Основная");
                               Оклад1=0;
                               ТЗ.ВыбратьСтроки();
                               Пока ТЗ.ПолучитьСтроку() = 1 Цикл
                                   Рез=0;Сумм="";
                                   Если ПустоеЗначение(ТЗ.ВР) = 0 Тогда
                                       Список = глРезультатНачисленияУдержания(ТЗ.ВР, ТЗсортировка.Сотр.Владелец, ТЗсортировка.Сотр, ДатаИзмененияСтажа);
                                       Если Список <> "нет" Тогда
                                           Если ТипЗначенияСтр(Список) = "СписокЗначений" Тогда
                                               Если Список.РазмерСписка() = 2 Тогда    
                                                   Рез = Окр(Список.ПолучитьЗначение(1));
                                                   Сумм = ""+СокрЛП(Список.ПолучитьЗначение(2))+" %"+РазделительСтрок+СокрЛП(Формат(Список.ПолучитьЗначение(1),"Ч19.0. "));
                                               КонецЕсли;
                                           Иначе
                                               Рез = Окр(Список);
                                               Сумм = СокрЛП(Формат(Список,"Ч19.0. "));
                                           КонецЕсли;
                                           Оклад1=Оклад1+Рез;
                                           Если ТЗ.ВР = Константа.СтажПоСпециальности Тогда
                                               Если (ДатаОтчета<ДатаИзмененияСтажа) и (ДатаИзмененияСтажа<КонМесяца(ДатаОтчета)) Тогда
                                                   ПечФонд1 = Окр(Рез*(ТЗсортировка.Ставки)*(КонМесяца(ДатаОтчета)-ДатаИзмененияСтажа)/ДатаЧисло(КонМесяца(ДатаОтчета)));
                                               КонецЕсли;
                                           КонецЕсли;
                                       КонецЕсли;
                                   КонецЕсли;  
                                   Таб.ПрисоединитьСекцию("СотрИзм|ВР");
                               КонецЦикла;
                               ПечОклад1 = Окр(ПечТО1+Оклад1);
                               Прим = Примечиние(ТЗсортировка.Сотр);
                               Таб.ПрисоединитьСекцию("СотрИзм|Хвост");
                               
                               Иотд[3] = Иотд[3]+ПечФонд1;
                               Иподр[3] = Иподр[3]+ПечФонд1;
                               Иобщ[3] = Иобщ[3]+ПечФонд1;
                           КонецЕсли;
                           
                           //*** выгрузка в файл ***
                           Если ФормФайла = 1 Тогда
                               Если (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ШС_Совм) или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ШС_РЗО)
                               или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ВС_Совм) или (ТЗсортировка.Сотр.СостояниеФизлица=перечисление.СостояниеФизлица.ВС_РЗО) тогда
                               Иначе
                                   База.Добавить();
                                   База.УстановитьЗначениеПоля("TN",СокрЛП(ТЗсортировка.Сотр.Владелец.Код));
                                   База.УстановитьЗначениеПоля("FIO",СокрЛП(ТЗсортировка.Сотр.Владелец.Наименование));
                                   База.УстановитьЗначениеПоля("KODSF",Число(ТЗсортировка.Сотр.Код));
                                   База.УстановитьЗначениеПоля("SF",СостояниеДляВыгрузки(ТЗсортировка.Сотр));
                                   База.УстановитьЗначениеПоля("KODPODR",Число(БИ.Субконто(1).ИД));
                                   База.УстановитьЗначениеПоля("PODR",СокрЛП(БИ.Субконто(1).Наименование));
                                   База.УстановитьЗначениеПоля("KODDOLG",Число(БИ.Субконто(3).Должность.ИД));
                                   База.УстановитьЗначениеПоля("DOLG",СокрЛП(БИ.Субконто(3).Должность.Наименование));
                                   База.УстановитьЗначениеПоля("DOKLAD",ПечОклад);
                                   База.Записать();
                               КонецЕсли;
                           КонецЕсли;
                       КонецЕсли;
                       
                       // *** итоги по подразделению ***
                       ТЗподр.НоваяСтрока();
                       ТЗподр.сорткат = БИ.Субконто(3).Должность.категория.код;
                       ТЗподр.категория = БИ.Субконто(3).Должность.категория;
                       ТЗподр.Ставка = ТЗсортировка.Ставки;
                       ТЗподр.Фонд = ПечФонд+ПечФонд1;
                       Если БИ.Субконто(3).НочнойОклад = 1 Тогда
                           ТЗподр.СтавокНочных = ТЗсортировка.Ставки;
                           ТЗподр.НочОклад = ПечТО*ТЗсортировка.Ставки;
                       КонецЕсли;
                       Если БИ.Субконто(3).ПраздничныйОклад = 1 Тогда
                           ТЗподр.СтавокПраздничных = ТЗсортировка.Ставки;
                           ТЗподр.ПраздОклад = (ПечФонд+ПечФонд1)*ТЗсортировка.Ставки;
                       КонецЕсли;
                       
                       // *** итоги ***
                       ТЗитог.НоваяСтрока();
                       ТЗитог.сорткат = БИ.Субконто(3).Должность.категория.код;
                       ТЗитог.категория = БИ.Субконто(3).Должность.категория;
                       ТЗитог.Ставка = ТЗсортировка.Ставки;
                       ТЗитог.Фонд = ПечФонд+ПечФонд1;
                       Если БИ.Субконто(3).НочнойОклад = 1 Тогда
                           ТЗитог.СтавокНочных = ТЗсортировка.Ставки;
                           ТЗитог.НочОклад = ПечТО*ТЗсортировка.Ставки;
                       КонецЕсли;
                       Если БИ.Субконто(3).ПраздничныйОклад = 1 Тогда
                           ТЗитог.СтавокПраздничных = ТЗсортировка.Ставки;
                           ТЗитог.ПраздОклад = (ПечФонд+ПечФонд1)*ТЗсортировка.Ставки;
                       КонецЕсли;
                   КонецЦикла;
               КонецЦикла;
               СтавкаОтд=Иотд[1];
               ТОотдел=Иотд[2];
               ФондОтдел=Иотд[3];
               Таб.ВывестиСекцию("ИтогОтдел|Основная");
               ТЗ.ВыбратьСтроки();
               Пока ТЗ.ПолучитьСтроку() = 1 Цикл
                   ПечОтдВид = Иотд[ТЗ.НомерСтроки+10];
                   Таб.ПрисоединитьСекцию("ИтогОтдел|ВР");
               КонецЦикла;
               Таб.ПрисоединитьСекцию("ИтогОтдел|Хвост");
           КонецЦикла;
           СтавкаПодр=Иподр[1];
           ТОподр=Иподр[2];
           ФондПодр=Иподр[3];
           Таб.ВывестиСекцию("ИтогПоПодр|Основная");
           ТЗ.ВыбратьСтроки();
           Пока ТЗ.ПолучитьСтроку() = 1 Цикл
               ПечПодрВид = Иподр[ТЗ.НомерСтроки+10];
               Таб.ПрисоединитьСекцию("ИтогПоПодр|ВР");
           КонецЦикла;
           Таб.ПрисоединитьСекцию("ИтогПоПодр|Хвост");
           
           Таб.ВывестиСекцию("ШапкаКат");
           ТЗподр.Свернуть("сорткат,категория","Ставка,Фонд,СтавокНочных,НочОклад,СтавокПраздничных,ПраздОклад");
           ТЗподр.Сортировать("+сорткат");
           ТЗподр.ВыбратьСтроки();
           Пока ТЗподр.ПолучитьСтроку() = 1 Цикл
               ПечКатегория = СокрЛП(ТЗподр.категория);
               СтавокПоКат = ТЗподр.Ставка;
               ФондПоКат = ТЗподр.Фонд;            
               Если ТЗподр.Ставка <> 0 Тогда
                   СрОклад = ТЗподр.Фонд/ТЗподр.Ставка;
               Иначе
                   СрОклад = 0;
               КонецЕсли;
               Если ТЗподр.СтавокНочных <> 0 Тогда
                   НочОкл = ТЗподр.НочОклад/ТЗподр.СтавокНочных;
               Иначе
                   НочОкл = 0;
               КонецЕсли;
               Если ТЗподр.СтавокПраздничных <> 0 Тогда
                   ПразднОкл = ТЗподр.ПраздОклад/ТЗподр.СтавокПраздничных;
               Иначе
                   ПразднОкл = 0;
               КонецЕсли;
               Таб.ВывестиСекцию("Категор");
           КонецЦикла;
           ИтогСтПоКат = ТЗподр.Итог("Ставка");
           ИтогФондПоКат = ТЗподр.Итог("Фонд");            
           Если ТЗподр.Итог("Ставка") <> 0 Тогда
               Ито
37 cw014
 
18.03.13
12:56
Мда, тяжеловато такое читать
38 cw014
 
18.03.13
12:57
Как вариант, у тебя там что то про изменение стажа - там посмотри
39 APDATE
 
18.03.13
12:57
ок спс
40 APDATE
 
18.03.13
12:58
а что если в место заполнения печ таблицы заполнять еще одну тз
за тем после заполнения свернуть
и вывгрузить в печформу?
41 cw014
 
18.03.13
12:58
(40) Ну попробуй
42 APDATE
 
18.03.13
13:00
а печ форму ни как нельзя сортировать?
43 Ёпрст
 
18.03.13
13:02
В макете шаблона таблицы, что указано в ячейке с номером ?
44 APDATE
 
18.03.13
13:03
вообщето таблица уже создана!!!
45 APDATE
 
18.03.13
13:03
сортировать по колонке что уже есть!
46 Ёпрст
 
18.03.13
13:06
Еще раз, что написано в МАКЕТЕ .. пофигуратор открой, далее макет - в свойстве ячейки, в которой нумер твой выводишь, что написанов в ячейке ?
47 APDATE
 
18.03.13
13:08
ПечТН
48 Ёпрст
 
18.03.13
13:08
49 APDATE
 
18.03.13
13:11
"ПечТН" это написано у меня!!!!
50 Ёпрст
 
18.03.13
13:12
(47) дык и пиши тогда

//ПечТН = СокрЛП(ТЗсортировка.Сотр.Владелец.код);
ПечТН = ТЗсортировка.Сортировка;
51 APDATE
 
18.03.13
13:16
(50) НЕ ПОМОГЛО!
52 Ёпрст
 
18.03.13
13:19
(51) не верю.

ТЗсортировка.Сортировать("Сортировка");
ТЗсортировка.ВыбратьСтроку();

смотри - любуйся, что на экране- то и в печформе у тебя должно быть.
Чудес знаете ли, не бывает.
Ну разве что, где-то еще переменную не переопределяешь.
И вообще, весь код ужасный - за обращение через 3 точки в коде.. тормоза обеспечены везде.
53 APDATE
 
18.03.13
13:21
код писал не я!!!
не сортирует
54 APDATE
 
18.03.13
13:21
= чудеса бывают
55 APDATE
 
18.03.13
13:24
увы
56 Mikeware
 
18.03.13
13:25
(54) скорее всего, дело не в "чудесах", а в соотношении радиусов...
57 APDATE
 
18.03.13
13:29
короче напишу лучше свой отчетик
58 Ёпрст
 
18.03.13
13:32
(53) не сортирует где ?
Таблица значений выведенная на просмотр, нормально отсортирована ?
59 oslokot
 
27.03.13
11:26
OFF:
А почему у меня сортировка неправильно работает?

ТЗ.Сортировать("ДатаОкончания,Цена,Наименование");

ДатаОкончания - тип "Дата"
Цена - тип "Число"
Наименование - тип "Строка"

Сортирует все правильно, по возрастанию.
Кроме блин "Наименование" - оно почему-то по убыванию

Это такая фича?