Имя: Пароль:
1C
1С v8
Помогите разобраться в коде
0 Hostess_
of_Love
 
18.05.12
11:20
Самописная конфа. Код не мой. попросили помочь и вот теперь пытаюсь разобраться. Видела  всякое, но ЭТО... выше моего понимания %)

&НаСервере
Функция СписокСотрудников(РежимРаботы)
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Сотрудники.Код,
   |    Сотрудники.Наименование КАК Наименование,
   |    Приказ.Водитель1,
   |    Приказ.Водитель2,
   |    Приказ.ТранспортныеСредства КАК ТранспортныеСредства
   |ИЗ
   |    Справочник.Сотрудники КАК Сотрудники
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Приказ КАК Приказ
   |        ПО (Приказ.Водитель1 = Сотрудники.Ссылка
   |                ИЛИ Приказ.Водитель2 = Сотрудники.Ссылка)
   |ГДЕ
   |    Сотрудники.РежимРаботы = &РежимРаботы
   |
   |УПОРЯДОЧИТЬ ПО
   |    Наименование";
   Запрос.УстановитьПараметр("РежимРаботы", РежимРаботы);
   Результат = Запрос.Выполнить();
   ТабСотр=Результат.Выгрузить();
   
   Масс=Новый массив;
   Для м=1 по ТабСотр.Количество() Цикл
       Стр=ТабСотр.Получить(м-1);
       Масс.Добавить(Стр.Наименование+" "+Стр.ТранспортныеСредства);    
   КонецЦикла;    
   Возврат Масс;
   
КонецФункции

&НаСервере
Функция  НомерАвтомобиляСотрудники ()
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Приказ.ТранспортныеСредства,
   |    Приказ.Водитель1,
   |    Приказ.Водитель2
   |ИЗ
   |    РегистрСведений.Приказ КАК Приказ";
   
   Результат = Запрос.Выполнить();
   ТабЗнач = Результат.Выгрузить();
   Возврат(ТабЗнач) ;
   
КонецФункции



&НаКлиенте
Процедура Команда1(Команда)
   
   Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,3);
   
   // начело шапки    
   График.Область("R1C1").Текст="Водитель";
   График.Область("R1C1").ГраницаСнизу=линия;
   График.Область("R1C1").ШиринаКолонки=22;
   
   График.Область("R1C2").Текст="№автомобиля";
   График.Область("R1C2").ГраницаСнизу=линия;
   График.Область("R1C2").ШиринаКолонки=22;
   
   ДЛЯ у = 1 по 31 цикл
       График.Область("R1C"+(У+2)).Текст=у;
       График.Область("R1C"+(У+2)).ГраницаСнизу=линия;
       График.Область("R1C"+(У+2)).ШиринаКолонки=5;    
   КонецЦикла;    
   // конец шапки    
   Сотр=СписокСотрудников(РежимРаботы);
   
   для м = 1 по Сотр.Количество() цикл
       н = Сотр.Получить(м-1);
       График.Область("R"+(м+1)+"C1").Текст = Лев(н,Найти( н," ")-1);
       График.Область("R"+(м+1)+"C2").Текст = Прав(н,СтрДлина(н)-Найти( н," "));
       
   конеццикла;    
   
КонецПроцедуры
1 Buster007
 
18.05.12
11:21
собсна в чем проблема?
2 Hostess_
of_Love
 
18.05.12
11:22
если быть точнее, то не поняла вот этот кусочек:

для м = 1 по Сотр.Количество() цикл
       н = Сотр.Получить(м-1);
       График.Область("R"+(м+1)+"C1").Текст = Лев(н,Найти( н," ")-1);
       График.Область("R"+(м+1)+"C2").Текст = Прав(н,СтрДлина(н)-Найти( н," "));
       
конеццикла;
3 Hostess_
of_Love
 
18.05.12
11:22
терпеть не могу когда переменные называются одной буквой =/ вот и гадай шо эт означает
4 salvator
 
18.05.12
11:24
(3) Это индекс
5 Buster007
 
18.05.12
11:26
ммм... а счетчик цикла зачем обзывать многими буквами?
конечно элемент массива можно было бы по другому обозвать, а не "н"
насколько я понял, график - реквизит формы с типом Табличный документ.
Следовательно получает область по счетчику и заполняет данными по сотруднику из массива
грубо говоря
График.Область("R"+(м+1)+"C1").Текст = СотрудникНаименование;
График.Область("R"+(м+1)+"C2").Текст = СотрудникТранспортныеСредства;

не знаю как ещё объяснить
6 Tatitutu
 
18.05.12
11:28
"н" в данном случае у тебя будет
Стр.Наименование+" "+Стр.ТранспортныеСредства
7 Hostess_
of_Love
 
18.05.12
11:28
(5)угу, спс.
8 hhhh
 
18.05.12
13:20
(7) на будущее пишите просто

График.Область(м+1, 1)