1. ukraina 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. ukraina 14.08.19 10:22 Сейчас в теме
(2) Пробовал. В коде даже показано заремаченным. Как это правильно оформить?

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

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


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


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


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

Все деяния происходят в модуле формы документа
8. lefthander 14.08.19 10:21 Сейчас в теме
(7)Это делается с директивой насервере
12. ukraina 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. ukraina 14.08.19 14:07 Сейчас в теме
(14) Где это применить (куда вставить: в модуль формы, в модуль объекта)?
А чем этот код отличается от предыдущего принципиально?
16. ukraina 14.08.19 14:20 Сейчас в теме
(14)
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
УказатьПерепроводить(Ложь);
Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры

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

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


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

Вакансии

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист стажер 1С
Нижний Новгород
зарплата от 30 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день