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