|
Программное добавление/изменение дополнительных реквизитов |
☑ |
0
logman
11.10.21
✎
12:04
|
Всем добрый день!
Уже несколько дней мучаюсь с доп. реквизитам в ERP
К примеру, вот такой код, по непонятным мне причинам не работает:
СкладскаяЯчейка = ЛК_ДоработкиПечатныхФормСервер.ПолучитьЯчейкуПоНомеруПартии(ВыбранноеЗначение.Наименование, Объект.Дата);
ДопРеквизитРезервуар = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Резервуар");
ДокументОбъект = РеквизитФормыВЗначение("Объект");
НайденныйДопРеквизит = ДокументОбъект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопРеквизитРезервуар));
Если НайденныйДопРеквизит.Количество() Тогда
СтрокаТЧ = НайденныйДопРеквизит[0];
Иначе
СтрокаТЧ = ДокументОбъект.ДополнительныеРеквизиты.Добавить();
СтрокаТЧ.Свойство = ДопРеквизитРезервуар;
КонецЕсли;
Если СкладскаяЯчейка <> Неопределено Тогда
СтрокаТЧ.Значение = СкладскаяЯчейка;
Иначе
СтрокаТЧ.Значение = Справочники.СкладскиеЯчейки.ПустаяСсылка();
КонецЕсли;
ДокументОбъект.Записать();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
Смотрю отладчиком, в тч ДополнительныеРеквизиты все нормально добавляется, но на форме поле доп. реквизита остается пустым
А после ручной записи документа, добавленная строка в тч вовсе исчезает
В чем может быть проблема?
(УправлениеСвойствами.ЗаписатьСвойстваУОбъекта не предлагать, ругается на странную блокировку этого документа мной же, в базе кроме меня никого)
|
|
1
sqr4
11.10.21
✎
12:15
|
а зачем ты используешь вот это "ДокументОбъект = РеквизитФормыВЗначение("Объект"); " Когда табличная часть доступна и через Объект. А после того как добавишь, нужно будет инициализировать функцию, с помощью которой, заполнится отображение доп реквизита на форме, записывать тут не зачем.
Или вообще нужно понять, какое поле на Форме связано с твоим доп реквизитом и изменять его и вызывать необходимые обработчики изменения этого поля.
Т.е так как ты сейчас пытаешься сделать, не подойдет. Т.к в момент закрытия формы происходит "переброска" значений связанных полей на Форме, в значение ТЧ ДополнительныеРеквизиты. А так как связанные поля у тебя не заполнены, добавленная строка в ТЧ и исчезает.
|
|
2
banco
11.10.21
✎
12:15
|
(0) УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме
|
|
3
logman
11.10.21
✎
13:19
|
(2) У меня этот код выполняется в событии обработки выбора поля табличной части, теперь доп. реквизит заполняется, но поле табличной части остается неизменным, пробовал прежде чем вызывать эту процедуру из общего модуля, записывать документ, но не помогло:(
|
|
4
Документовед
11.10.21
✎
13:22
|
Это потому что ты работаешь с ОБъектом, а тебе надо с формой.
https://infostart.ru/1c/articles/867282/
|
|
5
logman
11.10.21
✎
15:22
|
Всем большое спасибо за помощь!
С помощью (4) ссылки получилось, правда муторно это всё
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой