|
бп3:Программное изменение значения реквизита формы. | ☑ | ||
---|---|---|---|---|
0
bambucho
22.10.15
✎
07:48
|
Ребяты,подскажите,как имея ссылку на документ "Поступление на расчетный счет" программно изменить значение реквизита формы "Счет авансов"?
Получаю объект документа по ссылке,но как обратится с этому реквизиту не пойму? |
|||
1
kosts
22.10.15
✎
07:51
|
(0) Если конечно он так называется
Только надо не забыть установить субконто в соответствии с новым счетом. |
|||
2
bambucho
22.10.15
✎
07:54
|
Не будет работать так,я такде прописал,через табло поглядел,его в списке нет.
|
|||
3
bambucho
22.10.15
✎
07:56
|
Через модель необьектного запрса,чтобы добраться до этого реквизита,следует проникнуть в таблицу формы,но как это сделать с целью изменения в цикле...?
|
|||
4
asady
22.10.15
✎
07:57
|
(0) ты это хочешь сделать где?
в модуле этой самой формы? или где. |
|||
5
bambucho
22.10.15
✎
07:59
|
суть:вн.обработка,которая изменяет значение "Счер расчетов" и "Счет авансов" у всех или выбранных доков.
|
|||
6
asady
22.10.15
✎
07:59
|
(5) тогда причем здесь реквизит формы?
|
|||
7
bambucho
22.10.15
✎
07:59
|
Запросом все легко читается:
... "ВЫБРАТЬ | ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом, | ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СчетУчетаРасчетовПоАвансам КАК СчетУчетаРасчетовПоАвансам, ... |
|||
8
bambucho
22.10.15
✎
08:00
|
(6) ок,тогда ка изменить содержимое этого реквизита дока?))
|
|||
9
kosts
22.10.15
✎
08:01
|
(5) Возможно счет находится в ТЧ.
Тогда так как-то
|
|||
10
bambucho
22.10.15
✎
08:04
|
(9) Попробую еще раз,но таким способом обращения не получилось...
|
|||
11
asady
22.10.15
✎
08:10
|
(8) надо узнать идентификаторы реквизитов этого дока
(как они точно называются допустим СчетРасчетовСКонтрагентом и СчетРасчетовПоАвансам) и выполнить следующий код: тОбъект = СсылкаНаОбъект.ПолучитьОбъект(); тОбъект.СчетРасчетовСКонтрагентом = СсылкаНаТвойСчетРасчетовСКонтрагентом; тОбъект.СчетРасчетовПоАвансам = СсылкаНаТвойСчетРасчетовПоАвансам; Если тОбъект.Проведен Тогда РежимЗаписи = РежимЗаписиДокумента.Проведение; Иначе РежимЗаписи = РежимЗаписиДокумента.Запись; КонецЕсли; тОбъект.Записать(РежимЗаписи); |
|||
12
asady
22.10.15
✎
08:13
|
(11)+
судя по (7) у тебя эти реквизиты в ТЧ тогда так: тОбъект = СсылкаНаОбъект.ПолучитьОбъект(); Для каждого стр из тОбъект.РасшифровкаПлатежа Цикл стр.СчетРасчетовСКонтрагентом = СсылкаНаТвойСчетРасчетовСКонтрагентом; стр.СчетРасчетовПоАвансам = СсылкаНаТвойСчетРасчетовПоАвансам; КонецЦикла; Если тОбъект.Проведен Тогда РежимЗаписи = РежимЗаписиДокумента.Проведение; Иначе РежимЗаписи = РежимЗаписиДокумента.Запись; КонецЕсли; тОбъект.Записать(РежимЗаписи); |
|||
13
bambucho
22.10.15
✎
08:16
|
Я пробовал так,не хочет:
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ссылка = ВыборкаДетальныеЗаписи.Ссылка; ДокОбъект = Ссылка.ПолучитьОбъект(); ДокОбъект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); ДокОбъект.Записать(); КонецЦикла; |
|||
14
bambucho
22.10.15
✎
08:18
|
Я пробовал так,не хочет:
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ссылка = ВыборкаДетальныеЗаписи.Ссылка; ДокОбъект = Ссылка.ПолучитьОбъект(); ДокОбъект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); ДокОбъект.Записать(); КонецЦикла; |
|||
15
asady
22.10.15
✎
08:19
|
(13)-(14) см (12)
|
|||
16
bambucho
22.10.15
✎
08:28
|
Не догоняю)
1)ссылку на - "СсылкаНаТвойСчетРасчетовСКонтрагентом" сформировал запрос? |
|||
17
asady
22.10.15
✎
08:31
|
(16) в твоем случае это ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
|
|||
18
bambucho
22.10.15
✎
08:55
|
)))
лучше так: 1.Есть у.форма вн.обработки,в элементах/реквизитах которой я задаю "Счет расчетов" и "Счет авансов" по средством обращения к "ПлануСчетовСсылка"-т.е. выбирая нужный счет/субсчет,(минуя нюансы деректив препроцессора) далее передаю их в цикл,который может обратиться к доку по ссылке ну и еще получить сами СчетУчетаРасчетовСКонтрагентом и СчетУчетаРасчетовПоАвансам (полученные запросом),подскажите как должен выглядеть код цикла: ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ссылка = ВыборкаДетальныеЗаписи.Ссылка; ДокОбъект = Ссылка.ПолучитьОбъект(); ДокОбъект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); ДокОбъект.Записать(); КонецЦикла; зы:сложно пока я ориентируюсь в нюансах) |
|||
19
asady
22.10.15
✎
08:58
|
(18) в (12) код практически уже тебе написан ....
|
|||
20
bambucho
22.10.15
✎
08:59
|
(19)
)) |
|||
21
bambucho
22.10.15
✎
08:59
|
пойду в метро втыкать)
|
|||
22
asady
22.10.15
✎
09:00
|
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Ссылка = ВыборкаДетальныеЗаписи.Ссылка; ДокОбъект = Ссылка.ПолучитьОбъект(); Для каждого стр из ДокОбъект.РасшифровкаПлатежа Цикл стр.СчетРасчетовСКонтрагентом = СсылкаНаТвойСчетРасчетовСКонтрагентом; стр.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); КонецЦикла; Если тОбъект.Проведен Тогда РежимЗаписи = РежимЗаписиДокумента.Проведение; Иначе РежимЗаписи = РежимЗаписиДокумента.Запись; КонецЕсли; ДокОбъект.Записать(РежимЗаписи); КонецЦикла; |
|||
23
ibreiter
22.10.15
✎
09:04
|
(18) А вы на форме счета задаете и их же ищете потом еще по коду?
|
|||
24
vladko
22.10.15
✎
09:09
|
(18) тебе же пишут, что надо не только реквизит документа, но ещё поправить табличную часть РасшифровкаПлатежа. Только тогда всё изменится
|
|||
25
bambucho
22.10.15
✎
09:23
|
(23) нет,это для теста я искал в коде,а задавать через ф. Буду
|
|||
26
bambucho
22.10.15
✎
09:25
|
(24) именно на расшифровке я и забуксавал...
|
|||
27
bambucho
22.10.15
✎
09:29
|
Тока понять механизм ее могу,зачем создавать вооденный цикл для Расш.Плат.,почему нелься сразу обратится к к реквизитам счетов на форме,в чем хитрость?
|
|||
28
bambucho
22.10.15
✎
09:30
|
Тока понять механизм ее не могу,зачем создавать вооденный цикл для Расш.Плат.,почему нелься сразу обратится к к реквизитам счетов на форме,в чем хитрость?
|
|||
29
asady
22.10.15
✎
09:32
|
(27) потому что это табличная часть и она может содержать несколько строк.
|
|||
30
Kiks
22.10.15
✎
09:32
|
Проще воспользоваться общей процедурой СчетаУчетаПоУмолчанию.
|
|||
31
bambucho
22.10.15
✎
09:32
|
Простите с телефона пишу...дебильный браузер...
|
|||
32
ibreiter
22.10.15
✎
09:33
|
(27) Нету у вас формы, тем более ее реквизитов, забудьте про нее...об объекте речь идет
|
|||
33
bambucho
22.10.15
✎
09:37
|
(32) ок,буду пробовать
|
|||
34
bambucho
22.10.15
✎
10:52
|
ругается бп3:
{Форма.Форма.Форма(44)}: Поле объекта не обнаружено (СчетРасчетовСКонтрагентом) стр.СчетРасчетовСКонтрагентом = СчетАвансов; |
|||
35
bambucho
22.10.15
✎
10:55
|
в цикл ТЧ "ДокОбъект.РасшифровкаПлатежа" в табло нормально раскрываетм реквизиты,но по следующим строчкам:
Так: стр.СчетРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); стр.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); или так: стр.СчетРасчетовСКонтрагентом = СчетАвансов; //выб.счета с формы обраб. стр.СчетУчетаРасчетовПоАвансам = СчетРасчетов; //выб.счета с формы обраб. не идет... |
|||
36
bambucho
22.10.15
✎
10:57
|
точнее,в табло "СчетРасчетовСКонтрагентом" выглядит как группа (плисик,раскрывающий дерево),может в этом дереве нужно выбрать что то?
|
|||
37
bambucho
22.10.15
✎
10:58
|
точнее,в табло "СчетРасчетовСКонтрагентом" выглядит как группа (плюсик,раскрывающий дерево),может в этом дереве нужно выбрать что то?
|
|||
38
bambucho
22.10.15
✎
11:11
|
как я зол..))
ребяты где опять я буксую? Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ссылка = ВыборкаДетальныеЗаписи.Ссылка; ДокОбъект = Ссылка.ПолучитьОбъект(); Для каждого стр из ДокОбъект.РасшифровкаПлатежа Цикл стр.СчетРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); стр.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); КонецЦикла; Если ДокОбъект.Проведен Тогда РежимЗаписи = РежимЗаписиДокумента.Проведение; Иначе РежимЗаписи = РежимЗаписиДокумента.Запись; КонецЕсли; ДокОбъект.Записать(РежимЗаписи); КонецЦикла; |
|||
39
bambucho
22.10.15
✎
11:25
|
Подскажите кто,почему не записывается значение в:
стр.СчетРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); бьет ошибку: {Форма.Форма.Форма(40)}: Поле объекта не обнаружено (СчетРасчетовСКонтрагентом) стр.СчетРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); |
|||
40
bambucho
22.10.15
✎
11:32
|
вроде поехало...
|
|||
41
asady
22.10.15
✎
11:34
|
(40) я тебе специально оставил некоторые несоответствия имен реквизитов чтобы ты не просто так коопипастил а чуточку хоть подумал
|
|||
42
bambucho
22.10.15
✎
11:38
|
все ок получилось)
СПАСИБО ВАМ!) (41) имеенооо))) в них и нашел косяк) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |