Имя: Пароль:
1C
1С v8
Кнопка "Выбрать" на форме выбора или как выполнить нажатие кнопки "Выбрать"
, , ,
0 prostovityaz
 
20.01.16
18:46
Добрый день!

Обычное приложение.

Какие мысли есть, чтобы выполнить нажатие на кнопку "Выбрать" на форме выбора документа/справочника?

в открытой форме делаю отбор по ссылке, полученной из формы владельца.

кликать мышкой и СОМ не предлагать smile.gif делаю автоматизацию.

хотелка: в форме выбора симитировать нажатие кнопки "Выбрать".
1 Garykom
 
гуру
20.01.16
18:53
1. найти стенку рядом покрепче
2. отойти от нее
3. встать к ней лицом
4. начать бежать разогнаться по максимуму
5. перед стеной не останавливаясь выполнить наклон туловища вперед
6. если не помогло с 1 раза повторять с п. 2
2 ДенисЧ
 
20.01.16
18:55
Идея идиотская. Зачем тебе этой надо? Есть же сценарное тестирование давно
3 ДенисЧ
 
20.01.16
18:56
(1) ты забыл главный пункт - намазать стену ядом.
4 mehfk
 
20.01.16
18:57
Может автору нужно ОповеститьОВыборе() ?
5 Garykom
 
гуру
20.01.16
18:58
(4) это нужно при разработке конфы/обработки, а при (0) нет
6 sash-ml
 
20.01.16
19:02
7 prostovityaz
 
20.01.16
20:28
(1) это твой метод. прошу не флудить.
(4) ОповеститьОВыборе (NotifyChoice)
Синтаксис:
ОповеститьОВыборе(<ЗначениеВыбора>)
Параметры:
<ЗначениеВыбора> (обязательный)
Тип: Произвольный.
Результат выбора.

как получить этот "Результат выбора"? без человеческого вмешательства.
(5) как раз обработку и пишу.  
(6) нет, не хочу использовать, указано в (0)
8 prostovityaz
 
20.01.16
20:36
делаю автоматизированную обработку, которая пробежится по всем полям выбора на форме документа, затем откроет форму выбора каждого элемента, выберет это же значение в форме выбора.
9 User_Agronom
 
20.01.16
21:00
(0) Юноша, похоже программирование не Ваша область.
Нужно отличать нажатие кнопки (действие пользователя) от выполнения командного кода при нажатии этой кнопки (действие программы на событие).

Сымитировать действие кнопки имеет смысл в демонстрационных и обучающих программах. В программах обработки данных сиё действие бессмысленно. Тут важно какой код должен выполнится.
10 Garykom
 
гуру
20.01.16
21:06
(8) ТКВ?
11 prostovityaz
 
20.01.16
21:07
(9) т.е. мне нужно вызвать событие "ОбработкаВыбора" для каждого элемента формы? я правильно понял?
12 Garykom
 
гуру
20.01.16
21:09
(11) если вы сначала программно создали некий документ а потом хочется чтобы отработал код и дозаполнил остальные реквизиты в доке которые автоматически заполняются

то может вызвать просто этот код который и делает это автозаполнение?
13 prostovityaz
 
20.01.16
21:36
(12) я не создаю новые документы.
работаю с уже созданными документами с внесенной какой-то информацией.
14 Garykom
 
гуру
20.01.16
21:39
(13) зачем? просто никто не понял смысла что вы хотите сделать
поэтому и такая реакция

ЗЫ отличия тру 1С-ника от кодера (на других языках), в том что он не по ТЗ шаблонами фигачит,
а сначала нужно выяснить что же все таки хочет заказчик
потому что словами, да еще и письменно, они обычно не в состоянии...
15 User_Agronom
 
20.01.16
21:40
(11) Нет. Тебе нужно написать код, который приводит значения переменных в то же состояние, в которое привела бы их ОбработкаВыбора после нажатия кнопки.
16 prostovityaz
 
20.01.16
21:52
Задача от заказчика:
Необходимо написать программу, которая выполнит следующие действия в программе 1С:
1. Список всех видов документов, которые есть в программе 1С;
2. Дать возможность выбрать вид документа;
3. По выбранным видам документов, выполнить следующее:
3.1. Открыть проведенный документ;
3.2. Каждое поле выбора, которое содержит ссылочный тип данных, открыть форму выбора этого поля;
3.3. Найти значение, которое было установлено в этом поле в форме выбора;
3.4. Выбрать это значение снова на форме выбора (т.е. перевыбрать это же значение);
3.5. Выполнить перепроведение документа.
4. Показать результат выполнения.

Вот всё сделал, кроме 3.4.
17 Cyberhawk
 
20.01.16
21:58
Сколько платит заказчик?
18 prostovityaz
 
20.01.16
22:01
(17) для Вас это не должно быть важно.
я прошу помощи у опытных программистов, как выполнить этот гребанный подпункт.
19 Garykom
 
гуру
20.01.16
22:10
(18) "этот гребанный подпункт" по разному на разных платформах 1С придется выполнять с учетом типа форм
20 Serg_1960
 
20.01.16
22:13
(16) Наверное ты мне тоже скажешь "Вас это не касается", но: заказчик, как мне кажется, неверно сформулировал задачу. Пункты 3.2-3.4 - не нужны. Вместо них нужно повторно вызвать обработчики события при изменении значения поля ввода открытой формы документа.
21 prostovityaz
 
20.01.16
22:13
(19) Обычное приложение. Конфигурация УПП. 1С:Предприятие 8.3.
22 User_Agronom
 
20.01.16
22:15
(16) Это похоже на задачу для студента.
23 prostovityaz
 
20.01.16
22:16
(20) аргумент: вдруг программист, сломал права для какой-то роли. выбор из поля стал недоступным.
как-то так
24 User_Agronom
 
20.01.16
22:16
...По выбранным видам документов, выполнить следующее:
3.1. Открыть проведенный документ; ...

А если их там 100500 штук?
И каждому набор форм ...цать, реквизитов, имеющих ссылочный тип?

Жесть!
25 prostovityaz
 
20.01.16
22:16
(22) дайте решение, преподаватель :)
26 prostovityaz
 
20.01.16
22:17
(24) я открываю 1, самый последний по дате документ.
27 Garykom
 
гуру
20.01.16
22:23
(26) ...через веб клиента...
28 Garykom
 
гуру
20.01.16
22:29
(21) боюсь без нечто внешнее (ВК) эту задачу не решить
29 Garykom
 
гуру
20.01.16
22:29
(28)+ ну или нужно менять код конфы
http://catalog.mista.ru/public/16980/
30 User_Agronom
 
20.01.16
22:39
(25) Решение есть. Оно платное.
31 prostovityaz
 
20.01.16
22:39
в общем костыль это...
буду думать как обойти.

всем спасибо кто принимал участие.

буду благодарен, если у кого-то появится решение.
32 Garykom
 
гуру
20.01.16
23:06
(31) уже сказали же (30)
вот когда благодарность будет материальная тогда и поговорим
33 prostovityaz
 
21.01.16
11:31
Пока работает вот так:

Процедура ВыполнитьВыборВФормеВыбора(Ссылка, рек) //параметр "ссылка" - это ссылка значения на форме документа; "рек" - текущий элемент формы, т.е. поле выбора
ФормаВыбораСправочника = Справочники.Банки.ПолучитьФОрмуВыбора(,Рек,Ссылка);
ФормаВыбораСправочника.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
ОткрытьФорму(ФормаВыбораСправочника,,рек,,,,,);

Если ФормаВыбораСправочника.Открыта() Тогда
ФормаВыбораСправочника.Активизировать();
КонецЕсли;

ФормаВыбораСправочника.ТекущийЭлемент.ТекущаяСтрока = ссылка;
ВыборЭл = ФормаВыбораСправочника.ТекущийЭлемент.ТекущаяСтрока;

если ВыборЭл = неопределено или НЕ значениезаполнено(ВыборЭл) тогда
Сообщить("Значение "+Ссылка+" не было найдено в форме выбора справочника");
иначе
ФормаВыбораСправочника.ОповеститьОВыборе(ВыборЭл);
КонецЕсли;

КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс