Имя: Пароль:
1C
1С v8
Как записать или отменить проведение через обработку по заполнению таб части
0 Homer
 
06.10.11
11:28
не может записать или отменить проведение
где Объект - это собственно ДокументОбъект
/////////
   Если НЕ ЗаписатьДокументОтменивПроведениеПередВыполнениемДействия(Объект,Объект,"рассчитать") Тогда
       ЭтаФорма.Закрыть();
       Возврат;
   КонецЕсли;

Функция ЗаписатьДокументОтменивПроведениеПередВыполнениемДействия(Объект, ФормаОбъекта, ТекстДействие = НеОпределено, ТекстВопрос1 = НеОпределено, ТекстВопрос2 = НеОпределено) Экспорт

   Если Объект.Проведен Тогда
       
       Если ТекстВопрос1 = Неопределено Тогда
           Если Вопрос("Автоматически "+ТекстДействие+" документ можно только после отмены его проведения. Выполнить отмену проведения документа?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       Иначе
           Если Вопрос(ТекстВопрос1, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       КонецЕсли;
       
       Попытка
           Возврат ФормаОбъекта.Записать(РежимЗаписиДокумента.ОтменаПроведения);
       Исключение
           Возврат Ложь;
       КонецПопытки;
               
   ИначеЕсли Объект.Модифицированность() Тогда
       
       Если ТекстВопрос2 = Неопределено Тогда
           Если Вопрос("Автоматически "+ТекстДействие+" документ можно только после его записи. Записать?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       Иначе
           Если Вопрос(ТекстВопрос2, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       КонецЕсли;
       
       Попытка
           Возврат ФормаОбъекта.Записать(РежимЗаписиДокумента.Запись);
       Исключение
           Возврат Ложь;
       КонецПопытки;
       
   КонецЕсли;
   
   Возврат Истина;

КонецФункции // ЗаписатьДокументОтменивПроведение()

////////////////
1 Maxus43
 
06.10.11
11:29
ФормаОбъекта.Записать(РежимЗаписиДокумента.ОтменаПроведения);

что это?
2 Maxus43
 
06.10.11
11:31
или уж ЗаписатьВФорме или Объект..Записать(РежимЗаписиДокумента.ОтменаПроведения);
3 Homer
 
06.10.11
12:42
(2) у меня "ФормаОбъекта" это Объект
4 Maxus43
 
06.10.11
13:15
(Объект, ФормаОбъекта

2 штуки? не, что-то не договариваете...
5 Homer
 
06.10.11
13:22
:), это стандартная функция в УПП, просто хотел ей воспользоватся. в документе такая конструкция
/////
   Если НЕ РаботаСДиалогами.ЗаписатьДокументОтменивПроведениеПередВыполнениемДействия(ДокументОбъект, ЭтаФорма, "рассчитать") Тогда
       ОбработкаКомментариев.ПоказатьСообщения();
       Возврат;
   КонецЕсли;  
/////
6 Maxus43
 
06.10.11
13:25
вот моя типовая, ищзем 10 отличий:
Функция ЗаписатьДокументОтменивПроведениеПередВыполнениемДействия(Объект, ФормаОбъекта, ТекстДействие = НеОпределено, ТекстВопрос1 = НеОпределено, ТекстВопрос2 = НеОпределено) Экспорт

   Если Объект.Проведен Тогда
       
       Если ТекстВопрос1 = Неопределено Тогда
           Если Вопрос("Автоматически "+ТекстДействие+" документ можно только после отмены его проведения. Выполнить отмену проведения документа?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       Иначе
           Если Вопрос(ТекстВопрос1, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       КонецЕсли;
       
       Попытка
           Возврат ФормаОбъекта.ЗаписатьВФорме(РежимЗаписиДокумента.ОтменаПроведения);
       Исключение
           Возврат Ложь;
       КонецПопытки;
               
   ИначеЕсли Объект.Модифицированность() Тогда
       
       Если ТекстВопрос2 = Неопределено Тогда
           Если Вопрос("Автоматически "+ТекстДействие+" документ можно только после его записи. Записать?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       Иначе
           Если Вопрос(ТекстВопрос2, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
               Возврат Ложь;
           КонецЕсли;
       КонецЕсли;
       
       Попытка
           Возврат ФормаОбъекта.ЗаписатьВФорме(РежимЗаписиДокумента.Запись);
       Исключение
           Возврат Ложь;
       КонецПопытки;
       
   КонецЕсли;
   
   Возврат Истина;

КонецФункции // ЗаписатьДокументОтменивПроведение()
7 Homer
 
06.10.11
13:30
да это я знаю, вопрос тогда в друго у объекта документа конструкция Объект.Записать
Синтаксис:

Записать(<РежимЗаписи>, <РежимПроведения>)
Параметры:

<РежимЗаписи> (необязательный)

Тип: РежимЗаписиДокумента. Позволяет выбрать один из возможных режимов записи.
Значение по умолчанию: Запись
<РежимПроведения> (необязательный)

Тип: РежимПроведенияДокумента. Позволяет выбрать один из возможных режимов проведения.
Значение по умолчанию: Неоперативный
Описание:

Записывает документ в базу данных.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Для документов с поддержкой уникальности номеров в процессе записи, если нужно, проверяется уникальность номера.
8 Homer
 
06.10.11
13:33
почему не срабатывает такая конструкция
9 Maxus43
 
06.10.11
13:41
короче сделай в самом документе это, причем с записать в форме, тут же функция, Возврат ещё идёт. хз
10 Maxus43
 
06.10.11
13:45
возможно дело в том что этот общий модуль только на клиенте существует
11 Homer
 
06.10.11
14:03
(10)Нет, я уже его и в обработку кидал, все равно не срабатывает
12 Maxus43
 
06.10.11
14:12
чудеса
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн