|
Обновление доп. реквизита на форме | ☑ | ||
---|---|---|---|---|
0
Loko
22.08.16
✎
13:00
|
всем привет!
есть справочник "договоры контрагентов" (1С erp 8.3), добавлен доп. реквизит "Внутренний рег.номер". нужно чтобы при записи в форме элемента программно заполнялся этот реквизит и отображался в форме. код: &НаСервере Процедура ЗарегистрироватьНомер() СправочникОбъект = РеквизитФормыВЗначение("Объект"); СвойствоРегНомер = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Внутренний рег.номер (Договоры с контрагентами)",Истина); НоваяСтрока = СправочникОбъект.ДополнительныеРеквизиты.Добавить(); //НоваяСтрока = Объект.ДополнительныеРеквизиты.Добавить(); НоваяСтрока.Свойство = СвойствоРегНомер; НоваяСтрока.Значение = "тест"; ЗначениеВРеквизитФормы(СправочникОбъект, "Объект"); КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ЗарегистрироватьНомер(); КонецПроцедуры в отладчике вижу, что запись в таблицу идет. но в таблицу в итоге не добавляется запись и соответственно на форме не отображается. подскажите, пожалуйста, что делаю не так? |
|||
1
butterbean
22.08.16
✎
13:02
|
убери всю шелуху с СправочникОбъект, просто пиши НоваяСтрока = ДополнительныеРеквизиты.Добавить();
|
|||
2
Loko
22.08.16
✎
13:07
|
&НаСервере
Процедура ЗарегистрироватьНомер() НоваяСтрока = Объект.ДополнительныеРеквизиты.Добавить(); НоваяСтрока.Свойство = СвойствоРегНомер; НоваяСтрока.Значение = "тест"; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ЗарегистрироватьНомер(); КонецПроцедуры не идет |
|||
3
RomanYS
22.08.16
✎
13:11
|
(2) что значит "не идет"? Результат запросом проверяешь?
|
|||
4
Loko
22.08.16
✎
13:14
|
(3) нажимаю записать. в отладчике вижу, что в ДополнительныеРеквизиты запись добавлена. а после записи (после отладки) в элементе запись не добавлена почему то.
|
|||
5
RomanYS
22.08.16
✎
13:20
|
(4) В процессе записи вызывается много обработчиков как у формы так и у объекта. Пройдись по всем, найди где данные удаляются.
|
|||
6
Loko
22.08.16
✎
13:30
|
&НаСервере
Процедура ЗарегистрироватьНомер() //СвойствоРегНомер = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Внутренний рег.номер (Договоры с контрагентами)",Истина); //НоваяСтрока = Объект.ДополнительныеРеквизиты.Добавить(); //НоваяСтрока.Свойство = СвойствоРегНомер; //НоваяСтрока.Значение = "тест"; Объект.Наименование = "тест"; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ЗарегистрироватьНомер(); КонецПроцедуры сделал для наименования. все работает. почему с таблицей значения. не получается? |
|||
7
Loko
22.08.16
✎
13:47
|
(5) ага, нашел
|
|||
8
Loko
22.08.16
✎
14:16
|
еще нужна помощь)
в общем, там перед записью на сервере выполняется процедура, которая очищает табличную часть "доп. реквизиты" и потом заполняет ее значениями из формы. т.е. для меня нужно получается программно заполнить это значение на форме? как это сделать?.. |
|||
9
butterbean
22.08.16
✎
14:21
|
(8) нет под рукой erp, но можно просто посмотреть что за элемент лежит на форме, это скорее всего таблицазначений, и в него добавлять строки
|
|||
10
butterbean
22.08.16
✎
14:22
|
(9) точнее в реквизит формы, с которым связан элемент
|
|||
11
Loko
22.08.16
✎
14:49
|
(10) да, это табл. часть. но на форме то ее нет же.
проблема в том, что доп. реквизиты на форме добавлены через "изменить форму". и по сути это уже не табл. часть, а именно реквизиты, но на форме их "как бы" нет. вот в отладчике "форма": http://upload.akusherstvo.ru/image1111880.png |
|||
12
Loko
22.08.16
✎
16:02
|
помогите)
|
|||
13
polosov
22.08.16
✎
16:16
|
(12) Кури общие модули УправлениеСвойствами*
Не изобретай велосипеды. |
|||
14
Мимохожий Однако
22.08.16
✎
16:18
|
Добавь Записать()
|
|||
15
Loko
23.08.16
✎
03:15
|
сделал. кому мож интересно будет.
&НаСервере Процедура ЗарегистрироватьНомер() СвойствоРегНомер = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Внутренний рег.номер (Договоры с контрагентами)",Истина); Отбор = Новый Структура(); Отбор.Вставить("Свойство", СвойствоРегНомер); НайденныеСтроки = ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); Если НайденныеСтроки.Количество() > 0 тогда Этаформа[НайденныеСтроки[0].ИмяРеквизитаЗначение]= "тест"; КонецЕсли; КонецПроцедуры |
|||
16
Горогуля
23.08.16
✎
03:18
|
а ничего, что данные не меняются?
|
|||
17
Loko
23.08.16
✎
03:28
|
(16) в смысле?
|
|||
18
Loko
23.08.16
✎
03:29
|
(16) меняются. там выше писал в (8)
|
|||
19
Горогуля
23.08.16
✎
03:50
|
>программно заполнить это значение на форме
уговорил |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |