Имя: Пароль:
1C
1С v8
Ввод на основании с отбором.
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) Большое спасибо, буду пробовать.
AdBlock убивает бесплатный контент. 1Сергей