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

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

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


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

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

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

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

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

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

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

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

Инженер 1С
Ессентуки
зарплата от 120 000 руб. до 144 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб. до 250 000 руб.
Полный день

Программист 1С
Краснознаменск (Московская обл.)
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Краснознаменск (Московская обл.)
зарплата от 50 000 руб. до 100 000 руб.
Полный день