7.7 Программа, выводящая список сотрудников с данными по окладу и надбавками

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем SnakeSolid, 21 сен 2014.

  1. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, 1С 7.7 ЗуП редакция 2.3, релиз 7.70.256 измененный, платформа 7.70.025

    Нужна программа, которая выводила бы список сотрудников с их табельными номерами, окладом (именно окладом) и всеми надбавками, которые сотрудники получают.

    Либо подскажите, как вытащить надбавки (пока можно сумму всех надбавок сразу или лучше, конечно, по отдельности каждую надбавку) из Справочник.НачисленияУдержания (долговременные начисления) - просто таблицу с выводом сотрудников с табельными номерами и окладом я кое-как вытащил, но вот вытащить надбавки, хотя бы суммарно все, ну не получается, я уж не говорю об их отдельности :)

    Подскажите плиз.
    Последнее редактирование: 22 сен 2014
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Странный номер релиза конфигурации.. Камин?
    Справочник.НачисленияУдержания наверняка подчинен справочнику Сотрудники.
    Данные можно получить запросом или в цикле с группировкой по владельцу
  3. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    извиняюсь, перепутал слегка, поправился в релизе и платформе :)

    В общем, для оклада в модуле написал следующее:

    Для Сч = 1 по СписокФизЛиц.РазмерСписка() Цикл
    ...
    СотруднИзСписка = СписокФизЛиц.ПолучитьЗначение(Сч);
    ТекущийСотрудник = СотрудникИзСписка;
    ОкладЭлемента = ТекущийСотрудник.Оклад.Получить();
    ТаблГруппКатег.Оклад = ОкладЭлемента;
    ...
    КонецЦикла;

    В таблице на вывод в клетках для оклада и надбавок забил следующее:
    Формат(Оклад,...) и Формат(ТаблГруппКатег.Надбавки,...)

    И вот оклад с таким написанием подхватывается, а надбавки, написав по аналогии, у меня не подхватываются. Что не так?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Используйте дату в методе получить... Например
    кладЭлемента = ТекущийСотрудник.Оклад.Получить(ТекущаяДата());
  5. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Немного подправил с окладом:

    Для Сч = 1 по СписокФизЛиц.РазмерСписка() Цикл
    ...
    СотруднИзСписка = СписокФизЛиц.ПолучитьЗначение(Сч);

    ОкладЭлемента = СотрудникИзСписка.Оклад.Получить();
    ТаблГруппКатег.Оклад = ОкладЭлемента;

    // оклад выводится нормально

    //теперь пытаюсь добавить надбавки в этом же цикле

    НачисленияУдержания = СоздатьОбъект("Справочник.НачисленияУдержания"); //справочник имеет реквизит Сумма
    НачУдерж = НачисленияУдержания.Сумма;
    ТаблГруппКатег.Надбавки = НачУдерж;

    //в таком виде надбавки вообще не выводятся (в таблице на вывод, повторю, забито Формат(ТаблГруппКатег.Надбавки, ...)

    а если же я добавляю, как посоветовали вроде и если я правильно понял, Дату


    НачУдерж = НачисленияУдержания.Сумма.Получить(ТекущаяДата()); // то в этом случае программа выдает ошибку - "значение не представляет агрегатный объект (Получить)"
    ...
    КонецЦикла;

    что снова не так? что я упускаю?
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Все в корне не верно.
    Нужно не
    НачУдерж = НачисленияУдержания.Сумма; //у вас же просто объект... пустое значение. Вы его только что создали

    а вот так
    НачУдерж=СотрудникИзСписка.ТутРеквизитИзСправочника.Сумма;

    или так
    НачисленияУдержания = СоздатьОбъект("Справочник.НачисленияУдержания");
    НачисленияУдержания.ИспользоватьВладельца(СотрудникИзСписка.ТекущийЭлемент());
    НачисленияУдержания.ВыбратьЭлементы();
    Пока НачисленияУдержания.ПолучитьЭлемент()=1 Цикл
    Сообщить(НачисленияУдержания.Сумма); //тут я не знаю что вам нужно...
    КонецЦикла;

    Не знаком с вашей конфой - выложите МДшник
  7. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    глупый вопрос могу задать - реквизит из какого справочника? просто "сумма" и есть реквизит справочника НачисленияУдержания

    второй предложенный Вами вариант наконец-то дал хоть какие-то плоды - т.е. прога вывела начисления, но проблема в том, что вывела ВСЕ НАЧИСЛЕНИЯ ПОДРЯД, а у меня, например, есть начисления которые уже закончили свой срок действия - ваш вариант показывает все равно все :) и еще - как в этом варианте просуммировать все ДЕЙСТВУЮЩИЕ НА ДАННЫЙ МОМЕНТ начисления ? :) чтобы прога выводила одну токо сумму, а не несколько подряд

    П.С. лучше конечно довести думаю первый вариант, но он пока вообще так и не работает - то ли реквизиты не те приписываю, то ли что-то не допонимаю :)
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    я просто не знаю вашей конфы. По номеру релиза не могу определить... У васЗиК?
    Первый вариант был просто как предположение, что у вас есть нужный реквизит...
    Что же касается периода действия... Думаю вам стоит обратить внимания на другие реквизиты справочника НачисленияУдержания
    Что там еще есть?
  9. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
  10. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    ой ребята, очередной мой косяк, а вроде еще и не пил пока :)
    да у меня ЗиК, а не ЗуП :) да 7.70.025 - очень старый, но как я написал - он у нас измененный, поэтому с тех пор на нем и сидим :)

    реквизиты справочника НачисленияУдержания:

    Код
    Наименование
    ВидРасчета - в справочнике он всегда пустой почему-то
    Расчет - не спрашивайте только разницу между этим и верхним, не я заводил их :)но вот он как раз содержит номер расчета
    Сумма
    ДатаНачала
    ДатаОкончания
    Действует
    Шаблон
    ПорядокНачисления
    КоэфРасчета

    вот все реквизиты справочник
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В типовой нет дат начала и окончания. Все рулится через периодику "действует".
    Пример для типовой..

    НачисленияУдержания = СоздатьОбъект("Справочник.НачисленияУдержания");
    НачисленияУдержания.ИспользоватьВладельца(СотрудникИзСписка.ТекущийЭлемент());
    НачисленияУдержания.ВыбратьЭлементы();
    Пока НачисленияУдержания.ПолучитьЭлемент()=1 Цикл
    Если НачисленияУдержания.Действует.Получить(ТекущаяДата())=0 Тогда
    Продолжить;
    КонецЕсли;
    Сообщить(НачисленияУдержания.Сумма);
    КонецЦикла;
  12. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    это понятно, что все должно рулиться через "действует", но у меня "действует" у всех равно 1 - даже у тех надвабок, что закончили срок действия. как мой предшественник это сделал и для чего не понимаю. но ваш совет помог в итоге - надбавки вытягиваются, осталось как раз разобраться только с сроками дейтсвия - ибо прога вытягивает теперь все надбавки, что начислялись и начисляются человеку, а надо, разумеется, только те, что начисляются в данный момент и надо их проссуммировать к тому же.

    как это доделать подскажите еще плиииз :)
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Телепаты в отпуске... Конфа то измененная (причем явно как попало). И угадать что за чем у вас следует - не реально. Как минимум, нужен МДшник чтобы глянуть заполняемость реквизитов
  14. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    я добавил следующее в предложенный вами вариант:

    НачисленияУдержания = СоздатьОбъект("Справочник.НачисленияУдержания");
    НачисленияУдержания.ИспользоватьВладельца(СотрудникИзСписка.ТекущийЭлемент());
    НачисленияУдержания.ВыбратьЭлементы();
    Пока НачисленияУдержания.ПолучитьЭлемент()=1 Цикл

    Если ПустоеЗначение(НачисленияУдержания.ДатаОкончания) = 1 Тогда
    Если НачислениеУдержания.Расчет = ВидРасчета.Наименование Нашего Вида Расчета Тогда
    ТаблГруппКатег.Надбавки = НачисленияУдержания.Сумма;
    КонецЕсли;
    КонецЕсли;


    Продолжить;
    КонецЕсли;


    И вот с таким добавлением прога, разумеется, берет только виды начисления без указанной "ДатаОкончания", причем только ОДНО НАЧИСЛЕНИЕ. Что и как дописать, чтобы брались начисления, которые действуют, к примеру, до конца года еще. И суммировало их к тому же :)

    Это пока не поможет? Все таки МДшник нужен только ?
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну как правило люди не любят выкладывать свои базы данных... В данном случае думаю достаточно МДшника..
    По существу вопроса:
    Аккумулируйте ваши расчеты в ТаблицуЗначений внутри цикла. Что с нею делать потом - отдельная тема, зависящая от стоящей задачи

Поделиться этой страницей