![]() |
![]() |
|
v7: пересчет справочника | ☑ | ||
---|---|---|---|---|
0
kouki
14.07.11
✎
10:28
|
В справочнике рабочие есть реквизит тариф типа справочника тарифы и разряды. Если меняю в справочнике тарифы тариф (к примеру 3400 на 3450), то в справочнике рабочие калонка тариф тоже должна изменяться. пишу процедуру:
спрР = создатьобъект("справчник.рабочие"); СпрТ = Создатьобъект("справочник.тарифы"); спрР.выбратьэлементы(); спрТ.ВыбратьЭлементы(); Пока СпрР.получитьэлемент() = 1 Цикл пока СпрТ.получитьэлемент()=1 Цикл Если (СпрТ.текущийэлемент().тариф = спрР.текущийэлемент().тариф)И (спрТ.текущийэлемент().Разряд = спрР.текущийэлемент.разряд) тогда СпрР.текущийэлемет().тариф= спрР.текущийЭлемент().тариф конецесли; ну и так далее .. КОроче элементы выборки все нули.. почему???? |
|||
1
povar
14.07.11
✎
10:30
|
""почему?..." как обычно
|
|||
3
floody
14.07.11
✎
10:32
|
во первых ошибок до и больше, Ctrl-C Ctrl-V из пофигуратора не пробовал?
|
|||
4
Denp
14.07.11
✎
10:32
|
это вообще убило: СпрР.текущийэлемет().тариф= спрР.текущийЭлемент().тариф
|
|||
5
floody
14.07.11
✎
10:33
|
похоже нас тонко троллят :)
|
|||
8
kouki
14.07.11
✎
10:35
|
Извините.. первый раз здесь вручную пишу)))) счас скинунормальный код)
|
|||
9
filh
14.07.11
✎
10:35
|
(0) это не ваше, бегите от туда...
|
|||
10
filh
14.07.11
✎
10:35
|
(8) вот это уже пугает:
>>счас скинунормальный код) |
|||
12
ZDenis
14.07.11
✎
10:37
|
(0) " Если меняю в справочнике тарифы тариф (к примеру 3400 на 3450), то в "
насколько я понимаю после такой замены условие - "СпрТ.текущийэлемент().тариф = спрР.текущийэлемент().тариф" не выполниться, т.к в одном ты уже поменял, а второе только хочешь поменять )) |
|||
13
kouki
14.07.11
✎
10:38
|
Процедура ПерезаписатьТарифы()
СпрР = СоздатьОбъект("Справочник.Рабочий"); СпрТ = СоздатьОбъект("Справочник.Тариф"); Н = 1 ;// номер строки СпрТ.ВыбратьЭлементы(); пока СпрР.НайтиПоКоду(Н) = 1 Цикл Пока СпрТ.ПолучитьЭлемент() = 1 Цикл Если СпрТ.ТекущийЭлемент().Наименование = СпрР.ТекущийЭлемент().НазвТариф Тогда Если СпрТ.ТекущийЭлемент().Разряд = СпрР.ТекущийЭлемент().Разряд1 Тогда СпрР.Разряд1 = СпрТ.ТекущийЭлемент().Разряд; КонецЕсли; КонецЕсли; КонецЦикла; Н=Н+1; КонецЦикла; КонецПроцедуры |
|||
14
kouki
14.07.11
✎
10:39
|
(12) там ошибка . не усмотрел)))
|
|||
15
kouki
14.07.11
✎
10:40
|
(10). Я бы с удовольствием убежал. Но есть такая вещь как распределение((. ТАк что придется учить. в универе не преподавали. В городе курсов нету блин((
|
|||
16
ЧеловекДуши
14.07.11
✎
10:41
|
(13)Не пробовал делать вместо "СпрТ.ТекущийЭлемент().Наименование"
ТекЭлемТ = СпрТ.ТекущийЭлемент() И далее работаешь только с переменной "ТекЭлемТ" |
|||
18
andrewks
14.07.11
✎
10:42
|
прекратите флуд в тематической ветке
|
|||
19
povar
14.07.11
✎
10:43
|
(18) помоги автору и флуда не будет ))
|
|||
20
kouki
14.07.11
✎
10:44
|
Скажите только почему эл-ты выборки равны 0.
|
|||
21
ZDenis
14.07.11
✎
10:45
|
(0) Условие задачи еще раз изложи.
"В справочнике рабочие есть реквизит тариф типа справочника тарифы и разряды. Если меняю в справочнике тарифы тариф (к примеру 3400 на 3450), то в справочнике рабочие калонка тариф тоже должна изменяться. пишу процедуру: " В справочнике "Рабочие" есть реквизит "Тариф", тип (Справочник.Тарифы) В справочнике "Тарифы" ты изменил тариф и хочешь чтобы он изменился в справочнике "Рабочие"? Так? Если все так, то он уже у тебя изменился. |
|||
22
kouki
14.07.11
✎
10:50
|
(21). тобишь я правильно написал????
СпрР.ТекущийЭлемент().НазвТариф постоянно пустой. |
|||
23
Godofsin
14.07.11
✎
10:51
|
+(21) >то в справочнике рабочие калонка тариф тоже должна изменяться.
Шо это за "калонка" в справочнике? У справочников нет табличной части. |
|||
24
kouki
14.07.11
✎
10:52
|
в форме списка.
|
|||
25
Godofsin
14.07.11
✎
10:52
|
(22) В 21 говорится о том, что если ты меняешь значенив спр тарифов, эти значения поменяются и в спр рабочие. Слово "Ссылка" тебе о чем нибудь говорит?
|
|||
26
kouki
14.07.11
✎
10:55
|
(25).Т-ю Мать!!!!!!!!! Блин а тут числа стоят. Блин!!!!! И кто ж их туда поставил????!!!!!!!
|
|||
27
Godofsin
14.07.11
✎
10:56
|
+(25) То есть никаких процедур не надо. Это исходя из твоего топика. Но может ты чего неправильно объяснил?
|
|||
28
kouki
14.07.11
✎
11:00
|
(27). Ну может и не правильно... Значит Есть справочник рабочие. ТАм идет ФИО работника его разряд и тариф. Ну и работников там есть около 1000. ну кто-то может при одинаковом разряде иметь одинаковый тариф.
Ну и поменяли мы тариф В справочнике тарифы. И не спорю по идее должно меняться. В справочниике рабочие тариф и разряд типа числ. Ну и какя тут ссылка может быть??!! |
|||
29
kouki
14.07.11
✎
11:03
|
И что самое прикольное тот кто делал эту конфигурацию даже не придусмотрел чтобы поля в справочнике автозаполнялись привыборе названия тарифа..
|
|||
30
vladko
14.07.11
✎
11:04
|
(13) убери .ТекущийЭлемент() = он в данном случае лишний, когда ты работаешь с реквизитами справочников.
И УЧИСЬ ПОЛЬЗОВАТЬСЯ ОТЛАДЧИКОМ, чтобы не задавать вопрсы, типа, почему у меня не выполняется цикл |
|||
31
Godofsin
14.07.11
✎
11:04
|
(28) А ты в (0) пишешь:
>В справочнике рабочие есть реквизит тариф типа справочника тарифы и разряды. Точнее описывай в следующий раз. (29) Ты выбираешь в спр. рабочие название тарифа из спр. Тарифы? |
|||
32
palpetrovich
14.07.11
✎
11:08
|
убиться ап стену
|
|||
33
kouki
14.07.11
✎
11:10
|
(31)
Да название. |
|||
34
alkov
14.07.11
✎
11:10
|
Может просто забыл СпрР.Записать() ?
|
|||
35
kouki
14.07.11
✎
11:11
|
(30). ТекущийЭлемент() при поиске только????
|
|||
36
alkov
14.07.11
✎
11:12
|
(35) Везде. В этом коде ТекущийЭлемент() не нужен вообще нигде
|
|||
37
Godofsin
14.07.11
✎
11:13
|
(33) Б**дь, вот тебе и ссылка! От нее и пляши!
|
|||
38
kouki
14.07.11
✎
11:49
|
Сделал!!!!
вот что надо было походу) Процедура ПерезаписатьТарифы() СпрР = СоздатьОбъект("Справочник.Рабочий"); СпрТ = СоздатьОбъект("Справочник.Тариф"); Н = 0 ;// номер строки СпрР.ВыбратьЭлементы(); СпрТ.ВыбратьЭлементы(); пока СпрР.ПолучитьЭлемент()= 1 Цикл СпТариф = СпрР.НазвТариф; Если СпрТ.НайтиПоКоду(СпТариф.Код) = 1 Тогда Если СпрТ.ТекущийЭлемент().Разряд = СпТариф.Разряд Тогда СпрР.Разряд1 = СпрТ.ТекущийЭлемент().Разряд; СпрР.Тариф1 = СпрТ.ТекущийЭлемент().Тариф; СпрР.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; Предупреждение("ЗАкончено !!!!"); КонецПроцедуры |
|||
39
kouki
14.07.11
✎
11:50
|
Н удалить . ненужная переменная))
|
|||
40
ZDenis
14.07.11
✎
12:01
|
(38) У тебя СпрР.НазвТариф это ничто иное как твой тариф и все что надо было сделать это
СпрР.ВыбратьЭлементы(); пока СпрР.ПолучитьЭлемент()= 1 Цикл СпрР.Разряд1 = СпрР.НазвТариф.Разряд; СпрР.Тариф1 = СпрР.НазвТариф.Тариф; СпрР.Записать(); КонецЦикла; |
|||
41
kouki
14.07.11
✎
12:15
|
Блин...( Да а я навернул то((( Но кстати скорость и того и другого не радует.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |