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

При копировании документа не все реквизиты копируются

Я
   prilforreal

15.03.18 — 09:19

Добрый день! Конфа самописная, 1с 8.3 Есть документ ПредзаказТовара, при копировании заполняются все реквизиты кроме кассы (Поле пустое) и Даты (Дата ставится текущая), мне же нужно чтобы все реквизиты, кроме номера документа конечно же совпадали с документом основания. Ни в модуле формы, ни в модуле объекта нет процедур связаных с копированием.

  

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

   Повелитель

1 — 15.03.18 — 09:24

(0) Ни в модуле формы, ни в модуле объекта нет процедур связаных с копированием.

Думаю есть.

   Повелитель

2 — 15.03.18 — 09:25

(1) В форме, ПриОткрытии, ПередОткрытием, Модуль внизу без процедур.

В Модуле, ПриКоприовании, Модуль внизу без процедур.

   prilforreal

3 — 15.03.18 — 09:28

(1) Есть то конечно, но у меня ничего такого не описано, насколько я понимаю мне нужно в модуле объекта, в процедуре при копировании написать что то вроде

ЭтотОбъект.Дата=ДокументОснования.Дата

ЭтотОбъект.Касса=ДокументОснования.Касса

   prilforreal

4 — 15.03.18 — 09:30

(2) Подскажите, будьте любезны, как ссылку на основание получить?)

   catena

5 — 15.03.18 — 09:35

При чем тут копирование и ДокументОснование?

   catena

6 — 15.03.18 — 09:38

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

   prilforreal

7 — 15.03.18 — 09:38

(5) Извините, ОбъектКопирования)

Пишу:

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

    ЭтотОбъект.Дата=ОбъектКопирования.Дата;

    ЭтотОбъект.Касса=ОбъектКопирования.Касса;

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

Дата копируется, касса остается пустой.

   prilforreal

8 — 15.03.18 — 09:40

Ага! Нашел!

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

//    ПриЗаписиПерепроводить(1);

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

        Автор=ТекПользователь;

        Касса=Автор.Касса3;

    КонецЕсли;    

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

Значит теперь нужно написать условие:

Если не Копирование Тогда

Конец если;

   prilforreal

9 — 15.03.18 — 09:41

Стоп, тут же указано ЕСЛИ ЭтоНовый, тогда почему касса не копируется?

   Fish

10 — 15.03.18 — 09:42

(9) Потому что, когда копируешь, то создаётся НОВЫЙ документ в базе :))

   prilforreal

11 — 15.03.18 — 09:44

(10) Еще только утро, а фляжка свистит =D Я понял уже)

  

prilforreal

12 — 15.03.18 — 09:51

В итоге получилось так:

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

    ЭтотОбъект.Дата=ОбъектКопирования.Дата;

    ЭтотОбъект.Касса=ОбъектКопирования.Касса;

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

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

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

        Автор=ТекПользователь;

        Если ПараметрОбъектКопирования=0 Тогда

        Касса=Автор.Касса3;

        КонецЕсли;

    КонецЕсли;    

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

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

Автор sanohec, 08 дек 2022, 16:36

0 Пользователей и 1 гость просматривают эту тему.

Вниз
Страницы1


sanohec

  • *
  • Регистрация: 2022-11-02
  • Сообщений: 11
  • Профессия: Программист 8.x

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




08 дек 2022, 16:36


Здравствуйте, каким образом при копировании документа стандартным способом копировать не все реквизиты документа, а пропустить несколько?



LexaK

  • Все гораздо проще.
  • *****
  • Регистрация: 2012-05-16
  • Сообщений: 4,107
  • Профессия: Программист 1С
  • РЕПУТАЦИЯ: 1568

Re: При копировании документа пропускать один реквизит

#1




08 дек 2022, 16:42


sanohec, в модуле документа, в процедуре ПриКопировании()
просто обнулите/очистите нужные реквизиты

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!



sanohec

  • *
  • Регистрация: 2022-11-02
  • Сообщений: 11
  • Профессия: Программист 8.x

Re: При копировании документа пропускать один реквизит

#2




08 дек 2022, 16:46


LexaK, Спасибо, всё получилось)


Вверх
Страницы1

Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

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

Опции…

Похожие темы (5)

80889


не получается установить соответствие двух реквизитов

Автор User33221

65017


Не отправляет печатную форму документа по электр. почте.

Автор Igor100500

74285


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

Автор Magn

56514


Как вызвать форму во внешней обработке обычное приложение

Автор ktu78

79820


Интеграция 1с — Битрикс через модуль обмена «1С — Битрикс (Выгрузка стандартного реквизита, как свойства)

Автор R_o_m_o_n

Рейтинг@Mail.ru

Rambler's Top100

Поиск

 


Простой
Google

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

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

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

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

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

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

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

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

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

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

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

Тэги: 1С 8

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

 +1 

   

Распечатать

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

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

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

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

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

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

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

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

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

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

Процедура предназначена для программного копирования содержимого реквизитов и/или табличных частей из одного документа (источника) в другой документ (приёмник). В параметры процедуры передаем документ-приёмник (из которого будем копировать реквизиты и/или табличные части) и документ-источник (куда будем вставлять реквизиты и/или табличные части).

В параметр СвойстваВключаемые можно передать строку с перечнем имён реквизитов (через запятую) которые будут скопированы, если параметр оставить пустым — то будут скопированы все реквизиты/табличные части.

В параметр СвойстваИсключаемые можно передать строку с перечнем имён реквизитов (через запятую) которые будут исключены (не будут скопированы), если параметр оставить пустым — то будут скопированы все реквизиты/табличные части без исключений.

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

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

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

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

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

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

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

Справка

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

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

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

Описание:

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

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

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

Параметры:

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

Описание:

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

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

Понравилась статья? Поделить с друзьями:
  • Копчение рыбы в домашних условиях как бизнес отзывы
  • Купить лобовое стекло на газель бизнес в краснодаре
  • Кораблик дзержинский московская область часы работы
  • Купить недорого дом с бизнесом в краснодарском крае
  • Коралл строительная компания санкт петербург отзывы