[1] [2] |
установка периодического реквизита Люди, или я туплю или одно из двух. Есть справочник "КодГруппы", у него есть периодический реквизит "Автор" типа "Справочинк.Пользователи" Хочу в общем то простую вещь: чтобы при записи элемента справочника "КодГруппы" фиксироваля автор сего действия. Делаю так: Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда //Автор.ИспользоватьДату(ТекущаяДата()); //Автор = Спр.ТекущийЭлемент(); Автор.Установить(ТекущаяДата(),Спр.ТекущийЭлемент()); КонецЕсли; пробовал и с Установить() и через ИспользоватьДату() - в первом случае выдает ошибку типа атрибут не найден, а во втором вообще ничего не происходит. Что не так делаю? |
ПериодическийРеквизит = СоздатьОбъект("Периодический"); ПериодическийРеквизит.ИспользоватьОбъект("СрокПолезногоИспользования", ТекущийЭлемент()); |
Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда ИспользоватьДату(ТекущаяДата()); Автор = Спр.ТекущийЭлемент(); КонецЕсли; |
[quote=user1C;37608328]ИспользоватьДату(ТекущаяДата()); Автор = Спр.ТекущийЭлемент();[/quote] Так тоже попробовал - все равно не работает. История пустая. |
(3) это все в форме элемента справочника КодГруппы? должно работать... показ истории тоже сам писал?)) |
(4) нет, в форме списка историю смотрю через стандартный диалог да вот и мне кажется что должно, ан не фурычит.. |
(5) код из (2) где расположен и как вызывается? |
(6) код расположен в модуле формы списка справочника КодГруппы, вызывается в процедуре ПриЗаписи() |
7-gamletspb > (1) |
(8) Это я попробую конечно, но хотелось бы таки понять почему стандартный способ не работает |
9-gamletspb > Не посмотрел (7). Цивильно применить типовое решение глЗаписьПериодическихРеквизитов(). Совместно с методом СохранениеПериодическихРеквизитов() |
+(10) Дело все в том, что физически (в таблице БД, где содержится справочник) отсутствуют поля периодических реквизитов. И при записи по умолчанию периодические реквизиты не заполняются. Надо их как-то указывать. Можно аргументом при вызове предопределенной ПриЗаписи() подать список, но лучше принять типовое решение - у пользователя формируется правильный рефлекс. |
в форме списка так нельзя, надо искать текущийэлемент() списка и в нем менять, все что надо |
[code] // при работе в контексте документа, его реквизит "Сотрудник" // является переменной типа "справочник", // чтобы установить новое значение периодического // реквизита "Оклад" этого элемента // справочника, применим функцию Получить Сотрудники.Оклад.Установить(ДатаДок, МаксОклад); [/code] |
[quote=USSR;37612104]в форме списка так нельзя, надо искать текущийэлемент() списка и в нем менять, все что надо [/quote] Так что-ли? [quote] Процедура ПриЗаписи() СпрПольз = СоздатьОбъект("Справочник.Пользователи"); СпрПольз.НайтиПоКоду(1); ТекЭлемент = ТекущийЭлемент(); ТекЭлемент.ИспользоватьДату(ТекущаяДата()); ТекЭлемент.Автор = СпрПольз.ТекущийЭлемент(); КонецПроцедуры // ПриЗаписи [/quote] все равно не работает |
[code] Процедура ПриЗаписи() СпрПольз = СоздатьОбъект("Справочник.Пользователи"); Если СпрПольз.НайтиПоКоду(1)=1 Тогда ИспользоватьДату(ТекущаяДата()); Автор = СпрПольз.ТекущийЭлемент(); Записать(); КонецЕсли; КонецПроцедуры // ПриЗаписи [/code] |
15-kode >так тоже не фурычит |
реквизит Автор = Справочник.Пользователи ?? |
что за конфа? справочник с реквизитом Автор - Номенклатура? |
[quote=gamletspb;37607958] Хочу в общем то простую вещь: чтобы при записи элемента справочника "КодГруппы" фиксироваля автор сего действия.[/quote] А чем, собственно не устраивают штатные возможности журнала регистрации 1С ? |
17-kode >да 18-kode >самописная, тестирую вообще в пустой, свежесозданной. справочник с реквизитом Автор - Номенклатура |
20 дык выложи уже этот пустой, свежесозданный MD или это конкурс телепатов? ;) |
21-kode >а чего там выкладывать, можешь сам создать такую базу за 5 минут: делаешь 2 справочника Номенклатура и Пользователи. К номенклатуре прикручиваешь реквизит Автор типа Справочник.Пользователи и делаешь его периодическим. Открываешь форму списка справочника Пользователи и пишешь процедуру ПриЗаписи(). Вот собственно и вся база ) |
[quote=VZ;37611500] 9-gamletspb > Не посмотрел (7). Цивильно применить типовое решение глЗаписьПериодическихРеквизитов(). Совместно с методом СохранениеПериодическихРеквизитов() [/quote] Попробовал прикрутить типовое решение - как ни странно тоже не работает. В том смысле, что оно сохраняет только интерактивно измененные периодические реквизиты. А мне надо программно. |
(7) тады надо еще одну заморочку вставить... [code] Процедура ПриЗаписи() Спр = СоздатьОбъект("Справочник.Пользователи"); Если Спр.НайтиПоКоду(ИмяПользователя()) = 1 Тогда ИспользоватьДату(ТекущаяДата()); СохранениеПериодическихРеквизитов(5,"*"); Автор = Спр.ТекущийЭлемент(); КонецЕсли; КонецПроцедуры [/code] и СохранениеПериодическихРеквизитов(0) в ПриОткрытии() для безинтерактивной записи... |
23 фу фу фу! но да тебе виднее.. у меня в [url]http://rghost.ru/60052101[/url] работает, хотя задумка как бы это помягче.. странная |
24-user1C >не работает.. просто сохраняет пустое значение. |
[img]http://savepic.ru/6461140.png[/img] |
(26) все работает, 146%, проверил [b]лично[/b] "[em]просто сохраняет пустое значение[/em]" какое значение дал, то и сохраняет... |
помимо прочего, хочу заявить: нагружать справочник типа номенклатура переодическими реквизитами, тем паче таким образом реализовывать механизм "автор изменений" ни есть гуд. |
29-kode >ну я его чисто для примера так обозвал, там где оно мне реально надо, справочник всего на 100 позиций.. да и вообще говоря не нужна там история, вполне достаточно будет последнего автора хранить. На самом деле просто интересно было разобраться с механизмом, так сказать для общего развития. |
[quote=gamletspb;37613411]просто интересно было разобраться [/quote] - А мне кажется, что тебе просто время девать некуда. (1) - исчерпывающе закрывает сабж. |
(31) исчерпывающе? :) поиграйся с новыми, еще [b]незаписанными[/b] элементами... |
[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] |
Все не осилил, вина выпил. Но для изменения элемента в форме списка, надо создать объект = справочник этого вида, найти этот элемент (на котором стоим ))), изменить как надо и записать. И все получится |
Можно без периодики записывать реквизит типа Спр.Пользователи. Будет очень понятно, кто правил последний. Кто раньше правил - смотрим в жулнале. |
[quote=zaic;37615130]Кто раньше правил - смотрим в жулнале. [/quote] это в котором? |
36-gamletspb >журнал регистрации - 1cv7.mlg |
платят что ли где-то ещё хорошо за семёрку, что даже (!)накануне о журналах регистрации думать получается? |
35,37+ [url=http://www.1cpp.ru/docum/html/LogDataProvider.html]LogProvider[/url] |
Текущее время: 19:55. Часовой пояс GMT +3. | [1] [2] |