Имя: Пароль:
1C
 
Движения реквизитов справочников Документом
0 andrewks
 
26.10.10
23:43
Что-то не въеду что за грабли - есть док, "двигает" реквизиты справочников, и есть юзер с полными правами. Встаю на док, Действия\Движения документа\Реквизиты справочников - пишет "Недостаточно прав доступа!"
1 Чайник Рассела
 
26.10.10
23:46
(0) добавил новый справочник, а права на него установить забыл
2 andrewks
 
26.10.10
23:47
(1) не-а! не забыл! еще варианты?
3 Чайник Рассела
 
26.10.10
23:47
(2) больше вариантов нет. пользователь не с полнымим правами
4 andrewks
 
26.10.10
23:51
(3) что-то хня какая-то. на доке, справочнике все права были - получал сабж. Сделал установить все права- заработало. Где собака порылась?
5 Чайник Рассела
 
26.10.10
23:53
(4) может у справочника был реквизит другого справочника без прав
6 andrewks
 
26.10.10
23:55
(5) нет.
сделал сравнение md - кажет, что изменение прав произошло только на справ ДвиженияРегистров и ХозОперации (ТиС), но двигает док не их. и все, больше изменений в правах нет. ничего не понимаю...
7 andrewks
 
27.10.10
00:00
+(6) сейчас вручную восстановил права на эти справочники, - объединение кажет что конфы идентичны, но на проманипулированной конфе движуху реквизитов справ кажет, на первоначальной - нет. понимаю, что так не бывает - но б.я буду, так и есть, не до шуток :(
8 zak555
 
27.10.10
00:06
а где в тисе реквизиты меняются ?
9 andrewks
 
27.10.10
00:07
и еще одна трабла (некогда лазить по книжкам):

есть реквизит на форме - СпрЦен Справочник.Цены (подч.Номенклатуре)
есть код
ИсторияЦен=СоздатьОбъект("Периодический");
   ИсторияЦен.ИспользоватьОбъект(,СпрЦен);
   ИсторияЦен.ОбратныйПорядок(1);
   ТекДата="";
   
   ИсторияЦен.ВыбратьЗначения();
   Пока ИсторияЦен.ПолучитьЗначение()=1 Цикл
       Если ПустоеЗначение(ТекДата)=1 Тогда
           ТекДата=ИсторияЦен.ДатаЗнач;
       КонецЕсли;
       Если (ИсторияЦен.ДатаЗнач<>ТекДата) И (ИсторияЦен.ДатаЗнач<ДатаСреза) Тогда
           // удаляется
           ИсторияЦен.Удалить();
       КонецЕсли;
   КонецЦикла;

на Удалить пишет: Перед выполнением операции нужно вызвать 'ИспользоватьОбъект'!
понимаю, что удалять в выборке как бэ глупо, но СП кажет про Удалить:
До вызова данного метода периодическое значение следует выбрать при помощи методов ПолучитьЗначение или НайтиЗначение.
т.е. д.б. нормально, ан нет.
10 andrewks
 
27.10.10
00:08
(8) Спр.Цены (подч. Спр.Номенклатура)
11 zak555
 
27.10.10
00:10
а за док меняет ?
12 andrewks
 
27.10.10
00:13
(11) свой, писанный "Переоценка" - выбираем ТЦ, набираем номенкл. нам док кажет текущие цены, вбиваем или рассчитываем новые - проводим - док двигает цены
13 zak555
 
27.10.10
00:16
(12) обычного нет документа переоценка ? о_О
14 trdm
 
27.10.10
00:17
ИсторияЦен.ИспользоватьОбъект("Цена",СпрЦен);
15 trdm
 
27.10.10
00:19
+(14) Если чистишь историю, то определись, ля какого РЕКВИЗИТА ты её чистишь...
16 andrewks
 
27.10.10
00:19
(14) для всех надо
17 andrewks
 
27.10.10
00:20
(13) нету, ПереоценкаРозница совсем на другую тему
18 andrewks
 
27.10.10
00:21
+(16) в СП на эту тему никаких ограничений не написано
19 andrewks
 
27.10.10
00:23
(14) если каждый рекв по-отдельности - кажет "Значение установлено документом!" видимо, для рекв уст. доком метод не пашет?
20 zak555
 
27.10.10
00:26
(17) кури ОбновлениеЦенИзДокумента
21 andrewks
 
27.10.10
00:27
(20) не втянуло. нужен именно ДОК.
22 andrewks
 
27.10.10
00:29
+(21) ТЗ такое: манагер подготавливает проект изменения цен (этим самым доком) - печатает - несет на согл. к диру, дир резолюцирует - утвердить с 5-го числа, манагер двигает док на 5-е число и проводит - все.
23 trdm
 
27.10.10
00:30
(16) А че трудно написать цикл с перебором реквизитов?
   вМетаСпр = Метаданные.Справочник("ТвойСправочник");
   СЦ = 0;
   Для СЦ = 1 По вМетаСпр.Реквизит() Цикл
       вМетаРекв = вМетаСпр.Реквизит();
       Если вМетаРекв.Периодический = 1 Тогда
           // твой генитальный код...
       КонецЕсли;
       
   КонецЦикла;

+ Покури ка вот это:
Процедура глОчиститьИсторию(ДатаНач="", ДатаКон="", ИмяРеквизита, Объект="") Экспорт
   История = СоздатьОбъект("Периодический");
   Если ПустоеЗначение(Объект) = 0 Тогда
       История.ИспользоватьОбъект(ИмяРеквизита, Объект);
   Иначе
       История.ИспользоватьОбъект(ИмяРеквизита);
   КонецЕсли;
   Если ПустоеЗначение(ДатаНач) = 1 Тогда
       ДатаНач = ПолучитьПустоеЗначение("Дата");
   КонецЕсли;
   Если ПустоеЗначение(ДатаКон) = 1 Тогда
       ДатаКон = ПолучитьПустоеЗначение("Дата");
   КонецЕсли;
   История.ВыбратьЗначения();
   Пока История.ПолучитьЗначение() = 1 Цикл
       Если История.ТекущийДокумент().Выбран() = 1 Тогда
       ИначеЕсли (ПустоеЗначение(ДатаНач) = 0) и (История.ДатаЗнач < ДатаНач) Тогда
       ИначеЕсли (ПустоеЗначение(ДатаКон) = 0) и (История.ДатаЗнач > ДатаКон) Тогда
       Иначе
           История.Удалить();
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры //глОчиститьИсторию
24 andrewks
 
27.10.10
00:32
(23) да не, не трудно, просто хотелось короче. а тут перебирать придется, да еще контролировать Если ПустоеЗначение(ИсторияЦен.ТекущийДокумент())=1 Тогда, и доки отдельно паковать.
25 trdm
 
27.10.10
00:33
(24) надо, че поделаешь...
26 andrewks
 
27.10.10
00:34
(25) согласен, а вот с сабжем голову сломал - не осознаю. вроде как исправил, а вроде как интересно - почему?
27 trdm
 
27.10.10
00:36
(26) Забей.
28 andrewks
 
27.10.10
00:36
(27) ок, спать пошел :)))
29 zak555
 
27.10.10
00:42
(22) как знаешь =)
30 trdm
 
27.10.10
00:51
(21) А вот это правильно, что через "Док". Ибо потом концов не соберешь.
У нас еще есть права на изменение цен в розничных документах. Не всем дано так сказать...
31 1Сергей
 
27.10.10
08:23
(0) см ПриОткрытииИстории
32 andrewks
 
27.10.10
08:26
(31) у меня ее нет. в принципе.
33 1Сергей
 
27.10.10
08:41
(32) чет, не помню. но, вроде, историю нельзя открыть только для чтения. Т.е. для просмотра истории нужны права на изменение справочника
34 andrewks
 
27.10.10
08:53
(33) да есть они. все галки и на справ и на доке. фишка в том что в итоге получил 2 конфы с одинаковыми по мнению 1С правами (да и вообще одинаковых по ее мнению), в одной пашет, в другой нет.
35 andrewks
 
27.10.10
10:51
воспроизвести сабж на типовой ТиС не получилось. видимо, когда-то глюкнул конфигуратор, и в md прописалось что-то не то.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший