Запись в регистр сведений через форму обработки

1. ruslanb 18.10.24 14:32 Сейчас в теме
Добрый день.
Не понимаю как записать в регистр сведений запись, работая с ней через МенеджерЗаписи добавленый на форму.

Есть 3 регистра сведений и им на форме соответствуют шапка и 2 табличных части:
НастройкиРасчета - шапка
УсловияРасчета - условия расчета
ШкалаРасчета - шапка расчета
(скриншот 1);

Есть обработка с помощью которой заносится информация о поставщике, периодичности и тд и привязанных к этой записи условия расчета по определенным контрагентам и шкала расчета. Табличные части "условия" и "шкала" тоже записываются в регистры сведений, но с ними проблем нет, они записываются как наборы.
Но шапка этой формы должна записываться как отдельная запись.

При команде "записать", я иду на сервер и записываю регистры. Для каждого реквизита формы есть алгоритм
Если ЗначениеЗаполнено(ПериодичностьРасчета) Тогда
		НастройкиРасчетаSC.ПериодичностьРасчета = ПериодичностьРасчета;
	Иначе
		НастройкиРасчетаSC.ПериодичностьРасчета = Перечисления.Периодичность.ПустаяСсылка();
	КонецЕсли;

и так далее для каждого элемента шапки формы.
Запись шапки таким образом не происходит. Подсмотрел такое решение в этой теме.
Работаю с РС в таком ключе первый раз. Если глянуть тип МенеджераЗаписи отладчиком, то тип у него "ДанныеФормыСтруктура" (скриншот 2).
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. ruslanb 18.10.24 17:37 Сейчас в теме
Решил так:
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:

ВыборкаНастройкиРасчетаSC = Результаты[4].Выбрать();
	
	МенеджерЗаписи = РегистрыСведений.НастройкиРасчетаSC.СоздатьМенеджерЗаписи();
	Если ВыборкаНастройкиРасчетаSC.Следующий() Тогда
		ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаНастройкиРасчетаSC);
		МенеджерЗаписи.Прочитать();
		ЗначениеВРеквизитФормы(МенеджерЗаписи, "НастройкиРасчетаSC");
	КонецЕсли;


А при записи:
	МенеджерЗаписи = РеквизитФормыВЗначение("НастройкиРасчетаSC");
		МенеджерЗаписи.Записать();


Всем спасибо
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2033930 18.10.24 15:08 Сейчас в теме
(1)
Если глянуть тип МенеджераЗаписи отладчиком, то тип у него "ДанныеФормыСтруктура"
То есть это не МенеджерЗаписи, да?
Потому что не может быть "если глянуть тип Хлеба, то тип у него Водка".
При команде "записать", я иду на сервер и записываю регистры. Для каждого реквизита формы есть алгоритм...
...в котором нет вообще нет ничего про Записать()
3. spacecraft 18.10.24 15:44 Сейчас в теме
(1)
РеквизитФормыВЗначение("НастройкиРасчетаSC").Записать();
4. ruslanb 18.10.24 17:37 Сейчас в теме
Решил так:
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:

ВыборкаНастройкиРасчетаSC = Результаты[4].Выбрать();
	
	МенеджерЗаписи = РегистрыСведений.НастройкиРасчетаSC.СоздатьМенеджерЗаписи();
	Если ВыборкаНастройкиРасчетаSC.Следующий() Тогда
		ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаНастройкиРасчетаSC);
		МенеджерЗаписи.Прочитать();
		ЗначениеВРеквизитФормы(МенеджерЗаписи, "НастройкиРасчетаSC");
	КонецЕсли;


А при записи:
	МенеджерЗаписи = РеквизитФормыВЗначение("НастройкиРасчетаSC");
		МенеджерЗаписи.Записать();


Всем спасибо
5. user2033930 18.10.24 17:41 Сейчас в теме
(4) Сам себя не похвалишь - зачем и жил тогда?
А остальные - так, мимо проходили...
Оставьте свое сообщение

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