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

Здравствуйте, Я копирую документ, при этом часть реквизитов нового документа не заполняются значениями старого. Есть какие — то настройки или предопределенная процедура, заполняющая новый документ?

в модуле объекта есть процедура «ПриКопировании»

также в форме можно перехватить, при открытии, перед открытием

эта процедура пустая, а документ заполняется почти полностью

У каждого реквизита документа есть флаг «Заполнять из данных заполнения»

+ подписки тоже могут быть

документ ЗаявкаНаРасходованиеСредств, УТП.

на реквизитах , которые заполняются, галочки пустые

там процедура приОткрыти в которой смотри проверку на Если НЕ ЭтоНовый Тогда

включи замер производительности, нажми скопировать, отключи замер. Если дело в коде — увидишь сразу

в этой процедуре реквизиты уже заполнены

Тэги: 1С 8

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

  Маркет42 - Место для твоих разработок  

Как сделать, чтобы реквизит документа не копировался

Я
   Iris-ocean

21.11.11 — 16:24

при копировании документа? Кроме как программно прописывать всю процедуру копирования?

  

Партнерская программа EFSOL Oblako

   luckyluke

1 — 21.11.11 — 16:25

(0) Очистить, например, при открытии.

   Креатив

2 — 21.11.11 — 16:27

(0)Может подписаться на событие прикопировании?

   Defender aka LINN

3 — 21.11.11 — 16:28

Копирование — это целое событие.

   Iris-ocean

4 — 21.11.11 — 16:28

мне казалось типа галочка была в свойствах «не копировать при копировании объекта»…или это в 77 была

   Ns33

5 — 21.11.11 — 16:40

В модуле документа:

Процедура ПриКопировании(ОбъектКопирования)

   ДокументОснование=»»;

КонецПроцедуры

  

Iris-ocean

6 — 21.11.11 — 16:50

(5) да всё, это понятно….см (4)

Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru

При вызове стандартной команды ввода на основании выполняется создание нового объекта и вызов в модуле объекта обработчика события ОбработкаЗаполнения(). В этом событии должен быть реализован алгоритм заполнения данных объекта из данных объекта-основания. Именно этот обработчик генерируется конструктором ввода на основании:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Клиенты") Тогда
        // Заполнение шапки
        Клиент = ДанныеЗаполнения.Ссылка;
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры

Следует учитывать, что этот обработчик будет использоваться не только при вводе на основании. Он будет вызываться и при вызове метода объекта Заполнить():

НовыйДокумент = Документы.РасходнаяНакладная.СоздатьДокумент();
НовыйДокумент.Заполнить(ВыбранныйКлиент);
ФормаДокумента = НовыйДокумент.ПолучитьФорму();
ФормаДокумента.ПараметрОснование = ВыбранныйКлиент;
ФормаДокумента.Открыть();

Таким образом, он является стандартным местом, в котором реализуется заполнение данных объекта из данных объекта основания без учета того, откуда и зачем вызывается это заполнение. Соответственно в этом обработчике можно только выполнять заполнение данных и нельзя делать каких-либо дополнительных действий связанных с интерфейсом системы.

Аналогично при копировании вызывается обработчик события ПриКопировании(), в котором можно дополнить стандартное заполнение данных выполняемое системой при копировании объекта. Этот обработчик вызывается, как при интерактивном копировании, так и при вызове метода Скопировать().

Кроме того, расширения форм объектов предоставляют свойства ПараметрОснование и ПараметрОбъектКопирования, которые заполняются системой при выполнении стандартных команд ввода на основании и копирования. Значения этих свойств могут использоваться в обработчиках формы для определения того, что при открытии формы выполнялся ввод на основании или копирование.

Справка

ДокументСсылка.ИмяДокумента.Скопировать()

Возвращаемое значение:

  • Тип: ДокументОбъект.

Описание:

  • Создает новый документ копированием существующего. Использование метода не приводит к записи созданного объекта в базу данных.

Доступность:

  • Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер).
ДокументОбъект.ИмяДокумента.ПриКопировании(ОбъектКопирования)

Параметры:

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

Описание:

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

Поиск:
1С:Предприятие • Ввод на основании • Заполнить • Копировать • Обработка заполнения • Параметр • Параметр объект копирования • Параметр основание • Событие

 +1 

   

Распечатать

Как определить при добавлении нового документа, что он добавляется копированием?

Есть расширение формы документа ПараметрОбъектКопирования. В него при копировании помещается ссылка на документ оригинал.
Также есть расширение ПараметрОснование, в нем ссылка на основание.

Вот пример:
Код 1C v 8.х

 Процедура ПриОткрытии()

Если ЭтоНовый() Тогда

Если ПараметрОбъектКопирования = НЕОПРЕДЕЛЕНО Тогда
// заполняем реквизиты значениями по умолчанию
...

Иначе
...
КонецЕсли;
...

КонецЕсли;
...

КонецПроцедуры

Еще при копировании возникает событие в модуле объекта ПриКопировании(<ОбъектКопирования>)
Параметры:
<ОбъектКопирования>
Тип: ДокументОбъект.
Исходный документ, который является источником копирования.
Описание:
Возникает при создании документа копированием.
См. также:
ДокументСсылка, метод Скопировать

Войти или зарегистрироваться

[РЕШЕНО] При копирование

Тема в разделе «Конфигурирование на платформе «1С:Предприятие 8″», создана пользователем Эмиль0690, 13 ноя 2015.




0/5,
Голосов: 0
  1. TopicStarter Overlay

    Эмиль0690

    Offline

    Эмиль0690
    Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    331
    Симпатии:
    2
    Баллы:
    29

    Добрый день!
    Подскажите пожалуйста, каким образом можно очистить реквизит с типом строка при копирование документа?

    Код:
    Процедура ПриКопировании(ОбъектКопирования)
            СуммаПриходаNC  = 0;
            Комментарий = 0;
            //ВидДокумент = Справочник.ВидДокумент.ПКОм3;
       
    КонецПроцедуры

    реквизит называется Комментарий, есть процедура ПриКопирование в модуле документа но при копирование дока сумма не копируется т.е очистится
    а реквизит Комментарий с типом строка вставляется (ноль) 0
    как сделать что ровнялся не на нулю а на очистить?
    Спасибо!


    Эмиль0690,
    13 ноя 2015
    #1

  2. Flash-Dance

    Offline

    Flash-Dance
    Профессионал в 1С

    Регистрация:
    20 май 2012
    Сообщения:
    365
    Симпатии:
    42
    Баллы:
    54

    //двойные кавычки
    Комментарий = «»;


    Flash-Dance,
    13 ноя 2015
    #2
  3. TopicStarter Overlay

    Эмиль0690

    Offline

    Эмиль0690
    Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    331
    Симпатии:
    2
    Баллы:
    29

    Спасибо!


    Эмиль0690,
    13 ноя 2015
    #3
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
Похожие темы

  1. Tasya

    8.х
    Копирование документа

    Tasya,
    22 окт 2014
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    2
    Просмотров:
    918
    Tasya
    22 окт 2014

Загрузка…
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

Понравилась статья? Поделить с друзьями:

Другие крутые статьи на нашем сайте:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии