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

Нашел метод, который по-моей задумке должен просто записать документ, не проводя его...

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


Но выдает ошибку:
Цитата
Поле объекта недоступно для записи (ПриЗаписиПерепроводить)
ЭтаФорма.ПриЗаписиПерепроводить = Ложь;


Как правильно посадить эту волшебную комбинацию? На сервере, ЭтаФорма, Объект?
Petre
Сделать то же самое, только не &НаКлиенте, а &НаСервере.
Constantus
Petre @ Сегодня, 17:11 необходимо зарегистрироваться для просмотра ссылки ,
Сделал в модуле формы:

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

&НаСервере
Процедура Зап()
    
    ЭтаФорма.ПриЗаписиПерепроводить = Ложь;
    Записать();
    ЭтаФорма.ПриЗаписиПерепроводить = Истина;



КонецПроцедуры

ЭтаФорма.ПриЗаписиПерепроводить = Ложь
- сработало, т.е. перешло в Ложь, но всё равно стало перепроводить...

Что не так я натворил? Мож в модуле объекта это нужно?
Petre
Constantus @ Today, 13:22 необходимо зарегистрироваться для просмотра ссылки ,
Это касается только проведенных документов. Если вам надо создать и просто записать документ, используйте параметр метода Записать().
Constantus
Есть нюанс... У меня есть подписка на событие с процедурой

Процедура ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента


Судя по всему мой код не дотягивает до этой процедуры и не успевает срабатывать... Т.е. до записи уже блокируется запись...

Т.е. смысл такой, нужно разрешить запись, но не дать возможность перепровести документ... Как правильно расположить последовательность действий кода?


Petre
Constantus @ Today, 13:36 необходимо зарегистрироваться для просмотра ссылки ,
Не понимаю, при чем здесь подписка. Проверьте отладчиком, и убедитесь.
Если надо записать, вызывайте Записать(РежимЗаписиДокумента.Запись).
sava1
ПередЗаписью - если Режим Проведение Тогда Режим=Запись
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.