|
Программное создание связанных документов (на основании) | ☑ | ||
---|---|---|---|---|
0
Deeslav
09.02.20
✎
20:40
|
Друзья, всем привет! Сразу оговорюсь, я начинающий разработчик, и до того, как обратиться за помощью сюда, полтора дня безвылазно пытался наGooglлить информацию - к сожалению безрезультатно.
Задача следующая: Есть НЕтиповой документ. Необходимо, чтобы при его проведении создавать движения ТИПОВОГО документа (он на замке). Причем не просто создавать документ с помощью "Документы.[НазваниеДокумента].СоздатьДокумент()", а сделать это так, чтобы можно было сформировать отчет "Связанные документы", да и вообще система понимала - что документы связаны между собой. Вопрос: Возможно ли это сделать, не залезая в процедуру Типового документа ОбработкаЗаполнения (а соответственно, не снимая его с замка)? Возможно у кого-то был опыт реализации подобного, ткните что можно почитать на эту тему. Спасибо! |
|||
1
AlvlSpb
09.02.20
✎
20:54
|
(0) Расширения в помощь
|
|||
2
Deeslav
09.02.20
✎
21:08
|
(1) Процедуры в расширении, насколько я знаю, вызываются после, либо вместо основого метода. Тут они разве подойдут?
Если вызывать после, то программа попадет в исключение, т.к. в процедур "ОбработкаЗаполнения" есть вот такой кусок кода, который проверяет на тип документа: Если ТипЗнч(ОбъектОснование) = Тип("ДокументСсылка.ЗаказКлиента") Тогда ЗаполнитьВыпускПродукцииНаОснованииЗаказаКлиента(ОбъектОснование); ИначеЕсли ТипЗнч(ОбъектОснование) = Тип("ДокументСсылка.ЗаказДавальца") Тогда [тут много кода] Иначе ВызватьИсключение СтрШаблон(НСтр("ru = 'Заполнение на основании документа %1 не предусмотрено. Обратитесь к администратору.';|en = 'Population on the %1 document basis is not provided. Contact administrator.'"), ОбъектОснование); КонецЕсли; Если вызывать вместо, то это придется весь код процедуры переносить в расширение и там дописывать свой блок ИначеЕсли. Это рациональное решение? (Я просто пока что не могу дать оценку, т.к. нет опыта) |
|||
3
AlvlSpb
09.02.20
✎
21:17
|
(2) Есть еще и Перед (это так, к слову) Во-первых, с 8.3.15 теперь в процедурах можно вставлять код в действующую процедуру (аннотация &ИзменениеИКонтроль) и во-вторых, как правило кроме функций (где только ВМЕСТО) всегда удается найти КАК сделать Перед или После
|
|||
4
Deeslav
09.02.20
✎
21:35
|
(3) А вот на счет &ИзменениеИКонтроль - что-то интересное, уже ушел изучать. Спасибо за ответ)
|
|||
5
RomanYS
09.02.20
✎
21:46
|
(4) В типовых пока режим совместимости ниже.
ОбработкаЗаполнения вполне перехватывается подписками, можно обойтись без расширений |
|||
6
AlvlSpb
09.02.20
✎
21:54
|
(5) Эмм. А как добавить подписку не разрешив редактирование не снимая с поддержки? А если разрешить, то почему не изменить режим совместимости?
|
|||
7
RomanYS
09.02.20
✎
22:02
|
(6) Цитата:
"Задача следующая: Есть НЕтиповой документ. Необходимо, чтобы при его проведении создавать движения ТИПОВОГО документа (он на замке)" почему не изменить режим совместимости? Это вообще для отважных и любителей сюрпризов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |