83
Движе-
ние.Период = Дата;
Движе-
ние.Номенклатура = ТекСтрока-
Номенклатура.Номенклатура;
Движе-
ние.Задача
= ЭтотОбъект.Ссылка;
Движе-
ние.Количество = ТекСтрока-
Номенклатура.Количество;
Движе-
ние.Сумма
= ТекСтрокаНоменклату-
ра.Сумма;
КонецЦикла;
КонецПроцедуры
// обработка распроведения
Процедура ОбработкаУдаленияПро-
ведения(Отказ)
Если Не ОтменитьПрове-
дениеРодите-
лей(ЭтотОбъект.Ссылка) Тогда //
отменитиь проведение задач-
родителей
Отказ = Истина;
Возврат;
КонецЕсли;
КонецПроцедуры
// отменить проведение всех родите-
лей ДокСсылкаРебенок
Функция ОтменитьПроведениеРоди-
телей(ДокСсылкаРебенок)
МассивОтменяемых =
Об-
щийСрв.СформироватьСписокОтме
няемых(ДокСсылкаРебенок); //
сформировать массив распроводи-
мых документов
Если МассивОтменяе-
мых.Количество() Тогда // если есть
хоть один - сообщить
Сообщить
("Отмена выполнения " + Об-
щийСрв.ПредставлениеЗадачи(Этот
Объект)
+
" приводит к отмене выполнения
задач-родителей...");
КонецЕсли;
Для Каждого СтрокаОт-
меняемый Из МассивОтменяемых
Цикл // для каждого документа из
распроводимых
Если Об-
щийСрв.ВЗакрытомПериоде(Строка
Отменяемый.Значение) Тогда // если
находится в закрытом периоде
Со-
общить("Отмена выполенния " +
Об-
щийСрв.ПредставлениеЗадачи(ДокС
сылкаРебенок)
+ " приводит к отмене выполенния "
+ Об-
щийСрв.ПредставлениеЗадачи(Стро
каОтменяемый.Значение)
+ ", находя-
щейся в закрытом периоде. Отмена
не может быть выполнена");
Воз-
врат Ложь;
КонецЕсли;
Если Не Об-
щийСрв.ПроверкаПрав(СтрокаОтме
няемый.Значение.Автор, Парамет-
рыСеанса.глПользователь) Тогда //
проверка прав
Со-
общить("Отмена выполенния " +
Об-
щийСрв.ПредставлениеЗадачи(ДокС
сылкаРебенок)
+ " приводит к отмене выполенния "
+ Об-
щийСрв.ПредставлениеЗадачи(Стро
каОтменяемый.Значение)
+ ", на редакти-
рование которого у Вас нет прав.
Отмена не может быть выполнена");
Воз-
врат Ложь;
КонецЕсли;
КонецЦикла;
// распровести каждый
Для Каждого СтрокаОт-
меняемый Из МассивОтменяемых
Цикл
Если Стро-
каОтменяе-
мый.Значение.ПолучитьОбъект().Пр
оведен Тогда
Стро-
каОтменяе-
мый.Значение.ПолучитьОбъект().За
пи-
сать(РежимЗаписиДокумента.Отмен
аПроведения);
Со-
общить("Отменено выполнение
родительской " + Об-
щийСрв.ПредставлениеЗадачи(Стро
каОтменяемый.Значение));
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
// перед любой записью (включая
проведение и распроведение) - про-
верка
Процедура ПередЗаписью(Отказ,
РежимЗаписи, РежимПроведения)
Головная = ЭтоГолов-
ная(); // установить признак - голов-
ная или нет
Если Об-
щийСрв.ВЗакрытомПериоде(ЭтотОб
ъект) Тогда // провера на закрытый
период
Сооб-
щить(ОбщийСрв.ПредставлениеЗада
чи(ЭтотОбъект) + "Находится в
закрытом периоде. Редактирование
невозможно");
Отказ = Истина;
Возврат;
КонецЕсли;
// проверка того что про-
веден (тогда редактирование запре-
щено)
Если Не (РежимЗаписи =
РежимЗаписиДокумента.Проведение
Или
РежимЗапи-
си = РежимЗаписиДокумен-
та.ОтменаПроведения) Тогда
Если
(ЭтотОбъект.Проведен И Констан-
ты.ЗапретПроведенных.Получить())
И Не ПараметрыСеан-
са.глЗаписьВедетИсполнитель
И Не ПараметрыСеан-
са.ИдетОбменДанными Тогда
Сооб-
об-
щить(ОбщийСрв.ПредставлениеЗада
чи(ЭтотОбъект) + "Уже выполнена.
Редактирование невозможно");
Отказ
= Истина;
Воз-
врат;
КонецЕсли;
КонецЕсли;
// проверка прав
Если Не Об-
щийСрв.ПроверкаПрав(Автор, Па-
раметрыСеанса.глПользователь)
Тогда
Сооб-
щить(ОбщийСрв.ПредставлениеЗада
чи(ЭтотОбъект) + "Нет прав редак-
тировать чужой документ");
Отказ = Истина;
Возврат;
КонецЕсли;
Если РежимЗаписи = Ре-
жимЗаписиДокумента.Проведение
Тогда
РеальнаяДа-
таВыполнения = ТекущаяДата(); //
дата реального выполнения - дата
проведения
Если Констан-
ты.УстанавливатьЗавершенаУспешн
о.Получить() = Истина Тогда
Ста-
тус = Справочни-
ки.Статусы.ЗавершенаУспешно; //
статус - успешно
КонецЕсли;
КонецЕсли;
Если РежимЗаписи = Ре-
жимЗаписиДокумен-
та.ОтменаПроведения Тогда
РеальнаяДа-
таВыполнения = 0; // если распро-