Имя: Пароль:
1C
1С v8
Как получить количество дней в неделе в СКД?
0 al_zzz
 
25.01.18
21:11
Собственно, задача состоит в том, чтобы разбить в отчете месячную плановую величину понедельно пропорционально количеству дней в неделе. Например, план на месяц 100. В месяце:
1-ая неделя - 4 дня,
2-ая неделя - 7 дней,
....
5-ая неделя - 1 день. Всего в месяце 31 день.
Надо получить:
1-ая неделя - 100/31*4 дня,
2-ая неделя - 100/31*7 дней,
....
5-ая неделя - 100/31 день.  
Придумал делать так: сделал дополнительный набор данных, в котором получил для каждого дня периода номер недели года и в основном наборе тоже получил номер недели. Сделал соединение по ним, количество дней вывел в ресурс сумма.
Когда формирую отчет - ругается:
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{ВнешнийОтчет.ПрибылиИУбытки.МодульОбъекта(519)}: Ошибка при вызове метода контекста (Выполнить)
    ОтчетОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "ДнейНедели"
ЧЯДНТ?
1 al_zzz
 
25.01.18
21:13
https://yadi.sk/d/KBZWn5IO3RnYCt - сам отчет.
2 tesseract
 
26.01.18
00:14
Тебе количество рабочих дней в неделе по производственному календарю  или графику сотрудника?  Регистр сведений "Данные производственного календаря" имеет все нужное для расчета рабочих дней.
3 Fram
 
26.01.18
01:09
(0) а эта самая плановая величина может быть дробной понедельно?
4 al_zzz
 
26.01.18
08:12
(2) Мне нужны просто календарные дни. Сеть пивнух - работает без выходных.
Да даже и в таком случае, если я буду получать дни из производственного календаря, а не генерировать таблицу дней периода, как мне соединение сделать?
(3) Там допустимо округлять.
5 al_zzz
 
26.01.18
09:35
Ап!
6 mistеr
 
26.01.18
09:38
(4) Распределяешь показатель по неделям в ТЗ (есть функция где-то в общих модулях), ТЗ пихаешь в СКД.
7 al_zzz
 
26.01.18
09:47
(6)Это крайний случай - не хочется раскуривать все отборы и группировки скд, чтоб отдельно таблицу значений под это дело формировать.
Неужели нет больше вариантов без такого источника данных?
8 mistеr
 
26.01.18
09:57
(7) Зачем раскуривать? Получил данные через СКД, выгрузил в ТЗ, обработал, загрузил обратно в СКД, показал.

Варианты есть. Например, вызов функции в ОМ с передачей массива.
9 al_zzz
 
26.01.18
12:35
Всем спасибо! Работает вариант из 0. Ошибка закралась во второй запрос: когда брал запрос по генерации таблицы дней, забыл убрать команду "Поместить".
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший