Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как запретить создание документа копированием.

Как запретить создание документа копированием.
Я
   TumenJan
 
21.05.19 - 11:33
запретить создание документа копированием?
 
 
   Cyberhawk
 
1 - 21.05.19 - 11:35
У формы в ПриСозданииНаСервере вроде есть свойство "ОбъектКопирования"
   Cyberhawk
 
2 - 21.05.19 - 11:35
А если создание неинтерактивное, то...
   trooba
 
3 - 21.05.19 - 11:35
ДокументОбъект.<Имя документа>.ПриКопировании (DocumentObject.<Имя документа>.OnCopy)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ПриКопировании (OnCopy)
Синтаксис:

ПриКопировании(<ОбъектКопирования>)
Параметры:

<ОбъектКопирования>
Тип: ДокументОбъект.<Имя документа>. 

Исходный документ, который является источником копирования.
Описание:

Возникает при создании документа копированием.
Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
См. также:

ДокументСсылка.<Имя документа>, метод Скопировать

--------------------------------------------------------------------------------

     Методическая информация
   Жан Пердежон
 
4 - 21.05.19 - 11:36
ПриКопировании (OnCopy)
Синтаксис:

ПриКопировании(<ОбъектКопирования>)
Параметры:

<ОбъектКопирования>
Тип: ДокументОбъект.<Имя справочника>. 

Исходный элемент, который является источником копирования.
Описание:

Возникает при создании элемента справочника копированием.
   Cyberhawk
 
5 - 21.05.19 - 11:36
+(1) "ПараметрОбъектКопирования", во
   alkorolev
 
6 - 21.05.19 - 11:37
(0) зачем запрещать? ПриКопировании "обнуляй" объект
   Cyberhawk
 
7 - 21.05.19 - 11:40
+(2) Использовать событие из (3) или (4) и там либо вызывать исключение, либо выдавать сообщение-отлуп, а сам объект запоминать где-нибудь в сеансе и в ПередЗаписью выдавать отлуп. Но второе ненадежно, т.к. у объекта могут поменять ссылку до записи.
   TumenJan
 
8 - 21.05.19 - 11:43
Ребята ничего не понял, так как запретить создание документа копированием(((
   yurikmellon2
 
9 - 21.05.19 - 11:46
(8) судя по всему позвать программиста...
Кодить надо. Нет такой настройки.
   Mikeware
 
10 - 21.05.19 - 11:49
опять бородатая девушка....
   TumenJan
 
11 - 21.05.19 - 11:50
Я нашла вот такую процедуру:
Если ЭтаФорма.ПараметрОбъектКопирования <> Неопределено Тогда 
    Отказ = Истина; 
    Предупреждение("Копирование запрещенно"); 
КонецЕсли;

Скажите что написать вместо слова : ЭтаФорма
   TumenJan
 
12 - 21.05.19 - 11:51
Я не бородатая))
   TumenJan
 
13 - 21.05.19 - 11:53
если что я могу дать удаленный доступ TeamViewer
   catena
 
14 - 21.05.19 - 11:53
Тамен джан, а кроме поиска готовых процедур, какие-нибудь книги были прочитаны?
   TumenJan
 
15 - 21.05.19 - 11:54
да я изучаю
   catena
 
16 - 21.05.19 - 11:54
(13)Круто. Сколько готовы заплатить за эту услугу?
   sqr4
 
17 - 21.05.19 - 11:54
(13) давай инсту для начала
   TumenJan
 
18 - 21.05.19 - 11:54
Вот полный текст:

Как запретить создание документа копированием в 1с.

Платформа: 8.2, 8.3 
Формы: Обычные, Управляемые 
Конфигурация: любая 
Релиз: любой 
Страница актуализирована: 06.02.2017

Запрет копирования документа.
Как запретить копирование документа? Добавить в процедуру формы документа "ПередОткрытием" следующий код:

Если ЭтаФорма.ПараметрОбъектКопирования <> Неопределено Тогда 
    Отказ = Истина; 
    Предупреждение("Копирование запрещенно"); 
КонецЕсли;
   catena
 
19 - 21.05.19 - 11:54
(15)Это хорошо. Чем отличается модуль формы от модуля объекта?
   TumenJan
 
20 - 21.05.19 - 11:55
Что такое инсту
   catena
 
21 - 21.05.19 - 11:55
(17)Ахах, ну все, забирай, теперь ты в ответе)))
   TumenJan
 
22 - 21.05.19 - 11:56
в модуле формы тебе доступна сама форма напрямую ,а в модуле объекта ты работаешь с самим объектом
   Фрэнки
 
23 - 21.05.19 - 11:56
(18) открой форму документа в конфигураторе и создай или проверь наличие процедуры-обработчика ПередОткрытием
   sqr4
 
24 - 21.05.19 - 11:57
(21) ЩА научим
   sqr4
 
25 - 21.05.19 - 11:57
(20) Инстаграм)
   Фрэнки
 
26 - 21.05.19 - 11:57
(20) инстаграмм твой выпрашивает... ты что, в самом деле бородатая, что не знаешь молодежного слэнга?
   TumenJan
 
27 - 21.05.19 - 12:00
ну вот приехали((( да я бородатая)) и что из-этого.

Подскажите что написать:
Если ЭтаФорма.ПараметрОбъектКопирования <> Неопределено Тогда 
    Отказ = Истина; 
    Предупреждение("Копирование запрещенно"); 
КонецЕсли;
   lodger
 
28 - 21.05.19 - 12:03
(27) ну так и пиши.
   Фрэнки
 
29 - 21.05.19 - 12:05
(27) тебе все выше русским языком написано. Кратко повторю
1) Открываешь форму нужного тебе документа в Конфигураторе
2) Ищи на форме включенный обработчик события ПередОткрытием
3) вставляй в процедуру обработчик код из (27) без изменения текста
   TumenJan
 
30 - 21.05.19 - 12:07
да я так и сделала. Открыла программу, выбираю документ - вот:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаСписка.Форма(5)}: Поле объекта не обнаружено (ПараметрОбъектКопирования)
    Если ЭтаФорма.ПараметрОбъектКопирования <> Неопределено Тогда
 
 Рекламное место пустует
   trooba
 
31 - 21.05.19 - 12:17
(30) ЭтотОбъект.ПолучитьФорму().ПараметрОбъектКопирования
   trooba
 
32 - 21.05.19 - 12:18
Вместо ЭтаФорма.ПараметрОбъектКопирования
   fisher
 
33 - 21.05.19 - 12:22
(30) Это пример для обычных форм. У вас форма управляемая или обычная?
   TumenJan
 
34 - 21.05.19 - 12:25
Вот так написала:
Если ЭтотОбъект.ПолучитьФорму() <> Неопределено Тогда 
    Отказ = Истина; 
    Предупреждение("Копирование запрещенно"); 
КонецЕсли;


При проверке выдает:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаСписка.Форма(5,7)}: Переменная не определена (ЭтотОбъект)
    Если <<?>>ЭтотОбъект.ПолучитьФорму() <> Неопределено Тогда  (Проверка: Толстый клиент (обычное приложение))
   catena
 
35 - 21.05.19 - 12:27
Форма.ФормаСписка - откуда у формы списка объект копирования?
Продолжим, чем форма объекта отличается от формы списка?
   TumenJan
 
36 - 21.05.19 - 12:31
в форме объекта можно изменять, а в форме списка выбирать - наверное
   trooba
 
37 - 21.05.19 - 12:31
(34) Перед открытием в форме документа, а не списка.
   Фрэнки
 
38 - 21.05.19 - 12:33
(30) все-таки написано было, что текст дается для формы _объекта_ , т.е. _документа_, но не списка

Если сделаешь в форме документа, то все получится.
   TumenJan
 
39 - 21.05.19 - 12:33
как исправить эту ошибку((
   Фрэнки
 
40 - 21.05.19 - 12:33
(39) так нет никакой ошибки
   Фрэнки
 
41 - 21.05.19 - 12:35
просто сделай все в форме _документа_ , не надо пытаться это повторять в форме списка
   TumenJan
 
42 - 21.05.19 - 12:39
Да я не той форме делала, простите меня ребята.
Сейчас в форме сделала, при проверке выходит вот:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(16,15)}: Обнаружено логическое завершение исходного текста модуля
КонецПроцедуры<<?>> (Проверка: Толстый клиент (обычное приложение))
   trooba
 
43 - 21.05.19 - 12:41
(42) Что то лишнее в процедуру вставила. весь код процедуры смотри
   TumenJan
 
44 - 21.05.19 - 12:45
Пишет что Процедура или функция с указанным именем уже определена (ПередОткрытием)
   Mikeware
 
45 - 21.05.19 - 12:45
Ошибка там же, где и всегда...
   catena
 
46 - 21.05.19 - 12:46
(44)Это очень большая проблема, боюсь, силами форума не решить
   trooba
 
47 - 21.05.19 - 12:47
(44) потому что 2 раз добавила, а нужно было в существующую вставить код
   TumenJan
 
48 - 21.05.19 - 12:52
Какая я же я бородатая мозг расплавился, Ребята всем большое СПАСИБО))), извините за "Тупость", наконец-то все получилось, еле еле разобралась. И все получилось. Буду читать книгу по программировании для новичков
   hhhh
 
49 - 21.05.19 - 12:52
(44) ну не определяйте функцию ПередОткрытием 2 раза.
   TumenJan
 
50 - 21.05.19 - 13:09
А можете мне еще помочь на другим вопросом?
   trooba
 
51 - 21.05.19 - 13:10
Задавай
   НЕА123
 
52 - 21.05.19 - 13:23
С Днем Рождения!
   trooba
 
53 - 21.05.19 - 13:25
(52) +1 :)
   TumenJan
 
54 - 21.05.19 - 13:48
коллеги поздравляли)), спасибо и вам за поздравления. Но сейчас не до ДР,

Есть вот такое:

В отчете о проведении аудита в поле «Описание» добавить проверку на заполненность (не должно быть только пробелов, точек или запятых)

Старалась правильно описать проблему
   trooba
 
55 - 21.05.19 - 13:52
(54) ПередЗаписью() Если СокрЛП(Описание)="" или СтрНайти(","Описание)>0 или СтрНайти("."Описание)>0  тогда Отказ=Истина; КонецЕсли;
   TumenJan
 
56 - 21.05.19 - 14:07
Все правильно поставила, но вышло Вот:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(264,59)}: Ожидается символ ')'
    Если СокрЛП(ОписаниеРеакцияРаботника)="" или СтрНайти(","<<?>>ОписаниеРеакцияРаботника)>0 или СтрНайти("."ОписаниеРеакцияРаботника)>0  тогда Отказ=Истина;  (Проверка: Толстый клиент (обычное приложение))
   trooba
 
57 - 21.05.19 - 14:11
СтрНайти(",",ОписаниеРеакцияРаботника)>0 или СтрНайти(".",ОписаниеРеакцияРаботника)>0 надо запятые поставить, между кавычкой и ОписаниеРеакцияРаботника
   НЕА123
 
58 - 21.05.19 - 14:14
Отказ = ПустаяСтрока(СтрЗаменить(СтрЗаменить(Описание,".",""),",",""))
   TumenJan
 
59 - 21.05.19 - 14:16
Извините меня, все поставил, но опять ВОТ:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(264,47)}: Процедура или функция с указанным именем не определена (СтрНайти)
    Если СокрЛП(ОписаниеРеакцияРаботника)="" или <<?>>СтрНайти(",",ОписаниеРеакцияРаботника)>0 или СтрНайти(".",ОписаниеРеакцияРаботника)>0  тогда Отказ=Истина;  (Проверка: Толстый клиент (обычное приложение))
{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(264,92)}: Процедура или функция с указанным именем не определена (СтрНайти)
    Если СокрЛП(ОписаниеРеакцияРаботника)="" или СтрНайти(",",ОписаниеРеакцияРаботника)>0 или <<?>>СтрНайти(".",ОписаниеРеакцияРаботника)>0  тогда Отказ=Истина;  (Проверка: Толстый клиент (обычное приложение))
   trooba
 
60 - 21.05.19 - 14:18
(59) ошибся, параметры в СтрНайти(",",ОписаниеРеакцияРаботника)>0 наоборот должны быть СтрНайти(ОписаниеРеакцияРаботника,",")>0
   TumenJan
 
61 - 21.05.19 - 14:23
Поставила, но Вышло опять:

{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(264,47)}: Процедура или функция с указанным именем не определена (СтрНайти)
    Если СокрЛП(ОписаниеРеакцияРаботника)="" или <<?>>СтрНайти(ОписаниеРеакцияРаботника,",")>0 или СтрНайти(ОписаниеРеакцияРаботника,".")>0  тогда Отказ=Истина;  (Проверка: Толстый клиент (обычное приложение))
{Документ.ОтчетОПроведенииАудита.Форма.ФормаДокумента.Форма(264,92)}: Процедура или функция с указанным именем не определена (СтрНайти)
    Если СокрЛП(ОписаниеРеакцияРаботника)="" или СтрНайти(ОписаниеРеакцияРаботника,",")>0 или <<?>>СтрНайти(ОписаниеРеакцияРаботника,".")>0  тогда Отказ=Истина;  (Проверка: Толстый клиент (обычное приложение))
   Флориан
 
62 - 21.05.19 - 14:27
(61) вместо "СтрНайти" "Найти"
   trooba
 
63 - 21.05.19 - 14:33
(62) Найти Устаревшая, рекомендуют СтрНайти
   TumenJan
 
64 - 21.05.19 - 14:33
Ребята Вы просто умницы, спасибо Вам большое. Все получилось.

А можно чтобы сообщение выходило примерно такой текст"Не заполнено"
   trooba
 
65 - 21.05.19 - 14:34
Сообщить("Не заполнено"); перед Отказ=Истина;
   stix2010
 
66 - 21.05.19 - 14:43
Круто. Научили возможно бородатую девушку говнокодить. Ппц, как запретить копирование -  при открытии формы дать отказ - ох**еть. Покопались в модуле формы, зачем? Чем модуль объекта  или подписка не угодили? Причем если УФ, то модуль объекта может быть в расширении.
 
 Рекламное место пустует
   TumenJan
 
67 - 21.05.19 - 14:44
СПАСИБО БОЛЬШОЕ РЕБЯТА, ВЫ ТАКИЕ УМНЫЕ.
   Фрэнки
 
68 - 21.05.19 - 14:45
(66) умник
Ну дай развернутое свое решение, кто тебе не дает
   Вафель
 
69 - 21.05.19 - 14:46
лучше не запрещать, а очищать нужные поля.
так юзер экспириенс не страдает
   trooba
 
70 - 21.05.19 - 14:54
(69) Ну все поле может не стоит очищать... из-за 1 лишней запятой
   trooba
 
71 - 21.05.19 - 14:57
(66) В ошибке явно написано Толстый клиент, обычное приложение. При постановке задачи не говорилось, что данная процедура должна отрабатывать при программном копировании документов. Поэтому модуль объекта тут незачем. Подписка? Какая подписка... ты бы хоть читал
   НЕА123
 
72 - 21.05.19 - 15:07
если есть в описании точка или запятая - то ...
это (55)
   Krendel
 
73 - 21.05.19 - 15:12
(0) Убери кнопку копирования из меню
   stix2010
 
74 - 21.05.19 - 15:15
(71) Как запретить создание документа копированием.  

Делается без снятия с поддержки модулей.
для ТК
Процедура ПодпискаНаСобытие1ПриКопировании(Источник, ОбъектКопирования) Экспорт
    Отказ = Истина;
КонецПроцедуры

Для УФ

модуль документа в расширении

&Перед("ПриКопировании")
Процедура Т_Доп_ПриКопировании(ОбъектКопирования)
    Отказ=Истина;
КонецПроцедуры
   Фрэнки
 
75 - 21.05.19 - 15:27
(74) не работает твое решение через модуль расширение для УФ

Процедура обработчик ПриКопировании не обрабатывает Отказ = Истина
   Фрэнки
 
76 - 21.05.19 - 15:34
(74) и через подписку ПриКопировании тоже не работает. Нет обработки на Отказ = Истина
   stix2010
 
77 - 21.05.19 - 15:40
чет я погорячился, ПриКопировании входящего параметра Отказ нет. Но при других методах, лучше делать так.
   stix2010
 
78 - 21.05.19 - 16:03
хотя  логично использовать (6), а не запрещать.
   _Дайвер_
 
79 - 21.05.19 - 17:25
Вы только что видели рождение будущего архитектора 1С
   TumenJan
 
80 - 22.05.19 - 07:47
Привет всем, вопрос:

Есть пять колонок: ОД; ОУ; Риск легкой травмы; Риск тяжелой травмы; Риск смертельной травмы.

Проблема:
1) вместо флажков при выборе какой-либо колонки выставляется 1 или 0.


Задача:  1. Замена использование числовых значений («1») на флажок («V»).
         2. Если поставили флажок в колонке "ОД", то можно поставить только один флажок из 3 колонок " Риск легкой травмы; Риск тяжелой травмы; Риск смертельной травмы " 
3) Также и с колонкой "ОУ"
   TumenJan
 
81 - 22.05.19 - 07:51
Вот код который ставит 0 но нужно ставить флажок:

 ТД = Элемент.ТекущиеДанные;
    Колонка = Элемент.ТекущаяКолонка.Имя;
    Если Колонка = "РискЛегкойТравмы" Тогда
        Если ТД.РискЛегкойТравмы > 0 Тогда
            ТД.РискТяжелойТравмы = 0;
            ТД.РискСмертельнойТравмы = 0;
        КонецЕсли;    
    ИначеЕсли Колонка = "РискТяжелойТравмы" Тогда
        Если ТД.РискТяжелойТравмы > 0 Тогда
            ТД.РискЛегкойТравмы = 0;
            ТД.РискСмертельнойТравмы = 0;
        КонецЕсли;    
    ИначеЕсли Колонка = "РискСмертельнойТравмы" Тогда
        Если ТД.РискСмертельнойТравмы > 0 Тогда
            ТД.РискТяжелойТравмы = 0;
            ТД.РискЛегкойТравмы = 0;
        КонецЕсли;    
    ИначеЕсли Колонка = "ОД" Тогда
        Если ТД.ОД > 0 Тогда
            ТД.ОУ = 0;
        КонецЕсли;    
    ИначеЕсли Колонка = "ОУ" Тогда
        Если ТД.ОУ > 0 Тогда
            ТД.ОД = 0;
        КонецЕсли;    
    КонецЕсли;
   Evgenchik
 
82 - 22.05.19 - 08:27
так сделай булево, а не число
   TumenJan
 
83 - 22.05.19 - 08:29
спасибо, но я сама разобралась.
а вот по второму можете помочь:

2. Если поставили флажок в колонке "ОД", то можно поставить только один флажок из 3 колонок " Риск легкой травмы; Риск тяжелой травмы; Риск смертельной травмы " 
3) Также и с колонкой "ОУ"
   yavasya
 
84 - 22.05.19 - 08:35
(83) Если поставили флажок в колонке "ОД", то можно поставить только один флажок из 3 колонок " Риск легкой травмы; Риск тяжелой травмы; Риск смертельной травмы "  
Надо запомнить и включить в синтаксис помощник предупреждений! Тогда пользователи нгачнут думать)
   TumenJan
 
85 - 22.05.19 - 08:38
Добрый день!

На форме есть две таблица данных.
1 таблица имеет колонки: №, Категории, и т.д.
2 таблица имеет колонки: №, ФИО, Категории 

Внимание Вопрос: Как можно сделать так, чтобы при выборе строки с данными на колонке "Категории" в первой таблице, выводились такие же данные в строке "Категория" во второй таблице.
   sqr4
 
86 - 22.05.19 - 08:41
Юзать отбор строк
   yavasya
 
87 - 22.05.19 - 08:52
(85) нужно сделать все в одной таблице, это не логично соединяться по номеру строки
   yavasya
 
88 - 22.05.19 - 08:53
(85) в Управляемом приложении это делается в цикле (добавляются реквизиты на динамического списка на форме)
   TumenJan
 
89 - 22.05.19 - 09:02
(88) а как это сделать
   yavasya
 
90 - 22.05.19 - 09:16
(89) https://helpf.pro/faq/view/1580.html
тут рассмотрен существующий динамический список, а тебе нужно добавить колонки в динамический списоки программно дозаполнить в цикле
   hhhh
 
91 - 22.05.19 - 10:54
(90) да у нее обычные формы


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.