Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ
В документе есть несколько реквизитов, которые не нужны в регистрах по данному документу.
Они чисто информационные и их при нажатии некой кнопки нужно просто и по-тихому записать.
&НаКлиенте
Процедура ДокументСдан(Команда)
ДокументСданНаСервере();
//ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
//ПриЗаписиПерепроводить(0);
Записать();
//ПриЗаписиПерепроводить(1);
Парам = Новый Структура(); //108470
Парам.Вставить("Основание",Объект.Ссылка);
Парам.Вставить("Действие","Принят");
Форм = ОткрытьФорму("Документ.ПрохождениеДокумента.ФормаОбъекта",Парам,,,ВариантОткрытияОкна.ОтдельноеОкно,,Новый ОписаниеОповещения("ДокументСданЗавершение", ЭтотОбъект, Новый Структура("Команда", Команда)),РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
//Закрыть();
КонецПроцедуры
&НаСервере
Процедура ДокументСданНаСервере()
Объект.Сдан = Истина;
Объект.Принял = ПользователиКлиентСервер.АвторизованныйПользователь();
Объект.ДатаПринятия = ТекущаяДата();
Объект.ТекущийСтатус = Перечисления.СтатусыПрохожденияДокументов.Принят;
КонецПроцедуры
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
takefive @ Сегодня, 12:46
,
Из первой процедуры убрать Записать(), а во вторую добавить предложенный код?
takefive @ Сегодня, 12:46
,
&НаСервере
Процедура ДокументСданНаСервере()
Объект.Сдан = Истина;
Объект.Принял = ПользователиКлиентСервер.АвторизованныйПользователь();
Объект.ДатаПринятия = ТекущаяДата();
Объект.ТекущийСтатус = Перечисления.СтатусыПрохожденияДокументов.Принят;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
КонецПроцедуры
ОбменДанными - есть только в Типовых конфигурациях. В самописке нужно делать подобный механизм самому.
Constantus @ Today, 9:20
,
1. Это надо делать в модуле объекта.
2. Для подобных вещей правильнее использовать подсистему Свойства.
ОбменДанными это свойство для типа "ДокументОбъект". ДокументОбъект можно получить методом формы РеквизитФормыВЗначение. Ну и, если изменили, вернуть обратно на форму не помешает...
Много методов перепробовал... Вроде все рабочие, но всё равно у меня что-то более сильное сидит,
что выводит на проведение, а там у меня подписка на событие сидит "Перед записью"
В этой подписке проверяется дата запрета, если дата в диапазоне запрета, то
Отказ = Истина;
Подписка на событие:
Если Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ТекДата = ТекущаяДата();
ПредМесяц = ДобавитьМесяц(ТекДата, - 1);
ДатаБлокировки = ?(День(ТекДата) > 10, КонецМесяца(ПредМесяц), НачалоМесяца(ПредМесяц) - 1);
Если Источник.Дата <= ДатаБлокировки Или ДатаСтара <= ДатаБлокировки Тогда
Отказ = Истина;
КонецЕсли;
Constantus @ Today, 11:19
,
Субъективное ощущение: причиной всему то, что вы вместо использования механизмов подсистем БСП придумываете свои "велосипеды".
Petre @ Сегодня, 15:57
,
Это да... Но что сейчас можно сделать... Наследство...
Подсказали, вроде работает:
&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
УказатьПерепроводить(Ложь);
Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры
&НаСервере
Процедура УказатьПерепроводить(Перепроводить)
ПриЗаписиПерепроводить = Перепроводить;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ПараметрыЗаписи.Свойство("НеПерепроводить") Тогда
ТекущийОбъект.ОбменДанными.Загрузка = Истина;
КонецЕсли;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua