Имя: Пароль:
1C
1С v8
В документе в полеввода чтоб открывался список только непроведенных документов
0 AnisaL
 
15.02.13
09:41
Добрый день форумчане) В документе есть полеввода типа ДокументСсылка.Смета, при выборе из этого поля открывается список смет. Как сделать чтоб открывались только непроведенные документы?
1 ICWiner
 
15.02.13
09:43
Отборы используй
2 AnisaL
 
15.02.13
09:44
(1) Вот так форма выбора открывается
       ФормаС = Документы.Смета.ПолучитьФормуВыбора();
           ФормаС.ВладелецФормы = ЭтаФорма;
   
           формаС.ЭлементыФормы.Найти("ПолеВвода1").Значение = ЭтотОбъект.Клиент.Ссылка;
           
           значение = ФормаС.ОткрытьМодально();
3 AnisaL
 
15.02.13
09:45
(1) В момент открытия формы?
4 AnisaL
 
15.02.13
09:50
(1) Ситуация осложняется тем, что в ФормеВыбора в событии ПриОткрытии стоит уже отбор на непроведенные документы, но пользователь ведь может снять этот отбор, тогда как?
5 AnisaL
 
15.02.13
09:56
В итоге нужно чтоб программа не давала выбрать проведенную смету, выдавалось сообщение
6 kosts
 
15.02.13
09:57
Запрещай выполнять действие если пользователь выбрал проведенный.
7 НЕА123
 
15.02.13
09:58
у списка есть НастройкаОтбора. там можно запретить, кажись.
8 kosts
 
15.02.13
09:59
(6), это универсальнее. Т.к. выбрать документ можно через ввод по строке (без формы).
9 НЕА123
 
15.02.13
09:59
(6) тоже неплохо.
10 НЕА123
 
15.02.13
10:00
(8)+1
точно. про ввод по строке забыл.
11 Wobland
 
15.02.13
10:00
похоже, я никогда не прекращу цитировать...

   ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.Использование=Истина;
   ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
   ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.Значение=СписокКонтрагентов;
12 kosts
 
15.02.13
10:01
Если у тебя форма документа, то запрещай проведение
13 Serg_1960
 
15.02.13
10:03
"похоже, я никогда не прекращу цитировать..." :) Доступность?
14 Wobland
 
15.02.13
10:03
(13) возможно. мне не нужно было
15 Serg_1960
 
15.02.13
10:07
(14) Тебе не нужно было - это твоё личноедело :) Но автор именно про "это" спрашивал в (4).
16 Wobland
 
15.02.13
10:09
(15) а, ну тогда доступность, да ;)
17 AnisaL
 
15.02.13
10:10
(6) а как? я уже все события перепробовала, куда прикрутить?
18 kosts
 
15.02.13
10:11
(17) Проведение своего документа запрещай и все дела.
19 kosts
 
15.02.13
10:11
(18) Или даже запись...
20 НЕА123
 
15.02.13
10:12
ПРиИзменении()
?
21 AnisaL
 
15.02.13
10:12
(18) Но это ведь проще всего, а вот чтобы после выбора сметы ругался, а не когда запись или проведение можно?
22 AnisaL
 
15.02.13
10:14
(20) не катит( ПриИзменении открывается когда я вручную ввожу документ, а если из списка выбирается, тогда как?
23 AnisaL
 
15.02.13
10:15
(11) Это я не поняла к чему ?)
24 НЕА123
 
15.02.13
10:20
(22) ПриИзменении срабатывает при интерактивном изменении.
если программно, то проверить перед присвоением.
или что?
25 Serg_1960
 
15.02.13
10:23
AnisaL , не совсем понял Вас :(

(4) "ФормеВыбора в событии ПриОткрытии стоит уже отбор на непроведенные документы, но пользователь ведь может снять этот отбор, тогда как?" - вот Вам пример из типовой, как можно запретить изменять значение отбора(внимание на последнюю строку):

ФормаВыбора.СправочникСписок.Отбор.Организация.Значение      = Организация;
ФормаВыбора.СправочникСписок.Отбор.Организация.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.Организация.ВидСравнения  = ВидСравнения.Равно;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Организация.Доступность = Ложь;
26 AnisaL
 
15.02.13
10:27
(24) а это в какой процедуре?или событии?
27 kosts
 
15.02.13
10:27
(26) При открытии.

Если форма выбор типовая, то запрет отбора можно не делать, а ограничиться только запретом в собитии ПриИзменении()
28 AnisaL
 
15.02.13
10:33
(25) К сожалению форма нетиповая, в ней в событии ПриОткрытии стоит отбор на непроведенные, но пользователь может снять отбор и выбрать весь список.
29 AnisaL
 
15.02.13
10:34
(27) я уже писала ПриИзменении не срабатывает(
30 Wobland
 
15.02.13
10:35
(28) ещё раз перечитай
31 Serg_1960
 
15.02.13
10:35
Уф... что-то я уже усталс вами :)

Если у поля ввода есть событие НачалоВыбора(), то логично предположить наличие события ОбработкаВыбора(), где и нужно делать контроль выбранного значения.

При чём тут другие события документа. И, кстати, ПриИзменении() срабатывает тогда, когда значение поля ввода уже изменилось!
32 AnisaL
 
15.02.13
10:36
(31) у меня не срабатывает(( я уже сама устала (
33 kosts
 
15.02.13
10:39
Я бы примерно так сделал


Процедура ПолеВвода1ПриИзменении(Элемент)
   
   Если ПолеВвода1.Проведен Тогда
       Предупреждение("Нельзя выбирать непроведенный документ");
       ПолеВвода1 = "";
   КонецЕсли;
   
КонецПроцедуры
34 Serg_1960
 
15.02.13
10:40
(32) И я об этом же говорю.

(33) ПриИзменении() - это не "то" событие, где можно отказаться от изменения :(

AnisaL , ОбработкаВыбора() - Ваш выбор! :)
35 kosts
 
15.02.13
10:43
(34) Только если ОбработкаВыбора() срабатывает при "выборе по строке"...
36 AnisaL
 
15.02.13
10:49
Ура! Удалось победить ) Сделала так:
       Процедура ПолеВвода5НачалоВыбора(Элемент, СтандартнаяОбработка)
           // открываем формы списка смет    
             СтандартнаяОбработка = Ложь;
             ФормаС = Документы.Смета.ПолучитьФормуВыбора();
           ФормаС.ВладелецФормы = ЭтаФорма;
   
           формаС.ЭлементыФормы.Найти("ПолеВвода1").Значение = ЭтотОбъект.Клиент.Ссылка;
           
           значение = ФормаС.ОткрытьМодально();
           смета = значение;
           
           Если значение <> Неопределено тогда
           
               Если Смета.Проведен = Истина тогда
                   Вопрос("Нельзя прикрепить Наряд к проведенной Смете", РежимДиалогаВопрос.Ок);
                   ЭлементыФормы.ПолеВвода5.Значение = Документы.Смета.ПустаяСсылка();
               Иначе куратор = значение.куратор;    
               КонецЕсли;
                           
           КонецЕсли;
           
       КонецПроцедуры
37 AnisaL
 
15.02.13
10:49
(34) В Обработке выбора тоже не получалось(
38 Wobland
 
15.02.13
10:51
(36) раз: ЭлементыФормы.ПолеВвода5.Значение =
два: куратор =

ничего странного не видишь?
39 AnisaL
 
15.02.13
10:52
(38) неа
40 Wobland
 
15.02.13
10:52
(39) синдром студента? путаешь данные с их визуальным представлением
41 AnisaL
 
15.02.13
10:53
(40) эту строку не я писала, поэтому не обращала внимания
42 AnisaL
 
15.02.13
10:54
(40) куратор - это данные, берется из Сметы, подставляется в ЗаказНаряд
43 Wobland
 
15.02.13
10:54
(41) я ветку, конечно, не читал, но кто тут сейчас это всё сочинял?
44 AnisaL
 
15.02.13
10:55
(43) Это два разных поля
45 Serg_1960
 
15.02.13
10:59
kosts, читаю СП...

ОбработкаВыбора() - "Возникает после выполнения выбора при: обработке выбора из списка выбора;...". Ты непутаешь с ОкончаниеВводаТекста()?

ПриИзменении() - "Возникает после изменения значения поля ввода, то есть при переходе на другой элемент управления..."

ЧЯДНТ?
46 AnisaL
 
15.02.13
11:05
(45) ЧЯДНТ - что значит?
47 Wobland
 
15.02.13
11:07
(46) что я делаю не так
(45) ВТДТ, читать СП всегда так
48 AnisaL
 
15.02.13
11:09
(47) ВТДТ - это че?
49 Serg_1960
 
15.02.13
11:11
(41) "эту строку не я писала"- :)

А строку "ЭлементыФормы.ПолеВвода5.Значение = Документы.Смета.ПустаяСсылка();" - ты писала? "ЭлементыФормы.ПолеВвода5" можно указать короче. А можно, вообще не писать. Ведь это начало выбора и стандартная обработка - ложь.

(46) Сорри, это шпилька в адрес коллеги :) ЧтоЯДелаюНеТак - общепринятое сокращение.
50 Wobland
 
15.02.13
11:11
(48) всё ты делаешь так
я уже потерял нить разговора. ЕМНИП, обработка выбора работает после осуществления выбора
51 AnisaL
 
15.02.13
11:16
(50) Э, ну хватит тут уже ругаться своими непонятными словами !
52 Wobland
 
15.02.13
11:17
(51) ИМХО знать бы надо ;)
53 Serg_1960
 
15.02.13
11:20
Если автор спросит "Что такое имхо?" - тут такое начнётца... пятница короче будет всем.
54 AnisaL
 
15.02.13
11:22
(53) Пятница уже и так идет во всю:)))
55 Wobland
 
15.02.13
11:22
AnisaL, уважь людей, спроси. а то у меня аббревиатуры уже кончаются ;)
56 AnisaL
 
15.02.13
11:25
(55) Ты имеешь ввиду - поразвлекай людей -пусть поржут, так?)
57 Serg_1960
 
15.02.13
11:26
(54) Это не та "пятница". Вот где она - OFF: ПЯТНИЦА !!!!
58 Wobland
 
15.02.13
11:28
(56) вариант последующей вольной трактовки общеизвестного гневно отметаем?
59 AnisaL
 
15.02.13
11:35
(58) ну зачем же - ничего не отметаем) даем в массы
60 kosts
 
15.02.13
12:27
(45)

ПолеВвода (TextBox)
ОбработкаВыбора (ChoiceProcessing)

Описание:
Возникает после выполнения выбора при: обработке выбора из списка выбора; обработке выбора из всех модальных диалогов выбора (например, календаря, калькулятора); обработке немодального выбора (например, из списка справочника).


Но при "выборе документа по строке" событие ОбработкаВыбора() не возникает!
Следовательно есть прямая возможность заиметь проблемы.

Вот по теме: v8: Чем чревато право "Ввод по строке"

Ввод по строке: http://v8.1c.ru/overview/PlUserInterface.htm