![]() |
|
Записать данные в тч из формы ввода данных | ☑ | ||
---|---|---|---|---|
0
lg2marvel
26.07.19
✎
16:24
|
Добрый день!
Нужно редактирование табличной части сделать в форме документа. Открываю форму: ОткрытьФорму("Документ._КЕ_ЖурналУчетаРабочегоВремени.Форма.ФормаРедактированиеДанныхУчетаВремениЗаДень", П, ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ДеньРедактирования = Параметры.Дата; НомерСтроки = Параметры.НомерСтроки; Ссылка = Параметры.Ссылка; В форме заполняю реквизиты формы, теперь нужно записать изменения в табличную часть. И тут возникают проблемы. Я пытаюсь напрямую записать в Объект Ссылка.ДанныеОВремени[НомерСтроки]["ВремяНачала"+НомерДня] = Дата(Год(ДеньРедактирования),Месяц(ДеньРедактирования),День(ДеньРедактирования), Час(ВремяНачала),Минута(ВремяНачала),Секунда(ВремяНачала)); Но выдает ошибку Поле объекта недоступно для записи (ВремяНачала2) Как правильно сохранить значения? |
|||
1
hhhh
26.07.19
✎
16:28
|
(0) так вы "Ссылка." уберите. в ссылку не пишут, только в объект
|
|||
2
lg2marvel
26.07.19
✎
16:34
|
(1) Я пытаюсь записать из общей формы. Ссылка есть Объект:
П.Вставить("Ссылка",Объект.Ссылка); Если уберу ссылка, то Переменная не определена (ДанныеОВремени) |
|||
3
hhhh
26.07.19
✎
16:39
|
(2) Объект.Ссылка это не объект. Это ссылка. А в ссылку записать невозможно. делайте тогда Ссылка.ПолучитьОбъект()
|
|||
4
lg2marvel
26.07.19
✎
16:50
|
(3) Да, действительно, в ссылку нельзя записывать.
Но, блин, почему-то не записывает. Отрабатывает без ошибок, но в тч не записывает &НаКлиенте Процедура Ок(Команда) ЗаписатьДанные(); ЭтаФорма.Закрыть(); КонецПроцедуры &НаСервере Процедура ЗаписатьДанные() Если ЗначениеЗаполнено(ВремяНачала) И ЗначениеЗаполнено(ВремяКонца) Тогда Ссылка.ПолучитьОбъект().ДанныеОВремени[НомерСтроки]["ВремяНачала"+НомерДня] = Дата(Год(ДеньРедактирования),Месяц(ДеньРедактирования),День(ДеньРедактирования), Час(ВремяНачала),Минута(ВремяНачала),Секунда(ВремяНачала)); Ссылка.ПолучитьОбъект().ДанныеОВремени[НомерСтроки]["ВремяОкончания"+НомерДня] = Дата(Год(ДеньРедактирования),Месяц(ДеньРедактирования),День(ДеньРедактирования), Час(ВремяКонца),Минута(ВремяКонца),Секунда(ВремяКонца)); Иначе Сообщить("Необходимо заполнить время начала работы и время окончания!"); КонецЕсли; КонецПроцедуры |
|||
5
hhhh
26.07.19
✎
16:53
|
(4) тут у вас полный бардак пока, получаете 2 объекта зачем-то. И ни один из них не записываете обратно.
|
|||
6
lg2marvel
26.07.19
✎
17:07
|
(5)
&НаСервере Процедура ЗаписатьДанные() ДокументОбъект = Ссылка.ПолучитьОбъект(); Если ЗначениеЗаполнено(ВремяНачала) И ЗначениеЗаполнено(ВремяКонца) Тогда ДокументОбъект.ДанныеОВремени[НомерСтроки]["ВремяНачала"+НомерДня] = Дата(Год(ДеньРедактирования),Месяц(ДеньРедактирования),День(ДеньРедактирования), Час(ВремяНачала),Минута(ВремяНачала),Секунда(ВремяНачала)); ДокументОбъект.ДанныеОВремени[НомерСтроки]["ВремяОкончания"+НомерДня] = Дата(Год(ДеньРедактирования),Месяц(ДеньРедактирования),День(ДеньРедактирования), Час(ВремяКонца),Минута(ВремяКонца),Секунда(ВремяКонца)); Иначе Сообщить("Необходимо заполнить время начала работы и время окончания!"); КонецЕсли; ДокументОбъект.Записать(); КонецПроцедуры Так сохраняет значения, но что-то подстказывает что это в корне не правильно, так как при попытке провести документ выдает ошибку что Данные были изменены или удалены другим пользователем. |
|||
7
lg2marvel
26.07.19
✎
17:09
|
Можно ли при закрытии формы перенести данные в реквизит как будто реквизит изменился руками? и при несохранении документа соотетвтсвенно документ должен остаться в первоначальном виде.
|
|||
8
lg2marvel
26.07.19
✎
17:29
|
По сути хотелось бы передать структурой данные как при открытии формы,ю только при ее закрытии
|
|||
9
lg2marvel
26.07.19
✎
17:47
|
Ага, кажется нашел, при закрытии формы сделать оповестить и передать в параметре значения.
https://forum.infostart.ru/forum9/topic75180/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |