Передать данные в обработку проведения (через временное хранилище?)

1. nat_stav 01.08.23 19:50 Сейчас в теме
Всем добрый день!
Есть такая задача: в форме документа пользователь нажимает кнопку, открывается другая форма. В ней он изменит "числоХ". Закроет эту форму. Проведет документ. И далее нужно скорректировать проводки документа, добавив к сумме первой строки движений документа "числоХ".
Как его передать в обработку проведения?
Я так думаю, что через Временное хранилище. Но не пойму как, не приходилось ещё с этим работать.
Такой код вызывает ошибку, что адрес не правильно задан.

ЭтаФорма.ПолеСуммаОтклоненияРуб - это есть "числоХ" в примере

&НаКлиенте
Процедура РассчитатьСуммуОтклоненияНДС()

      ПоместитьВоВременноеХранилище(ЭтаФорма.ПолеСуммаОтклоненияРуб,"ДанныеПоОтклонениюНДС");
	  
КонецПроцедуры 
По теме из базы знаний
Найденные решения
6. Sashares 35 01.08.23 20:51 Сейчас в теме
(1)А если пользователь пепепроведет документ, как это работать будет? Что будет если пользователь проведет документ из формы списка?
Задача изначально не верная. То что влияет на движения должно храниться в документе.
То есть надо хранить сумму отклонения ндс как реквизит документа, чтобы при проведении, отмене проведения не было никаких проблем.
И передавать ничего не надо будет.
nat_stav; user1880116; nomad_irk; Oldsad; user1881120; +5 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 01.08.23 20:33 Сейчас в теме
(1)
ПоместитьВоВременноеХранилище(ЭтаФорма.ПолеСуммаОтклоненияРуб,"ДанныеПоОтклонениюНДС");

Ругается на выделенное.
Там должно быть или адрес временного хранилища или уникальный идентификатор.
3. nat_stav 01.08.23 20:43 Сейчас в теме
(2)
А как этот адрес создаётся? Не пойму этот момент.
5. spacecraft 01.08.23 20:47 Сейчас в теме
(3) в СП все же расписано:
Возвращаемое значение:
Тип: Строка.
Адрес во временном хранилище.

Другими словами:
Адрес = ПоместитьВоВременноеХранилище(ЭтаФорма.ПолеСуммаОтклоненияРуб,УникальныйИдентификатор);

Вот Адрес и есть адрес временного хранилища. Это строка, но в строго определенном формате.
nat_stav; +1 Ответить
4. spacecraft 01.08.23 20:44 Сейчас в теме
(1) а задача передачи из формы в обработку проведения данных можно решить через ДополнительныеСвойства.

В модуле формы:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ТекущийОбъект.ДополнительныеСвойства.Вставить("ДанныеПоОтклонениюНДС", ПолеСуммаОтклоненияРуб);
КонецПроцедуры


В модуле объекта:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Перем ДанныеПоОтклонениюНДС;
	
	Если ДополнительныеСвойства.Свойство("ДанныеПоОтклонениюНДС", ДанныеПоОтклонениюНДС) Тогда
		// тут получаем переданное значение и выполняем действия с ним
	КонецЕсли;
...
Показать
nat_stav; +1 Ответить
7. nat_stav 02.08.23 10:09 Сейчас в теме
(4)
Перем ДанныеПоОтклонениюНДС;

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


Спасибо, вот этот вариант сработал! ПередЗаписьюНаСервере - в основной форме
6. Sashares 35 01.08.23 20:51 Сейчас в теме
(1)А если пользователь пепепроведет документ, как это работать будет? Что будет если пользователь проведет документ из формы списка?
Задача изначально не верная. То что влияет на движения должно храниться в документе.
То есть надо хранить сумму отклонения ндс как реквизит документа, чтобы при проведении, отмене проведения не было никаких проблем.
И передавать ничего не надо будет.
nat_stav; user1880116; nomad_irk; Oldsad; user1881120; +5 Ответить
8. nat_stav 02.08.23 10:10 Сейчас в теме
(6)
Спасибо. В ваших словах есть здравый смысл. Надо будет озвучить это постановщикам задачи.
Оставьте свое сообщение

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