Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   установка периодического реквизита (http://forums.kuban.ru/f1040/ustanovka_periodicheskogo_rekvizita-6396247.html)

gamletspb 29.12.2014 15:47

установка периодического реквизита
 
Люди, или я туплю или одно из двух.
Есть справочник "КодГруппы", у него есть периодический реквизит "Автор" типа "Справочинк.Пользователи"
Хочу в общем то простую вещь: чтобы при записи элемента справочника "КодГруппы" фиксироваля автор сего действия.

Делаю так:

Спр = СоздатьОбъект("Справочник.Пользователи");
Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда
//Автор.ИспользоватьДату(ТекущаяДата());
//Автор = Спр.ТекущийЭлемент();
Автор.Установить(ТекущаяДата(),Спр.ТекущийЭлемент());
КонецЕсли;

пробовал и с Установить() и через ИспользоватьДату() - в первом случае выдает ошибку типа атрибут не найден, а во втором вообще ничего не происходит. Что не так делаю?

DeiMos 29.12.2014 16:15

ПериодическийРеквизит = СоздатьОбъект("Периодический");
ПериодическийРеквизит.ИспользоватьОбъект("СрокПолезногоИспользования", ТекущийЭлемент());

user1C 29.12.2014 16:31

Спр = СоздатьОбъект("Справочник.Пользователи");
Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда
ИспользоватьДату(ТекущаяДата());
Автор = Спр.ТекущийЭлемент();
КонецЕсли;

gamletspb 29.12.2014 16:40

[quote=user1C;37608328]ИспользоватьДату(ТекущаяДата()); Автор = Спр.ТекущийЭлемент();[/quote]
Так тоже попробовал - все равно не работает. История пустая.

user1C 29.12.2014 16:50

(3)
это все в форме элемента справочника КодГруппы? должно работать...
показ истории тоже сам писал?))

gamletspb 29.12.2014 17:02

(4)
нет, в форме списка
историю смотрю через стандартный диалог
да вот и мне кажется что должно, ан не фурычит..

user1C 29.12.2014 17:05

(5)
код из (2) где расположен и как вызывается?

gamletspb 29.12.2014 22:58

(6)
код расположен в модуле формы списка справочника КодГруппы, вызывается в процедуре ПриЗаписи()

VZ 29.12.2014 22:59

7-gamletspb > (1)

gamletspb 29.12.2014 23:06

(8)
Это я попробую конечно, но хотелось бы таки понять почему стандартный способ не работает

VZ 29.12.2014 23:49

9-gamletspb > Не посмотрел (7).
Цивильно применить типовое решение глЗаписьПериодическихРеквизитов(). Совместно с методом СохранениеПериодическихРеквизитов()

VZ 30.12.2014 00:03

+(10) Дело все в том, что физически (в таблице БД, где содержится справочник) отсутствуют поля периодических реквизитов. И при записи по умолчанию периодические реквизиты не заполняются. Надо их как-то указывать. Можно аргументом при вызове предопределенной ПриЗаписи() подать список, но лучше принять типовое решение - у пользователя формируется правильный рефлекс.

USSR 30.12.2014 07:19

в форме списка так нельзя, надо искать текущийэлемент() списка и в нем менять, все что надо

kode 30.12.2014 09:11

[code]
// при работе в контексте документа, его реквизит "Сотрудник"
// является переменной типа "справочник",
// чтобы установить новое значение периодического
// реквизита "Оклад" этого элемента
// справочника, применим функцию Получить
Сотрудники.Оклад.Установить(ДатаДок, МаксОклад);
[/code]

gamletspb 30.12.2014 09:32

[quote=USSR;37612104]в форме списка так нельзя, надо искать текущийэлемент() списка и в нем менять, все что надо [/quote]

Так что-ли?
[quote]
Процедура ПриЗаписи()
СпрПольз = СоздатьОбъект("Справочник.Пользователи");
СпрПольз.НайтиПоКоду(1);
ТекЭлемент = ТекущийЭлемент();
ТекЭлемент.ИспользоватьДату(ТекущаяДата());
ТекЭлемент.Автор = СпрПольз.ТекущийЭлемент();
КонецПроцедуры // ПриЗаписи
[/quote]
все равно не работает

kode 30.12.2014 09:44

[code]
Процедура ПриЗаписи()
СпрПольз = СоздатьОбъект("Справочник.Пользователи");
Если СпрПольз.НайтиПоКоду(1)=1 Тогда
ИспользоватьДату(ТекущаяДата());
Автор = СпрПольз.ТекущийЭлемент();
Записать();
КонецЕсли;
КонецПроцедуры // ПриЗаписи
[/code]

gamletspb 30.12.2014 09:52

15-kode >так тоже не фурычит

kode 30.12.2014 10:00

реквизит Автор = Справочник.Пользователи ??

kode 30.12.2014 10:03

что за конфа? справочник с реквизитом Автор - Номенклатура?

Sasha 30.12.2014 10:12

[quote=gamletspb;37607958] Хочу в общем то простую вещь: чтобы при записи элемента справочника "КодГруппы" фиксироваля автор сего действия.[/quote]
А чем, собственно не устраивают штатные возможности журнала регистрации 1С ?

gamletspb 30.12.2014 10:15

17-kode >да
18-kode >самописная, тестирую вообще в пустой, свежесозданной.
справочник с реквизитом Автор - Номенклатура

kode 30.12.2014 10:19

20 дык выложи уже этот пустой, свежесозданный MD или это конкурс телепатов? ;)

gamletspb 30.12.2014 10:29

21-kode >а чего там выкладывать, можешь сам создать такую базу за 5 минут: делаешь 2 справочника Номенклатура и Пользователи. К номенклатуре прикручиваешь реквизит Автор типа Справочник.Пользователи и делаешь его периодическим. Открываешь форму списка справочника Пользователи и пишешь процедуру ПриЗаписи(). Вот собственно и вся база )

gamletspb 30.12.2014 10:33

[quote=VZ;37611500] 9-gamletspb > Не посмотрел (7). Цивильно применить типовое решение глЗаписьПериодическихРеквизитов(). Совместно с методом СохранениеПериодическихРеквизитов() [/quote]
Попробовал прикрутить типовое решение - как ни странно тоже не работает. В том смысле, что оно сохраняет только интерактивно измененные периодические реквизиты. А мне надо программно.

user1C 30.12.2014 10:38

(7)
тады надо еще одну заморочку вставить...
[code]
Процедура ПриЗаписи()
Спр = СоздатьОбъект("Справочник.Пользователи");
Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда
ИспользоватьДату(ТекущаяДата());
СохранениеПериодическихРеквизитов(5,"*");
Автор = Спр.ТекущийЭлемент();
КонецЕсли;
КонецПроцедуры
[/code]
и СохранениеПериодическихРеквизитов(0) в ПриОткрытии() для безинтерактивной записи...

kode 30.12.2014 10:44

23 фу фу фу! но да тебе виднее.. у меня в [url]http://rghost.ru/60052101[/url] работает, хотя задумка как бы это помягче.. странная

gamletspb 30.12.2014 10:50

24-user1C >не работает.. просто сохраняет пустое значение.

kode 30.12.2014 10:55

[img]http://savepic.ru/6461140.png[/img]

user1C 30.12.2014 10:58

(26)
все работает, 146%, проверил [b]лично[/b]
"[em]просто сохраняет пустое значение[/em]"
какое значение дал, то и сохраняет...

kode 30.12.2014 11:05

помимо прочего, хочу заявить: нагружать справочник типа номенклатура переодическими реквизитами, тем паче таким образом реализовывать механизм "автор изменений" ни есть гуд.

gamletspb 30.12.2014 11:13

29-kode >ну я его чисто для примера так обозвал, там где оно мне реально надо, справочник всего на 100 позиций.. да и вообще говоря не нужна там история, вполне достаточно будет последнего автора хранить. На самом деле просто интересно было разобраться с механизмом, так сказать для общего развития.

DeiMos 30.12.2014 11:24

[quote=gamletspb;37613411]просто интересно было разобраться [/quote]

- А мне кажется, что тебе просто время девать некуда.
(1) - исчерпывающе закрывает сабж.

user1C 30.12.2014 11:50

(31)
исчерпывающе? :) поиграйся с новыми, еще [b]незаписанными[/b] элементами...

kode 30.12.2014 13:20

[quote]На самом деле просто интересно было разобраться с механизмом, так сказать для общего развития[/quote]В таком случае возьму на себя ответственность 1) напомнить вам: [url]http://forums.kuban.ru/f1040/off_vashe-_ng_na_nosu-6397045.html[/url] - и 2) предложить к всеобщему рассморению многоуважаемой публикой обсуждения куда более актуальных и затейливых механизмов: [url=http://www.youtube.com/watch?v=DpgqW6sDYYg&list=UU7wqeVwzexXNUb25RqxtoeA]POИ ТВ[/url]

USSR 30.12.2014 14:20

Все не осилил, вина выпил. Но для изменения элемента в форме списка, надо создать объект = справочник этого вида, найти этот элемент (на котором стоим ))), изменить как надо и записать. И все получится

zaic 30.12.2014 14:44

Можно без периодики записывать реквизит типа Спр.Пользователи. Будет очень понятно, кто правил последний. Кто раньше правил - смотрим в жулнале.

gamletspb 30.12.2014 14:50

[quote=zaic;37615130]Кто раньше правил - смотрим в жулнале. [/quote]
это в котором?

zaic 30.12.2014 15:01

36-gamletspb >журнал регистрации - 1cv7.mlg

kode 30.12.2014 16:36

платят что ли где-то ещё хорошо за семёрку, что даже (!)накануне о журналах регистрации думать получается?

kode 30.12.2014 17:03

35,37+ [url=http://www.1cpp.ru/docum/html/LogDataProvider.html]LogProvider[/url]


Текущее время: 19:55. Часовой пояс GMT +3.