|
При копировании документа не все реквизиты копируются |
☑ |
0
prilforreal
15.03.18
✎
09:19
|
Добрый день! Конфа самописная, 1с 8.3 Есть документ ПредзаказТовара, при копировании заполняются все реквизиты кроме кассы (Поле пустое) и Даты (Дата ставится текущая), мне же нужно чтобы все реквизиты, кроме номера документа конечно же совпадали с документом основания. Ни в модуле формы, ни в модуле объекта нет процедур связаных с копированием.
|
|
1
Повелитель
15.03.18
✎
09:24
|
(0) Ни в модуле формы, ни в модуле объекта нет процедур связаных с копированием.
Думаю есть.
|
|
2
Повелитель
15.03.18
✎
09:25
|
(1) В форме, ПриОткрытии, ПередОткрытием, Модуль внизу без процедур.
В Модуле, ПриКоприовании, Модуль внизу без процедур.
|
|
3
prilforreal
15.03.18
✎
09:28
|
(1) Есть то конечно, но у меня ничего такого не описано, насколько я понимаю мне нужно в модуле объекта, в процедуре при копировании написать что то вроде
ЭтотОбъект.Дата=ДокументОснования.Дата
ЭтотОбъект.Касса=ДокументОснования.Касса
|
|
4
prilforreal
15.03.18
✎
09:30
|
(2) Подскажите, будьте любезны, как ссылку на основание получить?)
|
|
5
catena
15.03.18
✎
09:35
|
При чем тут копирование и ДокументОснование?
|
|
6
catena
15.03.18
✎
09:38
|
Т.е. сперва кодом где-то эти параметры затираются, а потом ты их обратно будешь добавлять. Тебе все равно придется искать, чтобы стратегически свои пляски вставить после затирания, иначе толку не будет.
|
|
7
prilforreal
15.03.18
✎
09:38
|
(5) Извините, ОбъектКопирования)
Пишу:
Процедура ПриКопировании(ОбъектКопирования)
ЭтотОбъект.Дата=ОбъектКопирования.Дата;
ЭтотОбъект.Касса=ОбъектКопирования.Касса;
КонецПроцедуры
Дата копируется, касса остается пустой.
|
|
8
prilforreal
15.03.18
✎
09:40
|
Ага! Нашел!
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// ПриЗаписиПерепроводить(1);
Если ЭтоНовый() тогда
Автор=ТекПользователь;
Касса=Автор.Касса3;
КонецЕсли;
КонецПроцедуры
Значит теперь нужно написать условие:
Если не Копирование Тогда
Конец если;
|
|
9
prilforreal
15.03.18
✎
09:41
|
Стоп, тут же указано ЕСЛИ ЭтоНовый, тогда почему касса не копируется?
|
|
10
Fish
гуру
15.03.18
✎
09:42
|
(9) Потому что, когда копируешь, то создаётся НОВЫЙ документ в базе :))
|
|
11
prilforreal
15.03.18
✎
09:44
|
(10) Еще только утро, а фляжка свистит =D Я понял уже)
|
|
12
prilforreal
15.03.18
✎
09:51
|
В итоге получилось так:
Процедура ПриКопировании(ОбъектКопирования)
ЭтотОбъект.Дата=ОбъектКопирования.Дата;
ЭтотОбъект.Касса=ОбъектКопирования.Касса;
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ЭтоНовый() тогда
Автор=ТекПользователь;
Если ПараметрОбъектКопирования=0 Тогда
Касса=Автор.Касса3;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший