|
Как при проведении прописать движения рег., имея переменную с его именем? | ☑ | ||
---|---|---|---|---|
0
Den
14.11.04
✎
16:01
|
Сабж таков. Делаю технологическое перепроведение с заменой элементов справочника. Перед проведением считываю все движения всех регистров нужного документа в ТЗ, выставляю глобальный флаг и перепровожу документ. Но при этом возникает проблема. Обычно в модуле проведения пишется что-то вроде
Конт.Регистр.ОстаткиТовара.ДвижениеПриходВыполнить() или Конт.Регистр.Взаиморасчеты.ДвижениеРасходВыполнить() Все это здорово, но... Имена регистров у меня в ТЗ, движения регистров у переменных, созданных функцией СоздатьОбъект не прописываются и вообще все это делается только в модуле документа. Как быть? Каким образом, имея в переменной имя регистра, прописать движения? Неужели придется шлепать кошмарную конструкцию Если ИмяРегистра = "Касса" Тогда ИначеЕсли ИмяРегистра = "Взаиморасчеты" Тогда ... Это же ужас! Никакой универсальности! Подскажите, как этого можно избежать? |
|||
1
Den
14.11.04
✎
16:12
|
Ау!
|
|||
2
SnarkHunter
14.11.04
✎
16:40
|
А кому сейчас легко...
|
|||
3
Den
15.11.04
✎
12:37
|
(2) Так вопрос не в этом, а в том, что - можно ли параметризовать запись движений в регистры так же как это делается при чтении (через метаданные)?
|
|||
4
Den
15.11.04
✎
12:50
|
Чувствую я, сегодня ни до кого не докричаться :(
Ну что, так и будете все молчать? Ну хоть что-нибудь кто-нибудь скажет по существу? Ну хоть вопросы наводящие бы позадавали. А то как контекст обсуждать со сползанием на модеров и не модеров - так это запросто, а как что-нибудь сказать - так нет никого :( |
|||
5
SKrin
15.11.04
✎
12:52
|
НужныйРег=СоздатьОбъект("Регистр."+ИмяРегистра);
|
|||
6
Бивень
15.11.04
✎
12:52
|
Регистр=Регистр.ПолучитьАтрибут(ИмяРегистра);
... Регистр.ДвижениеРасходВыполнить(); |
|||
7
Пролд
15.11.04
✎
12:52
|
(4) Невиноватый я, я в ситуацию вникал. А сказать что нибудь - запросто.
Например - запусти отладчик, попробуй посмотреть метаданные для регистров. |
|||
8
Бивень
15.11.04
✎
12:54
|
(6)+ Т.е. слово Регистр зарезервировано и использовать его в качестве переменной не стоит. :))
|
|||
9
Den
15.11.04
✎
13:04
|
(6,8) Вот именно. Тем более что надо писать Регистр.ОстаткиТовара.ДвижениеРасходВыполнить. Но вот как раз это-то и не устраивает
|
|||
10
Бивень
15.11.04
✎
13:05
|
(9) Смешной ты клоун :))
Рег=Регистр.ПолучитьАтрибут(ИмяРегистра); ... Рег.ДвижениеРасходВыполнить(); |
|||
11
Витаэль
15.11.04
✎
13:05
|
9. А ты Р - пиши латинской P (там, где русская З)
|
|||
12
Бивень
15.11.04
✎
13:06
|
(11) :))
|
|||
13
Den
15.11.04
✎
13:09
|
(10-12) Вы о чем? Кто-то чего-то недопонимает. По моему - не я
|
|||
14
Бивень
15.11.04
✎
13:12
|
(13) Тогда ты - идиот!
А если ты с этим утверждением не согласен, думай! |
|||
15
Den
15.11.04
✎
13:13
|
(14) Эй! Полегче! Могу доказать, что это ты - идиот! Судя по твоим постам (и не только в этой ветке :)
|
|||
16
Бивень
15.11.04
✎
13:15
|
(15) Да, я тоже идиот!
|
|||
17
Бивень
15.11.04
✎
13:16
|
(16)+ И постольку поскольку, мы идиоты должны помогать друг другу, я тебе готов помочь ...
Что тебе не понятно в кусочке из (10)? |
|||
18
Den
15.11.04
✎
13:23
|
(17) Ты не вник в ситуацию. Что это такое Регистр.ПолучитьАтрибут(ИмяРегистра)?
Ты даешь изначально неверный совет, потому что такой синтаксис возможен только в одном случае - если перед этим написать Регистр = СоздатьОбъект("Регистр."+ИмяРегистра) Но в этом случае невозможно выполнить движения регистра, поскольку он не из контекста модуля документа - а мне надо именно это. Исходя из вышесказанного твоя последняя строчка из (10) абсолютно бессмысленна, так как ничего, кроме ошибки она не вызовет. Затем, на кой мне получать атрибут с именем регистра? мне нужно записать атрибут с именем ресурса, измерения и реквизита из ТЗ, с тем, чтобы после этого выполнить движение. Меня не очень устраивает ситуация, когда в обработке придется писать кошмарную конструкцию Если ... Тогда ... ИначеЕсли..., потому что невозможно добиться универсальности обработки и под каждую конфигу ее придется точить заново с учетом имеющихся регистров в этой самой конфиге |
|||
19
Бивень
15.11.04
✎
13:26
|
(18) Мля ...
Жаль я этого не знал ... Наверно, это из за моего незнания оно пять лет работало у меня ... |
|||
20
Den
15.11.04
✎
13:27
|
Волшебник! Может ты нас рассудишь? Или подскажешь чего дельного?
|
|||
21
Бивень
15.11.04
✎
13:32
|
(20) Den, ТЫ - ИДИОТ!
|
|||
22
Den
15.11.04
✎
13:37
|
Спасибо, конечно, но я и сам уже понял :)))))))
Счас проверил все это на пробной конфиге - работает (8-)) |
|||
23
Den
15.11.04
✎
13:37
|
Прикольно получилось
// ******************** // Процедура ОбработкаПроведения() //Здесь следует написать алгоритм проведения документа Рег = Регистр.ПолучитьАтрибут("Новый1"); Рег.Новый1 = Новый1; Рег.Количество = 1; Рег.ДвижениеПриходВыполнить(); КонецПроцедуры Спасибо, Бивень! |
|||
24
Бивень
15.11.04
✎
13:39
|
Пожалуйста :))
|
|||
25
SnarkHunter
15.11.04
✎
13:52
|
А как насчет (15)?
|
|||
26
Den
15.11.04
✎
13:53
|
(25) А ты сам хоть что-нить умного сказал?
|
|||
27
Пролд
15.11.04
✎
13:54
|
Дэн, ты (21) бивню не прощай
|
|||
28
Den
15.11.04
✎
13:55
|
(27) Прощу. Потому что только он и сказал что-то дельное и как раз то, что мне надо было
|
|||
29
SnarkHunter
15.11.04
✎
13:56
|
(26)А как же... И не раз...
|
|||
30
Den
15.11.04
✎
13:56
|
(29) Да? Что-то я в этой ветке этого не заметил :)
|
|||
31
Пролд
15.11.04
✎
13:57
|
Нет, он тебя оскорбил. Ты, че не пацан?
|
|||
32
Den
15.11.04
✎
13:59
|
(31) Не, я пацан, но... Я действительно оказался идиотом в том, что так долго упирался, вместо того, чтобы взять и попробовать. А в остальном, он конечно не прав :) Но он остального и не имел в виду :))) А упирался я здорово :))))))
|
|||
33
SnarkHunter
15.11.04
✎
13:59
|
(30)Ты вообще мало чего замечаешь... Ибо агрессивен без меры...
|
|||
34
Бивень
15.11.04
✎
14:00
|
(32) А в чём я был не прав?
|
|||
35
Den
15.11.04
✎
14:01
|
(33) Ух ты! Вот уж не замечал за собой :) А по поводу агрессии - так это к 427...
|
|||
36
Den
15.11.04
✎
14:01
|
(34) Ну вот. Теперь ты тупишь :)
|
|||
37
Den
15.11.04
✎
14:03
|
Ну ладно. Хватит флейма. Пошел я. Обедать. Вот :)
|
|||
38
Бивень
15.11.04
✎
14:05
|
(36) Да уж ...
Вместо того чтоб спрашивать "в чём я был не прав?", нужно было внимательно перечитать твоё (32), из которого чётко видно, что не прав я "в остальном" ... Прости уж меня, идиота ещё раз ... Мы идиоты должны уметь прощать друг друга ... |
|||
39
Den
15.11.04
✎
14:07
|
Прощаю :))) И ты меня прости :)))
Ну вот, щас расплачусь :()) |
|||
40
Пролд
15.11.04
✎
14:08
|
(39) обедать иди
|
|||
41
SnarkHunter
15.11.04
✎
14:08
|
(35)Со стороны виднее...
|
Форум | Правила | Описание | Реклама | Секции | Поиск | Книга знаний | Вики-миста |