|
Ввод на основании с отбором. |
☑ |
0
skvitronit
25.06.17
✎
18:12
|
Добрый день, прошу помощи с такой задачей.
Есть два документа, Документ1 и Документ2.
Документ 2 вводиться на основании документа 1. При вводе на основании нужно что бы пользователю выводилось окно формы, в этом окне был список контрагентов из ТЧ Документа1(основания), при выборе контрагента, в ТЧ документа2 переносились строки только с выбранным контрагентом. И очень желательно не трогать документ1...
|
|
1
Имитация работы
25.06.17
✎
18:17
|
...эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи.
|
|
2
Имитация работы
25.06.17
✎
18:18
|
Что конкретно вызывает трудности?
|
|
3
skvitronit
25.06.17
✎
18:23
|
(2) Создал общую форму, вызываю её ПриОткрытии документа, а как её заполнить данными не особо понятно, форма открывается на клиенте(Через ОткрытьФорму("НазваниеФормы"); и как туда пробросить данные для заполнения и собственно заполнить форму этими данными, в что их записать (реквизит) вот это и вызывает трудности :(
*Начинающий программист 1с.
|
|
4
Имитация работы
25.06.17
✎
18:25
|
Формы обычные или управляемые?
|
|
5
skvitronit
25.06.17
✎
18:26
|
(4) Управляемые
|
|
6
skvitronit
25.06.17
✎
19:17
|
Никто с таким не сталкивался ?
|
|
7
Zhuravlik
25.06.17
✎
19:19
|
(0)
1. Для Документ2 добавить реквизит (если его нет) ДокументОснование, если есть - расширить тип, включив туда Документ1
2. В ОбработкаЗаполнения Документ2 заполнять этот реквизит значением ссылки Документ1 (ДокументОснование = ДанныеЗаполнения)
3. В ПриОткрытии Документ2 выполнять проверку:
Если Объект.Ссылка.Пустая() Тогда
// Это новый документ..
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
// Новый документ вводится на основании..
Если ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.Документ1") Тогда
// Действия по заполнению...
4. Общая форма здесь - не нужна. Здесь вообще форма не нужна, если выбираем Контрагента - можно просто выбрать из списка.
|
|
8
Zhuravlik
25.06.17
✎
19:23
|
+ Хотя для разделения кода, в принципе можно и форму добавить - где реализовать основной функционал заполнения, не загружая особо основную форму Документ2. Будет читабельней. Но это не общая форма, а вспомогательная форма для Документ2
|
|
9
Diman000
25.06.17
✎
19:44
|
(7)
Судя по задаче, действия по заполнению потребуют обращения к БД, поэтому лучше ПриСозданииНаСервере определить, что это ввод нового документа на основании, не уходя с сервера заполнить значения для выбора и передать это в параметры формы. А ПриОткрытии выбирать из готового.
Понятно, что в такой задаче это мелочь, которая почти наверняка минимально скажется на общей производительности. Но это приучает к правильному подходу.
|
|
10
Zhuravlik
25.06.17
✎
22:11
|
(9) +1
|
|
11
skvitronit
26.06.17
✎
08:33
|
(7) Большое спасибо, буду пробовать.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший