0
- 29.12.2014 - 15:47
|
Люди, или я туплю или одно из двух. Есть справочник "КодГруппы", у него есть периодический реквизит "Автор" типа "Справочинк.Пользователи" Хочу в общем то простую вещь: чтобы при записи элемента справочника "КодГруппы" фиксироваля автор сего действия. Делаю так: Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда //Автор.ИспользоватьДату(ТекущаяДата()); //Автор = Спр.ТекущийЭлемент(); Автор.Установить(ТекущаяДата(),Спр.ТекущийЭлемент( )); КонецЕсли; пробовал и с Установить() и через ИспользоватьДату() - в первом случае выдает ошибку типа атрибут не найден, а во втором вообще ничего не происходит. Что не так делаю? | | ||
1
- 29.12.2014 - 16:15
|
ПериодическийРеквизит = СоздатьОбъект("Периодический"); ПериодическийРеквизит.ИспользоватьОбъект("СрокПоле зногоИспользования", ТекущийЭлемент()); | | ||
2
- 29.12.2014 - 16:31
|
Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда ИспользоватьДату(ТекущаяДата()); Автор = Спр.ТекущийЭлемент(); КонецЕсли; | | ||
3
- 29.12.2014 - 16:40
| Так тоже попробовал - все равно не работает. История пустая. | | ||
4
- 29.12.2014 - 16:50
|
(3) это все в форме элемента справочника КодГруппы? должно работать... показ истории тоже сам писал?)) | | ||
5
- 29.12.2014 - 17:02
|
(4) нет, в форме списка историю смотрю через стандартный диалог да вот и мне кажется что должно, ан не фурычит.. | | ||
6
- 29.12.2014 - 17:05
|
(5) код из (2) где расположен и как вызывается? | | ||
7
- 29.12.2014 - 22:58
|
(6) код расположен в модуле формы списка справочника КодГруппы, вызывается в процедуре ПриЗаписи() | | ||
8
- 29.12.2014 - 22:59
| 7-gamletspb > (1) | | ||
9
- 29.12.2014 - 23:06
|
(8) Это я попробую конечно, но хотелось бы таки понять почему стандартный способ не работает | | ||
10
- 29.12.2014 - 23:49
|
9-gamletspb > Не посмотрел (7). Цивильно применить типовое решение глЗаписьПериодическихРеквизитов(). Совместно с методом СохранениеПериодическихРеквизитов() | | ||
11
- 30.12.2014 - 00:03
| +(10) Дело все в том, что физически (в таблице БД, где содержится справочник) отсутствуют поля периодических реквизитов. И при записи по умолчанию периодические реквизиты не заполняются. Надо их как-то указывать. Можно аргументом при вызове предопределенной ПриЗаписи() подать список, но лучше принять типовое решение - у пользователя формируется правильный рефлекс. | | ||
12
- 30.12.2014 - 07:19
| в форме списка так нельзя, надо искать текущийэлемент() списка и в нем менять, все что надо | | ||
13
- 30.12.2014 - 09:11
| Код: // при работе в контексте документа, его реквизит "Сотрудник" // является переменной типа "справочник", // чтобы установить новое значение периодического // реквизита "Оклад" этого элемента // справочника, применим функцию Получить Сотрудники.Оклад.Установить(ДатаДок, МаксОклад); | | ||
14
- 30.12.2014 - 09:32
| Цитата:
Цитата:
| | ||
15
- 30.12.2014 - 09:44
| Код: Процедура ПриЗаписи() СпрПольз = СоздатьОбъект("Справочник.Пользователи"); Если СпрПольз.НайтиПоКоду(1)=1 Тогда ИспользоватьДату(ТекущаяДата()); Автор = СпрПольз.ТекущийЭлемент(); Записать(); КонецЕсли; КонецПроцедуры // ПриЗаписи | | ||
16
- 30.12.2014 - 09:52
| 15-kode >так тоже не фурычит | | ||
17
- 30.12.2014 - 10:00
| реквизит Автор = Справочник.Пользователи ?? | | ||
18
- 30.12.2014 - 10:03
| что за конфа? справочник с реквизитом Автор - Номенклатура? | | ||
19
- 30.12.2014 - 10:12
| А чем, собственно не устраивают штатные возможности журнала регистрации 1С ? | | ||
20
- 30.12.2014 - 10:15
|
17-kode >да 18-kode >самописная, тестирую вообще в пустой, свежесозданной. справочник с реквизитом Автор - Номенклатура | | ||
21
- 30.12.2014 - 10:19
| 20 дык выложи уже этот пустой, свежесозданный MD или это конкурс телепатов? ;) | | ||
22
- 30.12.2014 - 10:29
| 21-kode >а чего там выкладывать, можешь сам создать такую базу за 5 минут: делаешь 2 справочника Номенклатура и Пользователи. К номенклатуре прикручиваешь реквизит Автор типа Справочник.Пользователи и делаешь его периодическим. Открываешь форму списка справочника Пользователи и пишешь процедуру ПриЗаписи(). Вот собственно и вся база ) | | ||
23
- 30.12.2014 - 10:33
| Попробовал прикрутить типовое решение - как ни странно тоже не работает. В том смысле, что оно сохраняет только интерактивно измененные периодические реквизиты. А мне надо программно. | | ||
24
- 30.12.2014 - 10:38
|
(7) тады надо еще одну заморочку вставить... Код: Процедура ПриЗаписи() Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда ИспользоватьДату(ТекущаяДата()); СохранениеПериодическихРеквизитов(5,"*"); Автор = Спр.ТекущийЭлемент(); КонецЕсли; КонецПроцедуры | | ||
25
- 30.12.2014 - 10:44
| 23 фу фу фу! но да тебе виднее.. у меня в http://rghost.ru/60052101 работает, хотя задумка как бы это помягче.. странная | | ||
26
- 30.12.2014 - 10:50
| 24-user1C >не работает.. просто сохраняет пустое значение. | | ||
27
- 30.12.2014 - 10:55
| | |||
28
- 30.12.2014 - 10:58
|
(26) все работает, 146%, проверил лично "просто сохраняет пустое значение" какое значение дал, то и сохраняет... | | ||
29
- 30.12.2014 - 11:05
| помимо прочего, хочу заявить: нагружать справочник типа номенклатура переодическими реквизитами, тем паче таким образом реализовывать механизм "автор изменений" ни есть гуд. | | ||
30
- 30.12.2014 - 11:13
| 29-kode >ну я его чисто для примера так обозвал, там где оно мне реально надо, справочник всего на 100 позиций.. да и вообще говоря не нужна там история, вполне достаточно будет последнего автора хранить. На самом деле просто интересно было разобраться с механизмом, так сказать для общего развития. | | ||
31
- 30.12.2014 - 11:24
| - А мне кажется, что тебе просто время девать некуда. (1) - исчерпывающе закрывает сабж. | | ||
32
- 30.12.2014 - 11:50
|
(31) исчерпывающе? :) поиграйся с новыми, еще незаписанными элементами... | | ||
33
- 30.12.2014 - 13:20
| Цитата:
| | ||
34
- 30.12.2014 - 14:20
| Все не осилил, вина выпил. Но для изменения элемента в форме списка, надо создать объект = справочник этого вида, найти этот элемент (на котором стоим ))), изменить как надо и записать. И все получится | | ||
35
- 30.12.2014 - 14:44
| Можно без периодики записывать реквизит типа Спр.Пользователи. Будет очень понятно, кто правил последний. Кто раньше правил - смотрим в жулнале. | | ||
36
- 30.12.2014 - 14:50
| это в котором? | | ||
37
- 30.12.2014 - 15:01
| 36-gamletspb >журнал регистрации - 1cv7.mlg | | ||
38
- 30.12.2014 - 16:36
| платят что ли где-то ещё хорошо за семёрку, что даже (!)накануне о журналах регистрации думать получается? | | ||
39
- 30.12.2014 - 17:03
| 35,37+ LogProvider | |
| Интернет-форум Краснодарского края и Краснодара |