|
Запись документа программно | ☑ | ||
---|---|---|---|---|
0
SnikRu
06.10.15
✎
08:49
|
Доброго дня.
Не получается записать данные в документ из открытой формы упр. приложение? Ну не совсем не получается. Документ создается новый и данные пишутся хорошо. А мне нужно в текущий записать. Не могу найти как задействовать ссылку на документ? Код: ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.НомерЧека = ЭТНомерЧека; ДокументОбъект.НомерКарты = ЭТНомерКарты; ДокументОбъект.СсылкаОперации = ЭТНомерСсылкиОперации; ДокументОбъект.СуммаЧека = ЭТСумма; ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); |
|||
1
Fedor-1971
06.10.15
✎
08:56
|
ЭтаФорма.Записать()
ты обновил объект данных, а форму нет. Если уж решил использовать такой путь воспользуйся ЭтаФорма.Прочитать() - иначе получишь ошибку "Даные изменены пользователем <кто нажал кнопку сохранения>", т.е. конфликт себя с собой. |
|||
2
SnikRu
06.10.15
✎
09:02
|
Не совсем понял (1) данные и так пишутся, значит и читаются.
Только создается и записывается новый документ? |
|||
3
Мимохожий Однако
06.10.15
✎
09:03
|
Не проще открыть форму документа и в ней делать изменения?
|
|||
4
SnikRu
06.10.15
✎
09:05
|
У документа несколько форм.
А заполняемые реквизиты нужны для истории и не отображаются пользователю. |
|||
5
Fedor-1971
06.10.15
✎
09:12
|
Так записывай их в ПередЗаписьюНаСервере,а не сохраняй сам Объект.
Что именно не понял из (1)? Объект в БД и Форма оного - суть разные сущности, если записал что-то в объект, обнови его представление на форме. |
|||
6
SnikRu
06.10.15
✎
09:22
|
Перед записью этих данных еще нет. Это входящие данные с терминала заполняются в процессе проведения документа.
На момент закрытия формы документ проведен. Нужно сохранить несколько временных реквизитов. Надеюсь это возможно. |
|||
7
Fedor-1971
06.10.15
✎
09:39
|
(6) Это как происходит? Опиши всю цепочку словами.
|
|||
8
hhhh
06.10.15
✎
09:43
|
(6) ну так
Объект.НомерЧека = ЭТНомерЧека; Объект.НомерКарты = ЭТНомерКарты; Объект.СсылкаОперации = ЭТНомерСсылкиОперации; Объект.СуммаЧека = ЭТСумма; причем это на клиенте прям, без перехода на сервер. |
|||
9
Fedor-1971
06.10.15
✎
09:48
|
(8) у него замечательная путанка:
- форма уже есть, а данных ещё нет - код написан для формы, а данные появляются при проведении - заполнения ссылки на документ в чеке, он меняет сам документ. |
|||
10
Fedor-1971
06.10.15
✎
09:49
|
9+ Вместо заполнения ссылки - ошибся.
|
|||
11
SnikRu
06.10.15
✎
09:59
|
Видимо самый простой путь не есть самый легкий.
А алгоритм следующий. Документ имеет обычную форму из которой и происходит проведение, при выборе терминала открывается управляемая (взятая из БПО и адаптированная к документу) Плюс ни чего не нужно переделывать. Платеж проходит плюс все прочие сервисы (слип чек, возврат и тд) загвоздка в сохранении нескольких реквизитов управляемой формы на случай того же возврата. Жаль из-за такой ерунды радикально переделывать все. |
|||
12
SnikRu
06.10.15
✎
10:06
|
(6) Не работает.
Если добавить ЭтаФорма.Записать(); Создает новый документ и пишет прямо с клиента. |
|||
13
Fedor-1971
06.10.15
✎
10:16
|
(12) так ты открыл пустую форму. Передай ей параметр "Ключ" (это уже сам загуглишь).
В общем ты разберись, если данные есть при проведении или после проведения, делай:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |