Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Программное добавление/изменение дополнительных реквизитов

Программное добавление/изменение дополнительных реквизитов
Я
   logman
 
11.10.21 - 12:04
Всем добрый день!
Уже несколько дней мучаюсь с доп. реквизитам в ERP
К примеру, вот такой код, по непонятным мне причинам не работает:

СкладскаяЯчейка = ЛК_ДоработкиПечатныхФормСервер.ПолучитьЯчейкуПоНомеруПартии(ВыбранноеЗначение.Наименование, Объект.Дата);
        
ДопРеквизитРезервуар = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Резервуар");

ДокументОбъект = РеквизитФормыВЗначение("Объект");
        
НайденныйДопРеквизит = ДокументОбъект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопРеквизитРезервуар));
Если НайденныйДопРеквизит.Количество() Тогда
    СтрокаТЧ = НайденныйДопРеквизит[0];
Иначе                                                      
    СтрокаТЧ = ДокументОбъект.ДополнительныеРеквизиты.Добавить();
    СтрокаТЧ.Свойство = ДопРеквизитРезервуар;
КонецЕсли;
        
Если СкладскаяЯчейка <> Неопределено Тогда
    СтрокаТЧ.Значение = СкладскаяЯчейка;
Иначе
    СтрокаТЧ.Значение = Справочники.СкладскиеЯчейки.ПустаяСсылка();
КонецЕсли;    
        
ДокументОбъект.Записать();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");


Смотрю отладчиком, в тч ДополнительныеРеквизиты все нормально добавляется, но на форме поле доп. реквизита остается пустым
А после ручной записи документа, добавленная строка в тч вовсе исчезает
В чем может быть проблема?
(УправлениеСвойствами.ЗаписатьСвойстваУОбъекта не предлагать, ругается на странную блокировку этого документа мной же, в базе кроме меня никого)
   sqr4
 
1 - 11.10.21 - 12:15
а зачем ты используешь вот это "ДокументОбъект = РеквизитФормыВЗначение("Объект"); " Когда табличная часть доступна и через Объект. А после того как добавишь, нужно будет инициализировать функцию, с помощью которой, заполнится отображение доп реквизита на форме, записывать тут не зачем.

Или вообще нужно понять, какое поле на Форме связано с твоим доп реквизитом и изменять его и вызывать необходимые обработчики изменения этого поля.
Т.е так как ты сейчас пытаешься сделать, не подойдет. Т.к в момент закрытия формы происходит "переброска" значений связанных полей на Форме, в значение ТЧ ДополнительныеРеквизиты. А так как связанные поля у тебя не заполнены, добавленная строка в ТЧ и исчезает.
   banco
 
2 - 11.10.21 - 12:15
(0) УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме
   logman
 
3 - 11.10.21 - 13:19
(2) У меня этот код выполняется в событии обработки выбора поля табличной части, теперь доп. реквизит заполняется, но поле табличной части остается неизменным, пробовал прежде чем вызывать эту процедуру из общего модуля, записывать документ, но не помогло:(
   Документовед
 
4 - 11.10.21 - 13:22
Это потому что ты работаешь с ОБъектом, а тебе надо с формой.

https://infostart.ru/1c/articles/867282/
   logman
 
5 - 11.10.21 - 15:22
Всем большое спасибо за помощь!
С помощью (4) ссылки получилось, правда муторно это всё

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.