обновление данных табличной части при записи документа

1. aidaakylkyzy 30.11.22 11:51 Сейчас в теме
При открытии формы документа заказа клиента, программно создается колонка с фложком в табличной части. Если поставить истина в этой колонке и записать или сохранить документ не закрывая его, флажок становится ложью. Как сохранить данные колонки при записи документа?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Guyer 20 30.11.22 11:54 Сейчас в теме
Если этот флажок - это реквизит ТЧ, то он сохраняется в объекте, а если это просто колонка то она никак не сохранится
+
3. aidaakylkyzy 30.11.22 11:57 Сейчас в теме
(2)
Форма = ЭтаФорма;

Если Форма.Элементы.Найти("ТоварыПереноситьГалочкаТест") = Неопределено Тогда


Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы("ПереноситьГалочкаТест", Новый ОписаниеТипов("Булево"), "Объект.Товары" , "Переносить галочка тест", Ложь));
Форма.ИзменитьРеквизиты(Реквизиты);

ВставитьПеред = Форма.Элементы.Найти("ТоварыОбособленно");
НовыйЭлементФормы = Форма.Элементы.Вставить("ТоварыПереноситьГалочкаТест", Тип("ПолеФормы"), Форма.Элементы.Товары, ВставитьПеред);
НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
НовыйЭлементФормы.ПутьКДанным = "Объект.Товары.ПереноситьГалочкаТест";

КонецЕсли;
+
4. RustamZz 30.11.22 12:02 Сейчас в теме
(3) Повторю предыдущее сообщение
она никак не сохранится
+
8. user5300 1007 30.11.22 12:51 Сейчас в теме
(3) А так не пробовали ?:

Новый РеквизитФормы(,,,,Истина)
+
9. aidaakylkyzy 30.11.22 12:55 Сейчас в теме
10. user5300 1007 30.11.22 12:59 Сейчас в теме
(9) Тогда костыль...
Выгрузить таблицу перед записью и загрузить после записи (Модифицированность = ложь)

Но какой смысл ? при закрытии\открытии формы - снова будут пустые галки
+
12. aidaakylkyzy 30.11.22 13:02 Сейчас в теме
(10) А мне и не нужно при закрытии и открытии, а только при записи
+
5. aidaakylkyzy 30.11.22 12:31 Сейчас в теме
(2)Вроде реквизит табличной части да? Но после записи, и в объекте не сохраняется данные
+
6. user1863362 30.11.22 12:35 Сейчас в теме
(5)
Вроде реквизит табличной части да?

Новый РеквизитФормы

По русски, вроде ж написано, не?
+
7. Sashares 34 30.11.22 12:36 Сейчас в теме
(5)Вы создаете реквизит формы. Реквизиты формы нигде сами по себе не хранятся.
+
11. aidaakylkyzy 30.11.22 13:01 Сейчас в теме
(7) я не закрываю саму форму, а записываю. Где-то в типовой конфигурации, наверное, есть функция которая обновляет ТЧ при записи документа? Или я ошибаюсь?
+
13. spacecraft 30.11.22 13:17 Сейчас в теме
(11) в обработчике модуля формы ПередЗаписьюНаСервере сохраняете куда нибудь нужные данные.
В обработчике ПослеЗаписиНаСерере восстанавливаете.
ПослеЗаписиНаСервере перечитывает данные из объекта в данные формы. Вот в него можно вклиниться.
Но это не делает эти данные записанными в базу.
+
15. Sashares 34 30.11.22 13:52 Сейчас в теме
(11)Нет. При выполнении записи реквизит формы Объект преобразуется в документ объект, и далее документ объект записывается в базу. У документа объекта в табличной части есть только реквизиты, которые заданы в метаданных.
После того как документ объект записан, в После записи на сервере он загружается в объект формы, и т.к. у документа-объекта нет реквизитов формы в табличной части, то они очищаются.
Это стандартное поведение платформы.
Как в 13 посоветовали - сохраняйте Перед записью на сервере, и После записи на сервере заполняйте обратно ваш реквизит формы.
Но после закрытия формы эти данные пропадут.
+
14. igor63 30.11.22 13:24 Сейчас в теме
Я создавал реквизит с типом хранилище значений и его использовал, не знаю подойдет ои под вашу задачу

 &НаСервере
 Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 
	 Если Параметры.Ключ.Пустая() Тогда
		 СтраныПоиска = Неопределено;
	 КонецЕсли;
 КонецПроцедуры   
 
 &НаСервере
 Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) 	
	 ТекущийОбъект.СписокСтранХЗ = новый ХранилищеЗначения(СтраныПоиска);
	 ТекущийОбъект.СписокИБХЗ = новый ХранилищеЗначения(СписокИнформационныхБаз);
 КонецПроцедуры           
 
 &НаСервере
 Процедура ПриЧтенииНаСервере(ТекущийОбъект)	 
	 СтраныПоиска = ТекущийОбъект.СписокСтранХЗ.Получить();
	 СписокИнформационныхБаз = ТекущийОбъект.СписокИБХЗ.Получить();
 КонецПроцедуры
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот