Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запись без (пере)проведения
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Constantus
Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

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

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

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


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

Как можно просто записать их без затрагивания процесса проведения?

takefive
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
Constantus
takefive @ Сегодня, 12:46 необходимо зарегистрироваться для просмотра ссылки ,

Из первой процедуры убрать Записать(), а во вторую добавить предложенный код?

takefive @ Сегодня, 12:46 необходимо зарегистрироваться для просмотра ссылки ,

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


Пишет, что ОбменДанными - поле не обнаружено...

Constantus @ Сегодня, 13:11 необходимо зарегистрироваться для просмотра ссылки ,

Все действия происходят в модуле формы документа
pablo
ОбменДанными - есть только в Типовых конфигурациях. В самописке нужно делать подобный механизм самому.
Petre
Constantus @ Today, 9:20 необходимо зарегистрироваться для просмотра ссылки ,
1. Это надо делать в модуле объекта.
2. Для подобных вещей правильнее использовать подсистему Свойства.
takefive
ОбменДанными это свойство для типа "ДокументОбъект". ДокументОбъект можно получить методом формы РеквизитФормыВЗначение. Ну и, если изменили, вернуть обратно на форму не помешает...
Constantus
Много методов перепробовал... Вроде все рабочие, но всё равно у меня что-то более сильное сидит,
что выводит на проведение, а там у меня подписка на событие сидит "Перед записью"

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

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

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

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

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

    Если Источник.Дата <= ДатаБлокировки Или ДатаСтара <= ДатаБлокировки Тогда
             Отказ = Истина;
    КонецЕсли;
Petre
Constantus @ Today, 11:19 необходимо зарегистрироваться для просмотра ссылки ,
Субъективное ощущение: причиной всему то, что вы вместо использования механизмов подсистем БСП придумываете свои "велосипеды".
Constantus
Petre @ Сегодня, 15:57 необходимо зарегистрироваться для просмотра ссылки ,

Это да... Но что сейчас можно сделать... Наследство...

Подсказали, вроде работает:

&НаКлиенте
Процедура ЗаписатьБезПроведения(Команда)
    УказатьПерепроводить(Ложь);
    Записать(Новый Структура("РежимЗаписи,НеПерепроводить", РежимЗаписиДокумента.Запись, Истина));
КонецПроцедуры

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

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

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.