|
Версия данных документа 1С | ☑ | ||
---|---|---|---|---|
0
Shmidt
25.04.14
✎
15:00
|
Каким образом реализовать проверку объектов (документ и элемент справочника) на предмет того, что объект изменяется, а не создается новый?
|
|||
1
Wobland
25.04.14
✎
15:00
|
это ли новый
|
|||
2
Wobland
25.04.14
✎
15:01
|
а какое эпичное название у ветки!
|
|||
3
Shmidt
25.04.14
✎
15:03
|
Ну при записи нового документа отрабатываются некоторые условия и делают оперд. изменения в документе. Задача в том, чтобы, если мы зайдем в этот документ еще раз, что-то изменим и перепроведем, условия не выполнялись.
|
|||
4
Wobland
25.04.14
✎
15:06
|
(3) понятно
|
|||
5
neo_matrix_123
25.04.14
✎
15:15
|
ну как то так...
Если Источник.ЭтоНовый() Тогда Если Источник.Дата>ДатаЗапрета тогда Отказ=Ложь; Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ВнутреннийЗаказ") Тогда Если Источник.Дата < НачалоДня(ТекущаяДата()) Тогда Сообщить("Дата документа меньше текущей! Документ будет сохранен оперативно."); Источник.Дата = ТекущаяДата(); КонецЕсли; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; ИначеЕсли Источник.Дата <= ДатаЗапретаМертвыйПериод Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; КонецЕсли; ПараметрыПроверкиДокумента = ПолучитьПараметрыПроверкиДокумента(Источник); Если Не Источник.ЭтоНовый() Тогда СтараяВерсияДокумента = ПолучитьВерсиюДокументаПередИзменением(Источник, ПараметрыПроверкиДокумента); СтараяДатаДокумента = СтараяВерсияДокумента.Дата; ПроверитьВерсиюДокумента(СтараяВерсияДокумента, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ); Если Не Отказ Тогда ПроверитьВерсиюДокумента(Источник, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ, РежимЗаписи); КонецЕсли; Если Источник.Дата>ДатаЗапрета И СтараяДатаДокумента>ДатаЗапрета тогда Отказ=Ложь; Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ВнутреннийЗаказ") Тогда Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Ранее проведенный документ не может быть изменен! Воспользуйтесь корректировкой внутреннего заказа"); Отказ = Истина; ИначеЕсли СтараяВерсияДокумента.Проведен = Ложь И Источник.Дата < НачалоДня(ТекущаяДата()) Тогда Сообщить("Дата документа меньше текущей! Документ будет сохранен оперативно."); Источник.Дата = ТекущаяДата(); КонецЕсли; КонецЕсли; ИначеЕсли Источник.Дата > ДатаЗапрета И СтараяДатаДокумента <= ДатаЗапрета Тогда // пользователю запрещена запись документа Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; Иначе Отказ = Ложь; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета И СтараяДатаДокумента <= ДатаЗапрета Тогда // пользователю запрещена запись документа Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета И СтараяДатаДокумента > ДатаЗапрета Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |