|   |   | 
| 
 | Версия данных документа 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 | 
        ну как то так...
 Если Источник.ЭтоНовый() Тогда Если Источник.Дата>ДатаЗапрета тогда Отказ=Ложь; Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ВнутреннийЗаказ") Тогда Если Источник.Дата < НачалоДня(ТекущаяДата()) Тогда Сообщить("Дата документа меньше текущей! Документ будет сохранен оперативно."); Источник.Дата = ТекущаяДата(); КонецЕсли; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; ИначеЕсли Источник.Дата <= ДатаЗапретаМертвыйПериод Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; КонецЕсли; ПараметрыПроверкиДокумента = ПолучитьПараметрыПроверкиДокумента(Источник); Если Не Источник.ЭтоНовый() Тогда СтараяВерсияДокумента = ПолучитьВерсиюДокументаПередИзменением(Источник, ПараметрыПроверкиДокумента); СтараяДатаДокумента = СтараяВерсияДокумента.Дата; ПроверитьВерсиюДокумента(СтараяВерсияДокумента, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ); Если Не Отказ Тогда ПроверитьВерсиюДокумента(Источник, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ, РежимЗаписи); КонецЕсли; Если Источник.Дата>ДатаЗапрета И СтараяДатаДокумента>ДатаЗапрета тогда Отказ=Ложь; Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ВнутреннийЗаказ") Тогда Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Ранее проведенный документ не может быть изменен! Воспользуйтесь корректировкой внутреннего заказа"); Отказ = Истина; ИначеЕсли СтараяВерсияДокумента.Проведен = Ложь И Источник.Дата < НачалоДня(ТекущаяДата()) Тогда Сообщить("Дата документа меньше текущей! Документ будет сохранен оперативно."); Источник.Дата = ТекущаяДата(); КонецЕсли; КонецЕсли; ИначеЕсли Источник.Дата > ДатаЗапрета И СтараяДатаДокумента <= ДатаЗапрета Тогда // пользователю запрещена запись документа Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; Иначе Отказ = Ложь; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета И СтараяДатаДокумента <= ДатаЗапрета Тогда // пользователю запрещена запись документа Если СтараяВерсияДокумента.Проведен = Истина Тогда Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; ИначеЕсли Источник.Дата <= ДатаЗапрета И СтараяДатаДокумента > ДатаЗапрета Тогда // пользователю запрещена запись документа Сообщить("Документ находится в закрытом для вас периоде!"); Отказ = Истина; КонецЕсли; КонецЕсли; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |