|
Ввести на основании сразу 2 документа | ☑ | ||
---|---|---|---|---|
0
stmnf
30.10.15
✎
14:45
|
8.1
Вопрос такой: можно ли при нажатии на стандартную кнопку ввода на основании создать сразу 2 документа? Если при нажатии на эту кнопку в исходном документе вызывается какая-нибудь функция, типа "ПередВводомНаОсновании", то, понятно, все просто. Но пока что-то подобной функции не нахожу. |
|||
1
HawkEye
30.10.15
✎
14:49
|
(0) второе основание открой из первого..
|
|||
2
anatoly
30.10.15
✎
15:10
|
(1) распишу подробнее:
в обработках заполнения обоих доков, если основание еще не является основанием для другого - вызывать создание на основании этого другого. |
|||
3
Alex unde
30.10.15
✎
15:16
|
что-то типа такого
Процедура ОбработкаЗаполнения(Основание) Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); Док.Заполнить(Основание); Док.ПолучитьФорму("ФормаДокумента").Открыть(); КонецЕсли; КонецПроцедуры |
|||
4
stmnf
30.10.15
✎
15:37
|
(3) А как сделать так, чтобы не зациклиться? Как я найду, есть ли уже что-то на основании <Основание>, если подчиненные еще не записаны?
|
|||
5
HawkEye
30.10.15
✎
15:39
|
(4) тыжпрограммист )))
|
|||
6
runoff_runoff
30.10.15
✎
15:41
|
(4) КритерииОтбораМенеджер
|
|||
7
anatoly
30.10.15
✎
15:49
|
(4) значит сначала записывай - потом заполняй другой.
|
|||
8
stmnf
30.10.15
✎
16:06
|
Не знаю, делаю вот так, смотрю в отладчике МассивСсылок, там все время пусто.
МассивСсылок = КритерииОтбора.СвязанныеДокументы.Найти(ДанныеЗаполнения); Док = Документы.ЗаданиеНаПроизводство.СоздатьДокумент(); Док.Заполнить(ДанныеЗаполнения); Док.Записать(); Док.ПолучитьФорму("ФормаДокумента").Открыть(); А может, в исходном документе реквизит специальный добавить? |
|||
9
anatoly
30.10.15
✎
16:10
|
(8) есть стандартный реквизит - ДокументОснование
|
|||
10
stmnf
30.10.15
✎
16:42
|
Ну вот как-то так работает:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ДанныеЗаполнения.Комментарий <> "1" Тогда ДанныеЗаполненияОбъект = ДанныеЗаполнения.ПолучитьОбъект(); ДанныеЗаполненияОбъект.Комментарий = "1"; ДанныеЗаполненияОбъект.Записать(); Док = Документы.ЗаданиеНаПроизводство.СоздатьДокумент(); Док.Заполнить(ДанныеЗаполненияОбъект.Ссылка); Док.ПолучитьФорму("ФормаДокумента").Открыть(); КонецЕсли; КонецПроцедуры Комментарий в качестве флага выбран временно, для тестирования. |
|||
11
stmnf
30.10.15
✎
17:53
|
А после небольшого допила конфигурации (добавления реквизита ДокументОснование и включения его в критерий отбора) заработало и так:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения) Записать(); МассивСсылок = КритерииОтбора.СвязанныеДокументы.Найти(ДанныеЗаполнения); Если МассивСсылок.Количество() < 2 Тогда Док = Документы.ЗаданиеНаПроизводство.СоздатьДокумент(); Док.Заполнить(ДанныеЗаполнения); Док.ПолучитьФорму("ФормаДокумента").Открыть(); КонецЕсли; КонецПроцедуры Единственный недостаток тут - это то, что подчиненные документы оказываются введенными независимо от действий пользователя, даже если он решить закрыть форму подчиненного документа. Впрочем, может, это и не недостаток. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |