Запись в регистр сведений через форму обработки
Добрый день.
Не понимаю как записать в регистр сведений запись, работая с ней через МенеджерЗаписи добавленый на форму.
Есть 3 регистра сведений и им на форме соответствуют шапка и 2 табличных части:
НастройкиРасчета - шапка
УсловияРасчета - условия расчета
ШкалаРасчета - шапка расчета
(скриншот 1);
Есть обработка с помощью которой заносится информация о поставщике, периодичности и тд и привязанных к этой записи условия расчета по определенным контрагентам и шкала расчета. Табличные части "условия" и "шкала" тоже записываются в регистры сведений, но с ними проблем нет, они записываются как наборы.
Но шапка этой формы должна записываться как отдельная запись.
При команде "записать", я иду на сервер и записываю регистры. Для каждого реквизита формы есть алгоритм
и так далее для каждого элемента шапки формы.
Запись шапки таким образом не происходит. Подсмотрел такое решение .
Работаю с РС в таком ключе первый раз. Если глянуть тип МенеджераЗаписи отладчиком, то тип у него "ДанныеФормыСтруктура" (скриншот 2).
Не понимаю как записать в регистр сведений запись, работая с ней через МенеджерЗаписи добавленый на форму.
Есть 3 регистра сведений и им на форме соответствуют шапка и 2 табличных части:
НастройкиРасчета - шапка
УсловияРасчета - условия расчета
ШкалаРасчета - шапка расчета
(скриншот 1);
Есть обработка с помощью которой заносится информация о поставщике, периодичности и тд и привязанных к этой записи условия расчета по определенным контрагентам и шкала расчета. Табличные части "условия" и "шкала" тоже записываются в регистры сведений, но с ними проблем нет, они записываются как наборы.
Но шапка этой формы должна записываться как отдельная запись.
При команде "записать", я иду на сервер и записываю регистры. Для каждого реквизита формы есть алгоритм
Если ЗначениеЗаполнено(ПериодичностьРасчета) Тогда
НастройкиРасчетаSC.ПериодичностьРасчета = ПериодичностьРасчета;
Иначе
НастройкиРасчетаSC.ПериодичностьРасчета = Перечисления.Периодичность.ПустаяСсылка();
КонецЕсли;и так далее для каждого элемента шапки формы.
Запись шапки таким образом не происходит. Подсмотрел такое решение .
Работаю с РС в таком ключе первый раз. Если глянуть тип МенеджераЗаписи отладчиком, то тип у него "ДанныеФормыСтруктура" (скриншот 2).
Прикрепленные файлы:
По теме из базы знаний
- Доработка универсальной обработки загрузки данных из табличного документа (для возможности загрузки в документ "Перенос данных" (ЗУП 3.1))
- Отложенная печать (обычные формы)
- Передача удаления записей независимого регистра сведений через типовой обмен
- Вайб-кодинг в 1С = Infostart MCP серверы
- Исправление дублей в регистре «Реестр документов»
Найденные решения
Решил так:
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:
А при записи:
Всем спасибо
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:
ВыборкаНастройкиРасчетаSC = Результаты[4].Выбрать();
МенеджерЗаписи = РегистрыСведений.НастройкиРасчетаSC.СоздатьМенеджерЗаписи();
Если ВыборкаНастройкиРасчетаSC.Следующий() Тогда
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаНастройкиРасчетаSC);
МенеджерЗаписи.Прочитать();
ЗначениеВРеквизитФормы(МенеджерЗаписи, "НастройкиРасчетаSC");
КонецЕсли;А при записи:
МенеджерЗаписи = РеквизитФормыВЗначение("НастройкиРасчетаSC");
МенеджерЗаписи.Записать();
Всем спасибо
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Потому что не может быть "если глянуть тип Хлеба, то тип у него Водка".
Если глянуть тип МенеджераЗаписи отладчиком, то тип у него "ДанныеФормыСтруктура"
То есть это не МенеджерЗаписи, да?
Потому что не может быть "если глянуть тип Хлеба, то тип у него Водка".
При команде "записать", я иду на сервер и записываю регистры. Для каждого реквизита формы есть алгоритм...
...в котором нет вообще нет ничего про Записать()
Решил так:
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:
А при записи:
Всем спасибо
При открытии формы, создается менеджер записи и из запроса в него записываются данные и находится запись, которая записывается в реквизит формы:
ВыборкаНастройкиРасчетаSC = Результаты[4].Выбрать();
МенеджерЗаписи = РегистрыСведений.НастройкиРасчетаSC.СоздатьМенеджерЗаписи();
Если ВыборкаНастройкиРасчетаSC.Следующий() Тогда
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаНастройкиРасчетаSC);
МенеджерЗаписи.Прочитать();
ЗначениеВРеквизитФормы(МенеджерЗаписи, "НастройкиРасчетаSC");
КонецЕсли;А при записи:
МенеджерЗаписи = РеквизитФормыВЗначение("НастройкиРасчетаSC");
МенеджерЗаписи.Записать();
Всем спасибо
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
