Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 16
1

Отчет "Начисления сотрудникам" не выводит результат

12.06.2014, 22:04. Показов 3623. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с отчетом. Я создаю док-т Начисления сотрудникам по окладу (см.рис 1), провожу его, он записывается в регистр Начисления, но результата не пишет(см.рис 2). В итоге при формировании отчета у меня пустота. Как сделать, чтобы и результат был виден? Помогите пожалуйста. База вложена
Миниатюры
Отчет "Начисления сотрудникам" не выводит результат   Отчет "Начисления сотрудникам" не выводит результат  
Вложения
Тип файла: rar 1Cv8 1206.rar (384.6 Кб, 7 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2014, 22:04
Ответы с готовыми решениями:

Проведение документа начисления сотрудникам
Добрый день , при проведение документа ошибка Общий модуль Процедура РассчитатьНачисления...

Результат начисления выпадает из расчетной базы другого начисления
Всем доброго времени суток! Расчетная часть пока еще остается для меня темноватым лесом, но в...

Access бд начисления сотрудникам
Помогите пожалуйста. Нужно создать запросы на SQL: --объем начисления заданному сотруднику за...

Классы для начисления заработной платы сотрудникам
Нужно создать классы для начисления заработной платы сотрудникам.

12
null
56 / 50 / 13
Регистрация: 06.11.2012
Сообщений: 418
12.06.2014, 22:50 2
Движение.Результат = ТекСтрокаНачисления.Начислено;

Добавлено через 5 минут
...но просто написать такую строчку нет смысла. Результат должен высчитываться исходя из вида расчета и графика, а это к тому что есть в обработке документа, нужно ещё обращаться к ОсновныеНачисленияДанныеГрафика Или к БазеосновныйНачислений

Добавлено через 11 минут
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    НаборЗаписей.Прочитать();  
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   НачисленияДанныеГрафика.НомерСтроки,
        |   НачисленияДанныеГрафика.ЗначениеПериодДействия КАК План,
        |   НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
        |   НачисленияДанныеГрафика.ИсходныеДанные
        |ИЗ
        |   РегистрРасчета.Начисления.ДанныеГрафика(
        |           Регистратор = &Регистратор
        |               И ВидРасчета = &ВидРасчета) КАК НачисленияДанныеГрафика";
 
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
    Запрос.УстановитьПараметр("Регистратор", Ссылка);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();   
    Пока Выборка.Следующий() Цикл
        НаборЗаписей[Выборка.НомерСтроки-1].Результат = Выборка.Факт / Выборка.План * Выборка.ИсходныеДанные;     
    КонецЦикла;
    НаборЗаписей.Записать(, Истина);
для оклада....что-то типа этого

Добавлено через 6 минут
это добавляете после того кода что у вас в обработке документа, т.е. вы сначала записываете рабочие данные, а потом их расчитываете
0
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 16
12.06.2014, 23:02  [ТС] 3
Т.е Ваш код, который Вы написали, мне добавить после этого кода в модуле объекта Документа Начисления сотрудникам?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Начисления
    Движения.Начисления.Записывать = Истина;
    Для Каждого ТекСтрокаНачисления Из Начисления Цикл
        Движение = Движения.Начисления.Добавить();
        Движение.Сторно = Ложь;
        Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
        Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
        Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.ПериодРегистрации = Дата;
        Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
        Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
        Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;
        Движение.ИсходныеДанные = ТекСтрокаНачисления.Начислено;
    КонецЦикла;
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
0
null
56 / 50 / 13
Регистрация: 06.11.2012
Сообщений: 418
12.06.2014, 23:08 4
да. ниже вашего кода
0
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 16
12.06.2014, 23:16  [ТС] 5
Сделал так, как Вы написали.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Начисления
    Движения.Начисления.Записывать = Истина;
    Для Каждого ТекСтрокаНачисления Из Начисления Цикл
        Движение = Движения.Начисления.Добавить();
        Движение.Сторно = Ложь;
        Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
        Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
        Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.ПериодРегистрации = Дата;
        Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
        Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
        Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;
        Движение.ИсходныеДанные = ТекСтрокаНачисления.Начислено;
    КонецЦикла;
    
    НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    НаборЗаписей.Прочитать();   
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   НачисленияДанныеГрафика.НомерСтроки,
        |   НачисленияДанныеГрафика.ЗначениеПериодДействия КАК План,
        |   НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
        |   НачисленияДанныеГрафика.ИсходныеДанные
        |ИЗ
        |   РегистрРасчета.Начисления.ДанныеГрафика(
        |           Регистратор = &Регистратор
        |               И ВидРасчета = &ВидРасчета) КАК НачисленияДанныеГрафика";
 
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
    Запрос.УстановитьПараметр("Регистратор", Ссылка);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();   
    Пока Выборка.Следующий() Цикл
        НаборЗаписей[Выборка.НомерСтроки-1].Результат = Выборка.Факт / Выборка.План * Выборка.ИсходныеДанные;       
    КонецЦикла;
    НаборЗаписей.Записать(, Истина);
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
К сожалению результат не записывается в регистре, но зато в отчете появился Оклад у другого сотрудника
Миниатюры
Отчет "Начисления сотрудникам" не выводит результат  
0
null
56 / 50 / 13
Регистрация: 06.11.2012
Сообщений: 418
12.06.2014, 23:34 6
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Начисления
    
    Для Каждого ТекСтрокаНачисления Из Начисления Цикл
        Движение = Движения.Начисления.Добавить();
        Движение.Сторно = Ложь;
        Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
        Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
        Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.ПериодРегистрации = Дата;
        //Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
        //Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
        Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;        
        Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;
        Движение.ИсходныеДанные = ТекСтрокаНачисления.Начислено;
    КонецЦикла;
    Движения.Начисления.Записать();
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    
    
    НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    НаборЗаписей.Прочитать();   
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   НачисленияДанныеГрафика.НомерСтроки,
        |   НачисленияДанныеГрафика.ЗначениеПериодДействия КАК План,
        |   НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
        |   НачисленияДанныеГрафика.ИсходныеДанные
        |ИЗ
        |   РегистрРасчета.Начисления.ДанныеГрафика(
        |           Регистратор = &Регистратор
        |               И ВидРасчета = &ВидРасчета) КАК НачисленияДанныеГрафика";
 
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
    Запрос.УстановитьПараметр("Регистратор", Ссылка);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();   
    Пока Выборка.Следующий() Цикл
        НаборЗаписей[Выборка.НомерСтроки-1].Результат = Выборка.Факт / Выборка.План * Выборка.ИсходныеДанные;       
    КонецЦикла;
    НаборЗаписей.Записать(, Истина);
КонецПроцедуры
работает. Подправьте график
Миниатюры
Отчет "Начисления сотрудникам" не выводит результат  
0
null
56 / 50 / 13
Регистрация: 06.11.2012
Сообщений: 418
12.06.2014, 23:45 7
Лучший ответ Сообщение было отмечено Ackles как решение

Решение

в данном случае все от графика зависит. что будет в значении, то и будет считаться

Добавлено через 2 минуты
для проверки Дату окончания в документе измените...результат тоже изменится

Добавлено через 4 минуты
хочу заметить...это только для Оклада. Для Других расчетов Премия, Невыход нужно дописывать
1
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 16
12.06.2014, 23:54  [ТС] 8
Большое спасибо за помощь, все работает)
немного тупанул насчет графика, теперь все ясно)
а вот насчет премии и невыхода я так понял, что к Вашему коду
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    НаборЗаписей.Прочитать();   
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   НачисленияДанныеГрафика.НомерСтроки,
        |   НачисленияДанныеГрафика.ЗначениеПериодДействия КАК План,
        |   НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
        |   НачисленияДанныеГрафика.ИсходныеДанные
        |ИЗ
        |   РегистрРасчета.Начисления.ДанныеГрафика(
        |           Регистратор = &Регистратор
        |               И ВидРасчета = &ВидРасчета) КАК НачисленияДанныеГрафика";
 
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
    Запрос.УстановитьПараметр("Регистратор", Ссылка);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();   
    Пока Выборка.Следующий() Цикл
        НаборЗаписей[Выборка.НомерСтроки-1].Результат = Выборка.Факт / Выборка.План * Выборка.ИсходныеДанные;       
    КонецЦикла;
    НаборЗаписей.Записать(, Истина);
КонецПроцедуры
Вместо оклада надо вписать Премия/Невыход?
Я правильно понял?
0
null
56 / 50 / 13
Регистрация: 06.11.2012
Сообщений: 418
13.06.2014, 00:03 9
Лучший ответ Сообщение было отмечено Ackles как решение

Решение

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

Добавлено через 2 минуты
Просто так вписать не получится т.к. механизмы другие в корне
1
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 16
13.06.2014, 00:38  [ТС] 10
Невыход он и так не формирует результат и в отчете его нет)
а вот с премией Вы правы, немного сложновато)
дело в том, что если премию прописать(рис 1), то в движении регистра Начисление результат рассчитывается (рис 2).
но вот когда премию не прописывать (рис 3), то почему то и исходных данных тоже нет (рис 4)
Миниатюры
Отчет "Начисления сотрудникам" не выводит результат   Отчет "Начисления сотрудникам" не выводит результат   Отчет "Начисления сотрудникам" не выводит результат  

Отчет "Начисления сотрудникам" не выводит результат  
0
17 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 3
17.12.2017, 12:21 11
а у меня не получается все равно выдает ошибку. помогите кто нибудь пожалуйста
Миниатюры
Отчет "Начисления сотрудникам" не выводит результат  
Вложения
Тип файла: rar InfoBase2.rar (218.3 Кб, 2 просмотров)
0
2135 / 1475 / 526
Регистрация: 16.01.2015
Сообщений: 6,317
17.12.2017, 13:22 12
OLJA, Так у вас нет процедуры с этим именем. Что вы хотите ею сделать? Откуда вообще она появилась?
И вообще странная постановка задачи. Это же отчет, а вы им делаете какие-то движения по регистрам

Добавлено через 2 минуты
Аааааааааа увидел, в общем модуле у вас есть такая процедура. В модуле объекта, обращение к этой процедуре:
1C
1
ПроведениеРасчетов.РассчитатьНачисления(НаборЗаписей, ТребуемыйВидРасчета, СписокСотрудников);
0
17 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 3
17.12.2017, 19:19 13
в общем все делала по книге радченко

Добавлено через 10 минут
мне нужно рассчитать з/плату сотрудникам, вроде все получилось но вот с отчетом о начислениях возникли проблемы

Добавлено через 1 час 31 минуту
я поняла в чем моя ошибка))) спасибо за подсказку))
0
17.12.2017, 19:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2017, 19:19
Помогаю со студенческими работами здесь

Напишите программу расчета начисления премий сотрудникам, запутался
Здравствуйте, прохожу процедурный курс на С#, прошло уже 20 дней, выучил все простые типы...

Написать программу начисления недельной зарплаты сотрудникам работающим за почасовую плату
Написать программу начисления недельной зарплаты сотрудникам работающим за почасовую плату. Норма...

Как сделать отчет по сотрудникам до ХХ лет??
Здравствуйте! Подскажите пожалуйста, есть база Access и поле ДР(YYYY, MM, DD). Нужно сделать отчет...

Комплексная автоматизация: простой отчет по сотрудникам
Добрый вечер. Конфигурация "КА 1.1.54.1", Демо база. С помощью мастера создал простой отчет по...

Написать запрос, который выводит все записи по сотрудникам, родившимся в 1977 — 1983 годах
Есть таблица SOTR со следующей структурой: Название поляТипНазначение NameСтрокаИмя сотрудника...

Скрипт не выводит результат при исполнении в терминале, построчно результат есть. Новичок в bash
Добрый день всем. Помогите разобраться. Я новичок в написании скриптов. Первая попытка, идея...

Программа работат но не выводит результат, т.е. не выводит машину черного цвета и с номарми начинающиеся на М
Программа работат но не выводит результат, т.е. не выводит машину черного цвета и с номарми...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru