v7: Как убрать уволенных сотрудников из отчета? #576771


#0 by НачинающийАдмин
Здравствуйте! Я сделала отчет, который формирует сведения об отпусках за период на основе документа ПриказПоОтпуску, но в него попадают все сотрудники, в том числе и уволенные. Подскажите, пожалуйста, как убрать уволенных сотрудников из отчета? И как сделать, чтобы по сотруднику выводились не все его отпуска, а только последний?
#1 by aleks-id
>>Пол:Мужской >>Я сделала отчет ВТФ?
#2 by Amra
Объясняю: 1. Определиться с полом. 2. Если таки женский - вставить фотку в личку. 3. Рассказать, что именно не получается
#3 by Jaffar
а чем у вас уволенный сотрудник отличается от работающего? может реквизит ДатаОкончания заполнен? тогда и действовать соответственно (условие в запросе или фильтр при выводе). а вот с последним отпуском интереснее будет. разве что сначала заполнить для каждого сотрудника таблицу с номерами документов по отпускам или датами начала и окончания отпуска (при заполнении заменять дату на более позднюю), а потом выводить.
#4 by aka AMIGO
чтобы не попадали уволенные - напиши условие-фильтр по состоянию физлица "уволен" ЗЫ. СостояниеФЛ - вычисляемый реквизит, если чо..
#5 by НачинающийАдмин
И снова здравствуйте! Пол - женский, фотку потом вставлю :) Я совсем-совсем начинающий программист, поэтому такие вопросы задаю. Из отчета убрала уволенных, а с последним отпуском еще не работала. Сейчас пытаюсь сделать сортировку по сотруднику, сделала таблицу значений, все условия поставила. Но вот вопрос, как вывести сам отчет? Если пишу ТабСотрудников.Показать; то ошибка - поле агрегатного объекта не найдено (Показать). Если убираю эту строку, то обработка идет, но таблица не выводится. Помогите, плиз. Вот код:
#6 by borozavr
Ну и нарисовать макет.
#7 by НачинающийАдмин
Сделала так. Пишет ошибку: Секция не найдена Сотрудник. Макет есть.  Т.Показать("Отчет"); - а в скобках название процедуры нужно писать?
#8 by ДенисЧ
наверное, секций в макете нет? :-) Нет, не нужно. И не процедура туда пишется.
#9 by Jaffar
Показать - это метод таблицы (печатной формы) - ее сначала заполнить нужно, перебирая строки ТаблицыЗначений ТабСотрудников. какие секции есть в макете? как сам макет называется? если не "Таблица" - то нужно написать еще Т.ИспользоватьТаблицу("ТутМоеИмяМакета");
#10 by ЧеловекДуши
Предлагаю их не включать в список
#11 by НачинающийАдмин
Макет есть "Таблица". У меня там секции "Шапка" и "Строка". в "Строке" описаны <Сотрудник>, <Должность> и др. Если закомментировать ВывестиСекцию ("Сотрудник"), то обработка выполняется, но выводится совершенно пустая таблица, без шапки. Если оставить - пишет ошибку. Что-то я не соображу никак (((
#12 by zuza
Т.ВывестиСекцию("Строка");
#13 by Jaffar
#14 by Jaffar
то ест так:
#15 by НачинающийАдмин
Спасибо!!! Получилось! Только вот беда - выводит данные самого первого работника во всех строках
#16 by Jaffar
тогда в макете напиши <ТабСотрудников.Сотрудник>, <ТабСотрудников.Должность> или так: Так сможешь вычислить и вывести в таблицу произвольное значение.
#17 by НачинающийАдмин
пробовала и так, и так, и оба способа вместе. При первом и втором способах исчезает из таблицы ФИО сотрудника, должность, а остальные данные - все одинаковые (опять по одному сотруднику). Если меняю в модуле и в таблице   Сотрудник = ТабСотрудников.Сотрудник; то выводится этот отчет, сотрудник не определен, и ошибка - Переменная не определена (ТабСотрудниковСотрудник)
#18 by Jaffar
1. ты определись - или присвоить все переменные макета в модуле и потом выводить уже их, или использовать в макете непосредственно реквизиты ТЗ. я предпочитаю 1-й способ - так проще вносить изменения, не меняя макета. 2. Точка пропущена между "ТабСотрудников" и "Сотрудник"
#19 by НачинающийАдмин
СПАСИБО!!! :) Наконец-то он получился! Я добавила еще присвоение ТабСотрудников в переменные условия Если и все пошло!!!! Сейчас буду разбираться с выводом только последнего отпуска сотрудника, а не всех отпусков за период.
#20 by Jaffar
сложно, но возможно. например, в перед ТабСотрудников.НоваяСтрока; проверить, есть ли уже такой сотрудник в таблице. если есть - позиционироваться на нем и записать поверх существующей информации новую, если нет - тогда добавить новую строку и заполнить ее.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С