Имя: Пароль:
1C
1С v8
Получить "фактически отработано дней" из регистра расчета
0 oxanka
 
29.03.12
17:16
Помогите, пожалуйста! Совсем зашла в тупик. Надо реализовать отзыв из отпуска в самописной конфигурации. Создала такой документ, который возьмет все движения первичного документа "Отпуск" и сделает их с минусом, а потом запишет новые движения, но уже с плюсом и по новому периоду отпуска. В итоге получается, что в регистре расчета "Основные начисления" в определенный период действия три записи:
1. Период действия 01.03.12; Дата начала 01.03.12; Дата окончания 25.03.12; Результат 1000; Отработано 24 дня; Регистратор "Отпуск"
2. Период действия 01.03.12; Дата начала 01.03.12; Дата окончания 25.03.12; Результат -1000; Отработано -24 дня; Регистратор "Отзыв из отпуска"
3. Период действия 01.03.12; Дата начала 01.03.12; Дата окончания 13.03.12; Результат 700; Отработано 12 дней; Регистратор "Отзыв из отпуска"

Проблема возникла при расчете фактически отработанных дней. Запрос
Запрос.Текст = "ВЫБРАТЬ
       |    СУММА(ОсновныеНачисленияРаботниковОрганизацийДанныеГрафика.ОсновноеЗначениеФактическийПериодДействия) КАК ГрафикФакт,
       |    СУММА(ОсновныеНачисленияРаботниковОрганизацийДанныеГрафика.ОсновноеЗначениеПериодДействия) КАК ГрафикНорм,
       |    ОсновныеНачисленияРаботниковОрганизацийДанныеГрафика.ВидУчетаВремени
       |ИЗ
       |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ДанныеГрафика(
       |            НомерСтроки = &НомерСтроки
       |                И Регистратор = &Регистратор) КАК ОсновныеНачисленияРаботниковОрганизацийДанныеГрафика
       |
       |СГРУППИРОВАТЬ ПО
       |    ОсновныеНачисленияРаботниковОрганизацийДанныеГрафика.ВидУчетаВремени";

выдает, что отработано 5 дней, т.е. как будто отпуск длился 24 дня, а не 12.
Как можно показать, что надо брать период действия последней записи?
1 GROOVY
 
29.03.12
17:21
1. Старый отпуск я бы сторнировал.
2. Не понятно что расчитывается в запросе и какие настройки в вида расчета запись которого расчитывается.
2 oxanka
 
29.03.12
17:48
В нашей конфигурации нет документа "Сторно", поэтому мы решили делать такое искусственное сторнирование.
А в запросе рассчитывается количество дней (или часов) по графику по норме и количество фактически отработанных часов. А как оно рассчитывается - я не могу понять:( Берется виртуальная таблица "Данные графика" регистра расчета, оттуда что-то считывается и выдается результат, а какой механизм этого расчета я никак не могу догнать.
3 GROOVY
 
29.03.12
18:16
При чем здесь документ, сторно - это признак записи регистра расчета.
"Что то считывается, как то рассчитывается..." - ну я думаю Вы понимаете что при таком начальном наборе данных Вам вряд ли помогут советом.
4 oxanka
 
29.03.12
18:24
Я пыталась поставить признак "сторно" - тогда в начислении з/п записи по отпуску стали задваиваться. Или недостаточно просто установить признак, чтобы записи регистра расчетов "сворачивались"?
5 oxanka
 
29.03.12
18:29
А на совет я все-таки рассчитываю. У меня-то и вся проблема в том, что я не могу понять механизм этого запроса, текст которого приведен. Берется виртуальная таблица "Данные графика" регистра расчета "Основные начисления". А откуда собираются данные в эту виртуальную таблицу?