Запись без (пере)проведения

1. Arkadag 14.08.19 09:08 Сейчас в теме
Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

В документе есть несколько реквизитов, которые не нужны в регистрах по данному документу.
Они чисто информационные и их при нажатии некой кнопки нужно просто и по-тихому записать.

&НаКлиенте
Процедура ДокументСдан(Команда)
    ДокументСданНаСервере();
    //ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
    //ПриЗаписиПерепроводить(0);
    Записать();
    //ПриЗаписиПерепроводить(1);
    Парам = Новый Структура(); //108470 
    Парам.Вставить("Основание",Объект.Ссылка);
    Парам.Вставить("Действие","Принят");
    Форм = ОткрытьФорму("Документ.ПрохождениеДокумента.ФормаОбъекта",Парам,,,ВариантОткрытияОкна.ОтдельноеОкно,,Новый ОписаниеОповещения("ДокументСданЗавершение", ЭтотОбъект, Новый Структура("Команда", Команда)),РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
    //Закрыть();
КонецПроцедуры

&НаСервере
Процедура ДокументСданНаСервере()
    Объект.Сдан = Истина;
    Объект.Принял = ПользователиКлиентСервер.АвторизованныйПользователь();
    Объект.ДатаПринятия = ТекущаяДата();
    Объект.ТекущийСтатус = Перечисления.СтатусыПрохожденияДокументов.Принят;
    
КонецПроцедуры
Показать


речь идет о 4-х реквизитах в нижней процедуре.

Как можно просто записать их без затрагивания процесса проведения?
По теме из базы знаний
Найденные решения
14. spacecraft 14.08.19 12:31 Сейчас в теме
(12) вот тогда еще пример:
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
	УказатьПерепроводить(Ложь);
	Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры

&НаСервере
Процедура УказатьПерепроводить(Перепроводить)
	ПриЗаписиПерепроводить = Перепроводить;
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если ПараметрыЗаписи.Свойство("НеПерепроводить") Тогда 
		ТекущийОбъект.ОбменДанными.Загрузка = Истина; 
	КонецЕсли;
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. lefthander 14.08.19 09:49 Сейчас в теме
(1)Объект.ОбменДанными.Загрузка = Истина; в самом начале.
В конце Объект.Записать()
Если не типовые документы то в процедуры модуля объекта передзаписью и призаписи вставьте код
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
10. spacecraft 14.08.19 11:12 Сейчас в теме
(1) как вариант:
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
	УказатьПерепроводить(Ложь);
	Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
КонецПроцедуры

&НаСервере
Процедура УказатьПерепроводить(Перепроводить)
	ПриЗаписиПерепроводить = Перепроводить;
КонецПроцедуры
Показать
2. mar82 14.08.19 09:17 Сейчас в теме
попробуй ПриЗаписиПерепроводить
9. Arkadag 14.08.19 10:22 Сейчас в теме
(2) Пробовал. В коде даже показано заремаченным. Как это правильно оформить?

ПриЗаписиПерепроводить(0)?
ПриЗаписиПерепроводить(истина)?
ПриЗаписиПерепроводить = истина?

Я про это читал, но там было про 7.7
На УФ это раотает? В тонком клиенте на 8.3.12?
3. lishniy 132 14.08.19 09:44 Сейчас в теме
Записать(РежимЗаписиДокумента.Запись)
6. Arkadag 14.08.19 10:09 Сейчас в теме
(3) Нет, так пробовал. Пишет, что не хватает чего-то
11. lishniy 132 14.08.19 11:24 Сейчас в теме
(6) Рабочий код с базы. Расположен в общем модуле "ПолныеПрава"
Процедура ЗаписатьРеквизитДокумента(ДокументСсылка, ИмяРеквизита, значение) Экспорт
	ДокОбъект = ДокументСсылка.ПолучитьОбъект();
	ДокОбъект[ИмяРеквизита] = значение;
	ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры


Ниже правильно заметили: Выполнять на сервере
alex-l19041; +1 Ответить
4. coollerinc 186 14.08.19 09:48 Сейчас в теме
Внизу ставьте
Объект.ТекущийСтатус = Перечисления.СтатусыПрохожденияДокументов.Принят;
Объект.Записать(РежимЗаписиДокумента.Запись);
7. Arkadag 14.08.19 10:19 Сейчас в теме
(4)
Объект.Записать(РежимЗаписиДокумента.Запись);


Метод объекта не обнаружен
У меня все указанные коды в модуле формы происходят.


(5) Объект.ОбменДанными. - нет такого поля

Все деяния происходят в модуле формы документа
8. lefthander 14.08.19 10:21 Сейчас в теме
(7)Это делается с директивой насервере
12. Arkadag 14.08.19 12:17 Сейчас в теме
Все предложенные методы перепробовал... Вроде все рабочие, но всё равно у меня что-то более сильное сидит, что выводит на проведение, а там у меня подписка на событие сидит "Перед записью"

В этой подписке проверяется дата запрета, если дата в диапазоне запрета, то

Отказ = Истина;

Подписка на событие:

	Если Источник.ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ТекДата = ТекущаяДата();
	ПредМесяц = ДобавитьМесяц(ТекДата, - 1);
	ДатаБлокировки = ?(День(ТекДата) > 10, КонецМесяца(ПредМесяц), НачалоМесяца(ПредМесяц) - 1);

			Если Источник.Дата <= ДатаБлокировки Или ДатаСтара <= ДатаБлокировки Тогда
				Отказ = Истина;
			КонецЕсли;
Показать
13. spacecraft 14.08.19 12:24 Сейчас в теме
(12)
Вроде все рабочие, но всё равно у меня что-то более сильное сидит, что выводит на проведение, а там у меня подписка на событие сидит "Перед записью"

Подписка "ПередЗаписью" всегда срабатывает, хоть режим проведение, хоть запись.
14. spacecraft 14.08.19 12:31 Сейчас в теме
(12) вот тогда еще пример:
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
	УказатьПерепроводить(Ложь);
	Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры

&НаСервере
Процедура УказатьПерепроводить(Перепроводить)
	ПриЗаписиПерепроводить = Перепроводить;
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если ПараметрыЗаписи.Свойство("НеПерепроводить") Тогда 
		ТекущийОбъект.ОбменДанными.Загрузка = Истина; 
	КонецЕсли;
КонецПроцедуры
Показать
15. Arkadag 14.08.19 14:07 Сейчас в теме
(14) Где это применить (куда вставить: в модуль формы, в модуль объекта)?
А чем этот код отличается от предыдущего принципиально?
16. Arkadag 14.08.19 14:20 Сейчас в теме
(14)
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
УказатьПерепроводить(Ложь);
Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры

&НаСервере
Процедура УказатьПерепроводить(Перепроводить)
ПриЗаписиПерепроводить = Перепроводить;
КонецПроцедуры

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


Шайтан!!!
17. lefthander 14.08.19 14:22 Сейчас в теме
(14)
ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
это предопределенная процедура модуля формы.
18. Ulrikh 15.08.19 11:51 Сейчас в теме
Создаешь РегистрСведений, в который пихаешь все эти реквизиты формы + сам этот документ. ПриЗакрытии документа добавляешь/обновляешь все эти значения, ПриОткрытии заполняешь все эти значения из РегистрСведений. таким образом у тебя документ будет не модифицированным и основные реквизиты и процедуры не затронуться
Оставьте свое сообщение

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