|
Вызвать интерактивное изменение поля в ТЧ дока | ☑ | ||
---|---|---|---|---|
0
Krolik Bezobraznik
06.11.14
✎
10:30
|
Есть обработка в которой я получаю некий список документов.
Задача вызвать процедуру интерактивного изменения поля, для того чтобы отработался код, который там записан. Не УФ. Я решил получить объект. Затем получаю форму дока и пытаюсь вызвать процедуру интерактивного изменения Пока РезЗапроса.Следующий() Цикл ОбъектДока = РезЗапроса.Ссылка.ПолучитьОбъект(); ФормаДока = ОбъектДока.ПолучитьФорму("ФормаДокумента"); ТЧФормы = ОбъектДока.ПолучитьФорму("ФормаДокумента").Материалы; Для каждого СтрокаТЧ ИЗ ТЧФормы Цикл ФормаДока.ЭтотОбъект.МатериалыСтатьяЗатратПриИзменении(Неопределено); КонецЦикла; КонецЦикла; Ругается на то что нет процедуры МатериалыСтатьяЗатратПриИзменении. Как ее вызвать? |
|||
1
Looser-1c
06.11.14
✎
10:32
|
Анафейхоа там .ЭтотОбъект?
|
|||
2
Krolik Bezobraznik
06.11.14
✎
10:36
|
(1) Тестировал, думал может так удасться вызвать =)
|
|||
3
folo
06.11.14
✎
10:37
|
ФормаДока.МатериалыСтатьяЗатратПриИзменении(строкаТЧ.материал);
может вместо неопределено туда ссылку на материал передать? Что сейчас в команде в параметре - элемент ? |
|||
4
Krolik Bezobraznik
06.11.14
✎
10:38
|
(3) Да. Он в процедуре не используется. В процедуре интерактивного изменения есть такой код в начале
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; Следовательно надо еще двигать курсор по ТЧ |
|||
5
butterbean
06.11.14
✎
10:40
|
(4) просто сделай другую процедуру, скопируй в нее код
|
|||
6
Ник второй
06.11.14
✎
10:41
|
(0) Опиши полностью задачу, нафуя этот геморой
|
|||
7
Krolik Bezobraznik
06.11.14
✎
10:41
|
(5) Думал над этим, но там есть определенные сложности. Могу скинуть код из процедуры интерактивного изменения. Может подскажете
Процедура МатериалыСтатьяЗатратПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Материалы", ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете); СтрокаТабличнойЧасти.СтатьяЗатратНДС = СтрокаТабличнойЧасти.СтатьяЗатрат; УстановитьДоступностьСубконто(СтрокаТабличнойЧасти); РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(СтрокаТабличнойЧасти.СчетЗатрат, СтрокаТабличнойЧасти.Субконто1, мКолонкиМатериалы.Субконто1, СтрокаТабличнойЧасти.Субконто2, мКолонкиМатериалы.Субконто2, СтрокаТабличнойЧасти.Субконто3, мКолонкиМатериалы.Субконто3); РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(СтрокаТабличнойЧасти.СчетЗатратНУ, СтрокаТабличнойЧасти.СубконтоНУ1, мКолонкиМатериалы.СубконтоНУ1, СтрокаТабличнойЧасти.СубконтоНУ2, мКолонкиМатериалы.СубконтоНУ2, СтрокаТабличнойЧасти.СубконтоНУ3, мКолонкиМатериалы.СубконтоНУ3); Если мУказаниеПроектовВТабличнойЧастиДокументов Тогда УправлениеПроектами.УстановитьПроектПоУмолчанию(Подразделение, СтрокаТабличнойЧасти.СтатьяЗатрат, СтрокаТабличнойЧасти.Проект); КонецЕсли; КонецПроцедуры // МатериалыСтатьяЗатратПриИзменении() |
|||
8
butterbean
06.11.14
✎
10:43
|
(7) какие сложности? замени ЭлементыФормы.Материалы.ТекущиеДанные на свою СтрокаТЧ и остальные реквизиты документа правильно передай
|
|||
9
Krolik Bezobraznik
06.11.14
✎
10:44
|
(6) Я ж говорю есть перечень доков в которых надо перезаполнить колонки ТЧ. Счет затрат и Счет затрат НУ. Можно конечно тупо им присвоить необходимые значения НО меня смущает то, что есть процедура интерактивного изменения и она помимо изменения этих колонок меняет еще много чего. Вот потому я считаю что было бы корректным вызвать эту процедуру интерактивного изменения.
|
|||
10
Krolik Bezobraznik
06.11.14
✎
10:46
|
(8) Да вот не хочется менять то, что уже работает.
|
|||
11
butterbean
06.11.14
✎
10:47
|
(10) это работает в форме документа и в контексте этой формы, из какой-то левой обработки это не заработает и не должно — переноси код в свою обработку
|
|||
12
Krolik Bezobraznik
06.11.14
✎
10:48
|
(11) ОКЕ надеялся обойтись без этого. но =)) СПС
|
|||
13
folo
06.11.14
✎
10:50
|
можно сделать процедуру, куда передавать либо текущие данные, либо СтрокуТЧ.
код начиная с ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл... И в ней уже все обрабатывать. |
|||
14
hhhh
06.11.14
✎
10:51
|
(12) во-первых вот это вам на фиг не нужно
УстановитьДоступностьСубконто(СтрокаТабличнойЧасти); РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(СтрокаТабличнойЧасти.СчетЗатрат, СтрокаТабличнойЧасти.Субконто1, мКолонкиМатериалы.Субконто1, СтрокаТабличнойЧасти.Субконто2, мКолонкиМатериалы.Субконто2, СтрокаТабличнойЧасти.Субконто3, мКолонкиМатериалы.Субконто3); РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(СтрокаТабличнойЧасти.СчетЗатратНУ, СтрокаТабличнойЧасти.СубконтоНУ1, мКолонкиМатериалы.СубконтоНУ1, СтрокаТабличнойЧасти.СубконтоНУ2, мКолонкиМатериалы.СубконтоНУ2, СтрокаТабличнойЧасти.СубконтоНУ3, мКолонкиМатериалы.СубконтоНУ3); это устанавливает доступность и видимость колонок на форме. |
|||
15
Krolik Bezobraznik
06.11.14
✎
11:08
|
(14) Спс, дельное замечание, я на это внимания не обратил
|
|||
16
Krolik Bezobraznik
06.11.14
✎
11:14
|
Всем спс, не так много кода пришлось переносить. Но все же до последнего надеялся, что можно вызывать процедуру интерактивного изменения поля формы из внешней обработки =(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |