×
Показано с 1 по 8 из 8
  1. #1
    Клерк Аватар для Serdg
    Регистрация
    29.06.2005
    Сообщений
    140

    Как получить подразделение сотрудника?

    Нужно добавить в диалог Расчетной ведомости (Начисление налогов с ФОТ) возможность выбора сотрудников одного подразделения. Есть вопрос по постановке условия для выбора. В цикле выбирается сотрудник
    Ит.ВыбратьСубконто(1);
    Пока Ит.ПолучитьСубконто(1) = 1 Цикл
    и дальше идет расчет по счетам, какой командой получить подразделение выбранного сотрудника?
    Поделиться с друзьями

  2. #2
    Бухгалтер-программист Аватар для azernot
    Регистрация
    16.08.2004
    Адрес
    Москва
    Сообщений
    671
    Ит.Субконто(1).Подразделение.Получить(ДатаНаКоторуюНужноПолучитьПодразделение);
    С уважением
    Зернятко А.В.

  3. #3
    Клерк Аватар для Serdg
    Регистрация
    29.06.2005
    Сообщений
    140
    Спасибо, датой указал конец периода.....я думаю ничего страшного не будет.

  4. #4
    Клерк Аватар для Serdg
    Регистрация
    29.06.2005
    Сообщений
    140
    Проблема оказалась не в этом, думал будет просто проверить, сравнить и выдать. Так в конфе идет прокрутка всех сотрудников по каждому счету (а не счета по каждому сотруднику, что было бы проще). Сделал условие:
    Ит.ВыбратьСчета();

    Если Ит.ПолучитьСчет(,"70") = 1 Тогда
    Ит.ВыбратьСубконто(1);
    Пока Ит.ПолучитьСубконто(1) = 1 Цикл
    //***
    Под = Ит.Субконто(1).Подразделение.Получить(ДатаКон); //Под - подразделение выбранного сотрудника

    //////**** нач
    Если ВсеАбсолютно <> 1 Тогда //ВсеАбсолютно - галка для формирования отчета для всех
    Если Под <> Подр Тогда //Подр - подразделение, для которого делается отчет
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    ////////**** кон

    Получается такое - сотрудники выводятся все, но цифры есть только у тех, кто соответствует выбранному подразделению (за исключением колонок с ПФР и для некоторых подразделений + колонки с ФедБюдж). Сделал отсеивание вывода в таблицу:
    Т.ВывестиСекцию("Шапка");

    КПеречислениюИтого = 0;
    Табл.ВыбратьСтроки();
    Пока Табл.ПолучитьСтроку() = 1 Цикл
    ПодрУСотрудника=Табл.Сотрудник.Подразделение.Получить(ДатаКон); //Это Я
    Расшифровка.Установить("Субконто1", Табл.Сотрудник);
    РасшифровкаПФ.Установить("Субконто2", Табл.Сотрудник);
    РасшифровкаФСС.Установить("Субконто2", Табл.Сотрудник);
    РасшифровкаТОМС.Установить("Субконто3", Табл.Сотрудник);
    РасшифровкаФОМС.Установить("Субконто3", Табл.Сотрудник);
    РасшифровкаПФР_страх.Установить("Субконто2", Табл.Сотрудник);
    РасшифровкаПФР_нак.Установить("Субконто2", Табл.Сотрудник);
    КПеречислению = Табл.ПФ - Табл.Вычет;
    КПеречислениюИтого = КПеречислениюИтого + КПеречислению;
    Если ВсеАбсолютно <> 1 Тогда //Это Я
    Если ПодрУСотрудника <> Подр Тогда //Это Я
    Продолжить; //Это Я
    КонецЕсли; //Это Я
    КонецЕсли; //Это Я
    Т.ВывестиСекцию("Строка");
    КонецЦикла;

    и оставил прежнее вычисление колонок (без него сумма по колонкам была как для всех, а не только для выбранного подразделения). Теперь всё шло только для первых трех колонок - Начислено, НДФЛ, К выплате....а остальные дают цифры для общего числа. Применил условие выбора сотрудников для всех счетов - появились отрицательные числа в ФедБюдж. В чем я неправ?

  5. #5
    Бухгалтер-программист Аватар для azernot
    Регистрация
    16.08.2004
    Адрес
    Москва
    Сообщений
    671
    В стандартной бухии в отчёте "Расчётная ведомость" всё, что нужно Это во всех местах, где есть
    Табл.НоваяСтрока();
    Табл.Сотрудник = Ит.Субконто(Х);

    Добавить строчкой выше:
    Если Ит.Субконто(Х).Подразделение.Получить(ДатаКон) <> ВыбПодразделение ТОгда
    Продолжить;
    КонецЕсли;

    Ессно Х - меняешь на нужный номер (для 70 -1, для 69 - 2)
    С уважением
    Зернятко А.В.

  6. #6
    Бухгалтер-программист Аватар для azernot
    Регистрация
    16.08.2004
    Адрес
    Москва
    Сообщений
    671
    А неправ ты в том, что условие надо ставить сразу после
    Пока Табл.ПолучитьСтроку() = 1 Цикл
    ПодрУСотрудника=Табл.Сотрудник.Подразделение.Получ ить(ДатаКон); //Это Я
    Если ВсеАбсолютно <> 1 Тогда //Это Я
    Если ПодрУСотрудника <> Подр Тогда //Это Я
    Продолжить; //Это Я
    КонецЕсли; //Это Я
    КонецЕсли; //Это Я
    С уважением
    Зернятко А.В.

  7. #7
    Клерк Аватар для Serdg
    Регистрация
    29.06.2005
    Сообщений
    140
    не совсем так. Я ставил строки:
    //////**** нач
    Если ВсеАбсолютно <> 1 Тогда //ВсеАбсолютно - галка для формирования отчета для всех
    Если Под <> Подр Тогда //Подр - подразделение, для которого делается отчет
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    ////////**** кон

    именно после каждого начала цикла. А вот строку с присвоением Под подразделения сотрудника я объявил только один раз в начале, поставил по твоему совету после каждого счета - заработало!!!!

    P.S. Может я поторопился и просмотрел, что надо ставить 2 для остальных счетов, но 1С матом сразу поругалась на меня и хошь-нихошь пришлось увидеть . Спасибо огромное за подсказку!
    P.P.S И почему-то "Под" меняется со сменой пользователя, а отчет не так работает как надо.......указал по совету - всё работает, а в отладчике никаких изменений.....парадокс

  8. #8
    Бухгалтер-программист Аватар для azernot
    Регистрация
    16.08.2004
    Адрес
    Москва
    Сообщений
    671
    Не понял про изменение Под со сменой пользователя... Это к чему?
    С уважением
    Зернятко А.В.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)