Имя: Пароль:
1C
1С v8
Не тривиальное использование регистра сведений.
0 JastAMan
 
04.07.16
10:13
В при печати одного документа, на печатную форму должен выводиться состав некой комиссии.
Комиссии хранятся в регистре сведений.
Все бы ничего, но эти люди желают вводить комиссии следующим образом:
Комиссия 1:  01 янв 16г по 31 дек 16
комиссия 2:  3 марта 16 г по 02 апр 16г.
Т.е. периоды пересекаются.

У меня головняк с правильным отображением комиссий. Не всегда получается выловить нужный состав комиссии. Тестировщик постоянно находит вариант, когда состав комиссия отображается не правильно.

Вопрос к бывалым 1С-никам: это нормально - так использовать регистр сведений?
1 Господин ПЖ
 
04.07.16
10:15
>но эти люди желают вводить комиссии следующим образом

обойдутся
2 JastAMan
 
04.07.16
10:17
(1) Т.е. то, что они хотят - не есть правильно?
3 Fish
 
04.07.16
10:18
(2) Так добавь в регистр измерение Комиссия. И всех делов.
4 YFedor
 
04.07.16
10:19
(0) 3 записи в периодическом регистре сведений:

01 янв 16г
3 марта 16 г
02 апр 16г.
5 Irbis
 
04.07.16
10:20
(0) состав комиссии есть срез твоего регистра. Кури срез на каждую дату и разбивай пересекающиеся периоды.
6 4St
 
04.07.16
10:20
(2) Похожим образом задаются периоды отпусков и действия начислений в типовой ЗУП. Только там, кажется, пересечение все-таки контролируется. Посмотри структуру соответствующих регистров и связанный код.
По сабжу - нарисуй заказчику эту таблицу и предложи выбрать правильный вариант комиссии. Либо родится алгоритм, либо заказчик поймет, что просит фигню, и родится другой алгоритм.
7 Анцеранана
 
04.07.16
10:22
(0) А я вот не понял нифига. Что там в регистре сейчас? Даты что ли? Какое условие задачи? Выбрать все актуальную комиссии на определенную дату?
8 sash-ml
 
04.07.16
10:23
(3) в типовом регистре есть такое измерение.
сам регистр нужен только чтобы в документ проставить контентных членов комиссии.
(0) что мешает добавить в документ членов второй комиссии?
9 Михаил 1С
 
04.07.16
10:24
(0) Надо полностью описать задачу. Так она не понятна. Ну или я не смог тебя понять.

На первый взгляд все просто:

Период - это будет дата начала периода

И заведи два Ресурса:
1) Комиссия - величина комиссии (наверное в процентах?)
2) ДатаКон - конец периода

...

А какое измерение тебе нужно? - даже не знаю.
10 JastAMan
 
04.07.16
10:29
(9) регистр:  Период, регистратор, Физ-лицо, ДатаОкончания.
В печатную форму нужно вывести актуальный, на дату документа состав, т.е. физ.лиц из регистра.

Проблема в том, что как не строю запросы, всегда забегаю то за ДатаОкончания в регистре, то "не дохожу" до Период того-же регистра.
11 vyaz
 
04.07.16
10:31
может ДатаДок между Период и ДатаОкончания?
12 YFedor
 
04.07.16
10:32
(10) Лучше так:

* Период
* НомерЧленаКомиссии - либо число, либо справочники - не важно (разное их количество будет количеством членов комисии
* ФизЛицо - ресурс

Никаких дат окончания, будет, как я писал в (4)
13 arsik
 
гуру
04.07.16
10:33
(10) Убрать к черту измерение ДатаОкончания. И всего дело
14 Господин ПЖ
 
04.07.16
10:34
запердолить плоскую таблицу - на весь год всего-то 365 записей... в каждый день знаешь какая комиссия и что...

а все эти хитрож.пые структуры ведут к хитрож.пым запросам, которые ведут к хитрож.пым ошибкам
15 JastAMan
 
04.07.16
10:35
Если повозиться, то можно прийти к нужному результату.
Вопрос заключался в том, что ПРАВИЛЬНО-ЛИ так использовать регистр сведений? И буду ли я прав если настою на том, что бы исключить пересекающиеся периоды?
16 Михаил 1С
 
04.07.16
10:36
(13) Тогда ты дай еще автору алгоритм записи в твой регистр. А то ты решил одну проблемму, но не рассказал о второй
17 YFedor
 
04.07.16
10:36
(15) Ничего принципиально неправильного нет в твоем регистре, только он неудобен в использовании
18 Господин ПЖ
 
04.07.16
10:37
>Вопрос заключался в том, что ПРАВИЛЬНО-ЛИ так использовать регистр сведений?

а вариантов то других нет...

для таких задач в теории должны подходить регистры расчетов но их за пределами расчета з/п никто не применяет
19 Михаил 1С
 
04.07.16
10:39
(15) "буду ли я прав если настою на том, что бы исключить пересекающиеся периоды?"

Тут главное - есть ли правило выбора периода, если данная точка входит сразу в два периода? А если сразу в три?

1) с 1 января по 1 июля
2) с 1 февраля по 1 мая
3) с 1 марта по 1 декабря

куда определим точку 1 апреля?

ПС: И нужно правило - как сильно могут пересекаться периоды?
20 Михаил 1С
 
04.07.16
10:42
(19) Если эти правила разумны, то не надо настаивать на том, чтобы исключить пересекающиеся периоды.
21 itlikbez
 
04.07.16
10:43
(15) Настаивай на исключении восхода солнца. Не мелочись.
22 JastAMan
 
04.07.16
10:46
(21) Мне же нужно совета, а не конца света :)
(20) Правила есть. Пошел ломать голову дальше.
Благодарю за то, что откликнулись.
23 arsik
 
гуру
04.07.16
10:46
Как вариант можно сделать на регистре остатков. Там можно замутить периоды при проведении.
24 ovrfox
 
04.07.16
11:11
Огласи правила для примера в (19), тогда тебе смогут помочь.
Пока правила не известны, то запрос написать никто не сможет (разве что экстрасенс)
25 polosov
 
04.07.16
11:16
(0)А регистр расчета чем не нравится?
26 ovrfox
 
04.07.16
11:20
А пока я предположу, что видимо пересакаться могут периоды участия определенной фамилии в Комиссии. Тогда все просто - при записи члена комиссии в регистр делай запись по фамилии на начало периода с фамилией и ресурсом окончание периода. При этом если какой-то новый период полностью включается в старый - отказывайся записывать такие данные. Тогда срез последних тебе всегда даст членов комисии (но после выборки нужно будет проверить, не окончился ли период членства по ресурсу окончание периода членства)
2 + 2 = 3.9999999999999999999999999999999...