|
v7: Прошу совета: как хранить историю изменения значений реквизита справочника | ☑ | ||
---|---|---|---|---|
0
america2013
14.11.13
✎
15:15
|
Приветствую Вас, уважаемые форумчане!
Прошу дельного совета в таком деле, если в кратце: есть конфа 7.7; есть справочник Сотрудники с реквизитом Подразделение (не периодический); есть отчет с параметрами дата и подразделения, выводящий данные по сотрудникам; подсчеты ведутся на основании выбранного сотрудника и подразделения. Идея доработки: результат отчета зависит от выбранного подразделения; суть в том, что период может быть разным и в течении времени подразделение у сотрудника может смениться, поэтому необходимо хранить историю изменения подразделения у сотрудника, чтобы при формировании отчета подразделение указывалось не выбранное в реквизите сейчас, а на дату отчета. Можно конечно сделать реквизит Подразделение в справочнике у Сотрудника периодическим, но тогда я предвижу, что везде, где используется этот реквизит Подразделение нужно будет указывать дату, на которую нужно выбирать значение. Где это может встретиться - не известно. Надеюсь изложил доступно. Порекомендуйте, как быть? Заранее благодарен. |
|||
1
sapphire
14.11.13
✎
15:19
|
(0) Создать точно такой же реквизит, только периодический и назвать его например "ПодразделениеПериодический".
При изменении реквизита "Подразделение" писать инфо и в "ПодразделениеПериодический". |
|||
2
Chum
14.11.13
✎
15:20
|
(1) +1
|
|||
3
america2013
14.11.13
✎
15:23
|
(1) Да, решение достойное. Спасибо!
Я было ещё думал о том, чтобы создать Справочник (реквизиты Подразделение, Сотрудник и Дата) и использовать его как регистр сведений в 8, но это конечно выглядит как изврат, поэтому и решил спросить мнение у более опытных. Есть ли ещё варианты реализации? |
|||
4
alex74
14.11.13
✎
15:24
|
(3) новое подраздееление в карточку заносится вручную или документом о переводе?
|
|||
5
mikecool
14.11.13
✎
15:25
|
(3) подчиненный справочник к сотрудникам с полями дата и подразделение
|
|||
6
america2013
14.11.13
✎
15:27
|
(4) Вот это конечно стоит ещё выяснить..... а то догадываюсь, что изменения будут срабатывать, только при ручном вводе.
|
|||
7
alex74
14.11.13
✎
15:28
|
(6) если документом - ничего дорабатывать не надо, бери историю из документов.
|
|||
8
america2013
14.11.13
✎
15:30
|
(7) А если из документов и вручную, то брать оба значения и сравнивать какое свежее?
|
|||
9
alex74
14.11.13
✎
15:32
|
(8) тогда дорабатывай документы чтобы они изменяли периодический реквизит тоже, и отчет строй по реквизиту.
Или по подчиненному справочнику из (5), потому что периодические реквизиты в семерке придумали извращенцы. |
|||
10
Господин ПЖ
14.11.13
✎
15:33
|
перейти на 8-ку
|
|||
11
Господин ПЖ
14.11.13
✎
15:33
|
периодика в клюшках - чудо враждебной техники
|
|||
12
Chum
14.11.13
✎
15:35
|
(3) периодический реквизит 7-ки это что-то вроде аналога регистра сведений 8-ки.
(8) если допускается изменение реквизита вручную, тогда запрос по документам как в (7) тебе ничего не даст. здесь без периодики не обойдешься. (11) отчасти согласен, сильно тупит при обращении к периодике в циклах. особенно в ЗиК-е. приходится предварительно формировать таблицу с актуальными данными и потом обращаться к ней, а не к периодике. работает в разы быстрее. |
|||
13
Mikeware
14.11.13
✎
15:43
|
(1) штатная периодика - зло.
хотя - просто и дешево. ---------- лучше дополнительный справочник, и в ПриЗаписи пробегать все реквизиты, сравнивать с объектом в базе, и при различиях - писать в справочник кортеж ДатаВремя-Подьзователь-Реквизит-СтароеЗначение-НовоеЗначение |
|||
14
alex74
14.11.13
✎
15:47
|
(13) топикстартер замахается отслеживать все программные изменения справочника.
|
|||
15
Mikeware
14.11.13
✎
15:50
|
(14) это да.
|
|||
16
america2013
14.11.13
✎
15:52
|
Удалось выяснить, что Подразделение у Сотрудника никаким документами не меняется, только ручками, но это была только беседа с бухом, а не допрос, что означает, что где-то может и выстрелить документ ; ))) Отсюда следует, что больше подходит вариант создать копию реквизита Подразделение, но уже периодический и брать историю с него. Начну работу в этом направлении, но тему какое-то время продолжу монеторить, если вдруг будут ещё предложения.
(10) Об этом у бухов нет и речи : ) Но на будущее конечно стоит учесть : ))) (13) Если создать ещё справочник, опосаюсь, что база ещё больше раздуется, кто знает, как часто туда буду вестись записи... (14) и (15) Расшифруйте пожалуйста, Ваш сленг ; ) |
|||
17
alex74
14.11.13
✎
15:58
|
(16) в семерке чтобы отследить что справочник меняется вручную - есть процедура "ПриЗаписи()", которая вызывается из формы элемента, и из формы списка справочника (т.е. тебе надо будет дублировать и там и там). Но если справочник меняется программно - например документом "кадровое перемещение" или обработкой, то эта процедура не запускается. В этих случаях тебе надо дописывать документ или обработку, чтобы они делали нужные изменения.
|
|||
18
america2013
18.11.13
✎
14:55
|
Работу продолжил. Добавил рядом с Подразделением ещё реквизит ПодразделениеПериодическое (конечно, периодический).
В ходе работы столкнулся с применением такого реквизита. Прошу подскажите, как теперь в запросе (уже имеющемся) выбрать не Подразделение, а ПодразделениеПериодическое (у сотрудника)? Имею код: "//{{ЗАПРОС(Сформировать1) |с НачДата по КонДата; |ОбрабатыватьДокументы Проведенные; |Подразделение = Документ.ВедомостьНачислений.Сотрудник.Подразделение; |Организация = Документ.ВедомостьНачислений.Организация; |Оклад = Документ.ВедомостьНачислений.Оклад; |Дополнительные = Документ.ВедомостьНачислений.Дополнительные; |Функция СуммаНачислено = Сумма(Оклад+Дополнительные); |Функция НачисленоДополнительно = Сумма(Дополнительные); |Условие (Организация = ВыбОрганизация); |Группировка Подразделение упорядочить по Подразделение.Код Без Групп; |Без итогов; |"//}}ЗАПРОС ; |
|||
19
america2013
18.11.13
✎
15:00
|
Вариант, типа...
|Подразделение = Документ.ВедомостьНачислений.Сотрудник.ПодразделениеПериодическое.Получить(НачДата); ...не работает : ((( |
|||
20
Mikeware
18.11.13
✎
15:00
|
(16) Ну, как мнеять будут. у меня логи ручных изменений - одни из самых больших таблиц в базе (почти 7 гигов - лог изменений документов).
|
|||
21
alex74
18.11.13
✎
15:05
|
|Подразделение = Документ.ВедомостьНачислений.Сотрудник.ПодразделениеПериодическое ;
|
|||
22
america2013
18.11.13
✎
15:06
|
(21) И все? Простите, но как, если вкратце, система узнает, что мне необходимо значение на начальную дату отчета?
|
|||
23
alex74
18.11.13
✎
15:08
|
(22) система вернет значение на КонДата
|
|||
24
america2013
18.11.13
✎
15:10
|
(23) А на НачДата возможно реализовать?
|
|||
25
1dvd
18.11.13
✎
15:10
|
(24) Да, если строить запрос
Период с НачДата по КонДата; |
|||
26
1dvd
18.11.13
✎
15:12
|
тьфу...
Период с НачДата по НачДата; |
|||
27
america2013
18.11.13
✎
15:15
|
(26) Нет, так не подойдет, тогда и значения в запрос будут попадать только за 1 день : (((
|
|||
28
ЧеловекДуши
18.11.13
✎
15:27
|
(1) Оно и так периодическое :)
|
|||
29
ЧеловекДуши
18.11.13
✎
15:28
|
(0) Слышь, соколик, таки у тебя что за конфигурация?
|
|||
30
ЧеловекДуши
18.11.13
✎
15:28
|
(27) А периодичность в лице 1С, по их Черным запросам, всегда рассматривается в пределе конечной даты :)
|
|||
31
ЧеловекДуши
18.11.13
✎
15:29
|
+(27) Либо ты пишешь прямой запрос...
Либо, как все, через Цикл в Цикле :) |
|||
32
america2013
18.11.13
✎
15:36
|
(29)
ТиС (7.7) 7.70.009 Реквизит и отчет добавлены самостоятельно. (30) Понятно с запросом, согласую этот момент, что бы так оставить не переделывая: Подразделение = Документ.ВедомостьНачислений.Сотрудник.ПодразделениеПериодическое; Но вот есть ещё вопрос: если значение ПодразделениеПериодичес - пустое, как это проверить? И если пустое, то выбрать Подразделение = Документ.ВедомостьНачислений.Сотрудник.Подразделение; |
|||
33
america2013
18.11.13
✎
15:54
|
Прошу, гуру, не покидайте! Нужна помощь: если значение ПодразделениеПериодическое - пустое, как это проверить? И если пустое, то выбрать
Подразделение = Документ.ВедомостьНачислений.Сотрудник.Подразделение; |
|||
34
alex74
18.11.13
✎
15:55
|
(33) получай в цикле и то и то.
|
|||
35
america2013
18.11.13
✎
16:12
|
(34) Понятно.
Благодарю всех за участие!!!!!! Удачи и успехов!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |