Запрет на копирование документа

1. Белка13 13 02.10.14 12:33 Сейчас в теме
Иногда появляется необходимость запретить копирование документов. Почему?
Порой пользователи забывают поправить в них определенные данные или он не "корректно" копируется и т.д.
Некоторые используют код: ПараметрОбъектКопирования=истина; Но, у меня он не реагирует. Вот работающая процедура- приписывается в ФормаДокумента////Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
/////+++
Если ЗначениеЗаполнено(ПараметрОбъектКопирования) Тогда
Отказ = Истина;
Предупреждение("Функция копирования не доступна!");
Возврат;
КонецЕсли;
/////---
Vyacheslide; yshoolga; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AnnB 02.10.14 12:39 Сейчас в теме
Можно в процедуре "При копировании" очищать нужные реквизиты
TaTaPuH-Magic; A.Sytchev; +2 Ответить
3. A.Sytchev 02.10.14 12:59 Сейчас в теме
Порочный подход запрещать копирование из-за того, что кто-то забывает что-то менять. Правильно говорит (2) AnnB, нужно очищать реквизиты, которые забывают перезаполнять.
4. FallenMad 11 03.10.14 17:33 Сейчас в теме
Вы сударь, не настолько ленивы, как полагается быть программисту. если вам потребуется запретить несколько документов, а потом еще один и еще один, что же каждый раз в код лазить, нет уж увольте. мой вариант такой:

ПодпискаНаСобытие
Источник ДокументОбъект
Событие ПриКопировании
Обработчик:
Функция ОбработчикСобытияПриКопировании(Источник, ОбъектКопирования)
//здесь может быть условия проверки данного вида документов на запрет копирования.
ВызватьИсключение "Функция копирования не доступна!";
КонецФункции;
5. JustLucky 04.10.14 16:43 Сейчас в теме
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	Если ЗначениеЗаполнено(ПараметрОбъектКопирования) Тогда
		Предупреждение("Данный документ нельзя копировать!",3);
		Отказ = Истина;
	КонецЕсли; 	
КонецПроцедуры


Пардон, не до конца прочитал заглавный пост, хотел просто выложить сразу работающее и готовое решение. :)
6. insurgut 207 03.03.22 13:18 Сейчас в теме
Для управляемых форм - в процедуре ПриСозданииНаСервере формы документа:

Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
		Отказ = Истина;
		Сообщить("Копирование запрещено!");
		Возврат;
	КонецЕсли;


P.S. Важный момент, если доработка через расширение, то код, отменяющий открытие необходимо прописать в процедуре Перед, а не После.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот