Гость
Форумы / [игнор отключен] [закрыт для гостей] / программное отлавливание событий / 25 сообщений из 29, страница 1 из 2
26.06.2008, 18:32
    #35397482
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Помогите советом.
УПП, 8.1
Задача стоит вот в чем:
на форме элемента находится реквизит "ОтражатьВБухУчете", флаг. При интерактивном нажатии запускает процедуру "ПриИзмененииОтражатьВБухУчете(Элемент)". Процедура не экспортная, находится в модуле формы. В процедуре есть строка кода, которая требует от пользователя интерактивно ответить на вопрос. Если ответ положителен, то табличная часть заполняется счетами учета.

Код: plaintext
1.
2.
3.
Ответ = Вопрос(?(ОтражатьВБухгалтерскомУчете, "Установить", "Очистить") + 
					" реквизиты бухгалтерского и налогового учета" + 
					?(ОтражатьВБухгалтерскомУчете, " в соответствии со значениями по умолчанию?","?"), 
					РежимДиалогаВопрос.ДаНет, , , "Изменения реквизитов учета");

Я хочу прогнать ряд документов (запросом выбираю, получаю объект, форму) с тем, чтобы заполнить по умолчанию документ данными регламентированного учета (щас только по управленческому все идет).
Есть две проблемы:
1) Если процедура не экспортная, каким образом достучатся к ней из модуля внешней обработки.
2) Каким образом отловить и ответить на "Вопрос". Или каким образом передать значение в вопрос "КодВозвратаДиалога.Да" и продолжить выполнение процедуры.
С уважением, Сергей
...
Рейтинг: 0 / 0
26.06.2008, 19:05
    #35397530
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
svarohaПомогите советом.
УПП, 8.1
Задача стоит вот в чем:
на форме элемента находится реквизит "ОтражатьВБухУчете", флаг. При интерактивном нажатии запускает процедуру "ПриИзмененииОтражатьВБухУчете(Элемент)". Процедура не экспортная, находится в модуле формы. В процедуре есть строка кода, которая требует от пользователя интерактивно ответить на вопрос. Если ответ положителен, то табличная часть заполняется счетами учета.

Код: plaintext
1.
2.
3.
Ответ = Вопрос(?(ОтражатьВБухгалтерскомУчете, "Установить", "Очистить") + 
					" реквизиты бухгалтерского и налогового учета" + 
					?(ОтражатьВБухгалтерскомУчете, " в соответствии со значениями по умолчанию?","?"), 
					РежимДиалогаВопрос.ДаНет, , , "Изменения реквизитов учета");

Я хочу прогнать ряд документов (запросом выбираю, получаю объект, форму) с тем, чтобы заполнить по умолчанию документ данными регламентированного учета (щас только по управленческому все идет).
Есть две проблемы:
1) Если процедура не экспортная, каким образом достучатся к ней из модуля внешней обработки.
2) Каким образом отловить и ответить на "Вопрос". Или каким образом передать значение в вопрос "КодВозвратаДиалога.Да" и продолжить выполнение процедуры.
С уважением, Сергей

А зачем программно отвечать на то, что выполняется интерактивно? Это ведь не весь код, выполнить то что должно произойти по определенному значению "Ответ" - религия мешает?
...
Рейтинг: 0 / 0
27.06.2008, 01:13
    #35397829
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Господин ПЖ svarohaПомогите советом.
УПП, 8.1
Задача стоит вот в чем:
на форме элемента находится реквизит "ОтражатьВБухУчете", флаг. При интерактивном нажатии запускает процедуру "ПриИзмененииОтражатьВБухУчете(Элемент)". Процедура не экспортная, находится в модуле формы. В процедуре есть строка кода, которая требует от пользователя интерактивно ответить на вопрос. Если ответ положителен, то табличная часть заполняется счетами учета.

Код: plaintext
1.
2.
3.
Ответ = Вопрос(?(ОтражатьВБухгалтерскомУчете, "Установить", "Очистить") + 
					" реквизиты бухгалтерского и налогового учета" + 
					?(ОтражатьВБухгалтерскомУчете, " в соответствии со значениями по умолчанию?","?"), 
					РежимДиалогаВопрос.ДаНет, , , "Изменения реквизитов учета");

Я хочу прогнать ряд документов (запросом выбираю, получаю объект, форму) с тем, чтобы заполнить по умолчанию документ данными регламентированного учета (щас только по управленческому все идет).
Есть две проблемы:
1) Если процедура не экспортная, каким образом достучатся к ней из модуля внешней обработки.
2) Каким образом отловить и ответить на "Вопрос". Или каким образом передать значение в вопрос "КодВозвратаДиалога.Да" и продолжить выполнение процедуры.
С уважением, Сергей

А зачем программно отвечать на то, что выполняется интерактивно? Это ведь не весь код, выполнить то что должно произойти по определенному значению "Ответ" - религия мешает?Думал отписываться или нет А что мешает в вопросе поставить ответ по умолчанию и время через которое ответ будет выбран автоматически....
...
Рейтинг: 0 / 0
27.06.2008, 01:16
    #35397830
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Программист 1сДумал отписываться или нет А что мешает в вопросе поставить ответ по умолчанию и время через которое ответ будет выбран автоматически....

жжоте... в цикле по документам сидеть и ждать таймаута вопроса... давайте тогда еще предупреждение в проведении для полного счастья
...
Рейтинг: 0 / 0
27.06.2008, 09:18
    #35397955
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Религия не позволяет, так как я перебираю с 10 видов документов (реализации, возвраты, поступление, перемещения, все документы, где есть табличная часть "товары" и т.д.). Получается, в каждом документе править модуль, что я считаю не совсем правильным.
Можно непосредственно вызывать из внешней обработки заполнение табличной части счетами учета(собственно вызов тех процедур, которые вызываются в модуле процедуры ПриИзмененииОтраженияВБухУчете), но я бы хотел попытатся вызвать и отработать модуль из внешней обработки, при этом отловить все выскакивающие окна (ответ на "вопрос" о заполнении табличной части счетами бухучета, также еще в интерактивном режиме вызывается вопрос "Данные бали изменены. Записать документ?".
Хотелось бы узнать методы, с помощью которых возможно решить данную задачу.
С уважением, Сергей
...
Рейтинг: 0 / 0
27.06.2008, 09:26
    #35397972
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Вдогонку. Почему хочу использовать именно типовые процедуры УПП.
Так, как в табличной части "Товары" могут быть товары, материалы, продукция, МБП, которые учитываются на разных счетах учета, то в модуле обработки ставить кучу проверок на признак того, что это за товар (товар, услуга, материал, собственные, покупаемые) и на основании этого подставлять требуемый счет учета, "Статья прироста/убыли запасов" считаю неправильным.
У меня заполнен регистр сведений "Товары организаций", откуда и берется информация о счетах учета по умолчанию. Из процедуры "ПриИзмененииБухУчета()" вызывается функция, которой передается товар из табличной части, а возвращает именно счета учета, и сама же корректно подставляет в табличную часть.
...
Рейтинг: 0 / 0
27.06.2008, 11:05
    #35398194
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
svarohaРелигия не позволяет, так как я перебираю с 10 видов документов (реализации, возвраты, поступление, перемещения, все документы, где есть табличная часть "товары" и т.д.). Получается, в каждом документе править модуль, что я считаю не совсем правильным.
Можно непосредственно вызывать из внешней обработки заполнение табличной части счетами учета(собственно вызов тех процедур, которые вызываются в модуле процедуры ПриИзмененииОтраженияВБухУчете), но я бы хотел попытатся вызвать и отработать модуль из внешней обработки, при этом отловить все выскакивающие окна (ответ на "вопрос" о заполнении табличной части счетами бухучета, также еще в интерактивном режиме вызывается вопрос "Данные бали изменены. Записать документ?".
Хотелось бы узнать методы, с помощью которых возможно решить данную задачу.
С уважением, СергейНет слов. Ну тогда еще вариант - эмулируйте нажатие клавиши "да". В данном случае - не средствами 1с.
Интересно если программист не хочет поправить 10 строчек в модуле - то кто он? А ведь потом их можно и на место вернуть... А что за религия при которой данное действие является неправильным?
...
Рейтинг: 0 / 0
27.06.2008, 11:19
    #35398234
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Программист 1сНет слов. Ну тогда еще вариант - эмулируйте нажатие клавиши "да". В данном случае - не средствами 1с.
Интересно если программист не хочет поправить 10 строчек в модуле - то кто он? А ведь потом их можно и на место вернуть... А что за религия при которой данное действие является неправильным?

поставить рядом комп на линуксе с видеокамерой. Периодически снимать экран сервера с запущенной УПП и если там вопрос "Да/Нет?" - выдвигать лоток сидюка и давить в "Ентер"...
...
Рейтинг: 0 / 0
27.06.2008, 11:25
    #35398262
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Код: plaintext
1.
Нет слов. Ну тогда еще вариант - эмулируйте нажатие клавиши "да". В данном случае - не средствами 1с.
Интересно если программист не хочет поправить  10  строчек в модуле - то кто он? А ведь потом их можно и на место вернуть... А что за религия при которой данное действие является неправильным?

Да могу я поправить...Но я же написал выше, что это надо поправить не в одном документе. Да даже не проблема и поправить и в 10 документах, не проблема во внешней обработке использовать вызов процедур, которые присутствуют в модуле ПриИзмененииБух...
Мне нужно узнать, есть ли какие способы, чтобы отловить подобные констукции "Вопрос" средствами 1С... Для развития, если подскажете другие внешние компоненты, буду благодарен...
Но повторяюсь, хотелось бы именно штатными средствами 1с отловить, нажать на кнопку "ок", "согласен" или другие подобные.
п.с. и почему, если пробуешь что то изучить или же упростить обработку, так сразу - " программист не хочет поправить 10 строчек в модуле - то кто он"??
...
Рейтинг: 0 / 0
27.06.2008, 11:30
    #35398277
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Код: plaintext
Интересно если программист не хочет поправить  10  строчек в модуле - то кто он? А ведь потом их можно и на место вернуть
А этого я уже не понимаю...Для меня внешняя обработка - это та, которую запускаешь и она делает требуемые действия, а не "Перед употреблением - перемешайте, после употребление верните все обратно".
Еще один ньюанс забываете - распределенные базы данных(в моем случае) ...на центральной базе делаем изменение модуля - и во все филиалы отсылаем, потому как они не примут изменение, информации от них х...получишь (модули различаются).
...
Рейтинг: 0 / 0
27.06.2008, 11:37
    #35398297
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Код: plaintext
поставить рядом комп на линуксе с видеокамерой. Периодически снимать экран сервера с запущенной УПП и если там вопрос "Да/Нет?" - выдвигать лоток сидюка и давить в "Ентер"...
ну отлично, все посмеялись...а вот реальных предложений к заданому вопросу как не было, так и нет...
...
Рейтинг: 0 / 0
27.06.2008, 11:59
    #35398370
VitGun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
да закомментируй ты эту строку в модуле и все...

"Всегда есть способ сделать то, что сделать невозможно"
...
Рейтинг: 0 / 0
27.06.2008, 12:15
    #35398423
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Код: plaintext
1.
2.
да закомментируй ты эту строку в модуле и все...

"Всегда есть способ сделать то, что сделать невозможно"

Я уже писал, что можно бы, но это далеко не в одном документе...Да и принцип интересен, можно ли так сделать (ответить на "вопрос") или нельзя.
...
Рейтинг: 0 / 0
27.06.2008, 15:46
    #35399136
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
1. Вызвать не экспортную процедуру формы средствами 1С возможно
2. Штатными средствами ответить на вопрос нельзя
...
Рейтинг: 0 / 0
27.06.2008, 16:13
    #35399212
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Код: plaintext
1.
 1 . Вызвать не экспортную процедуру формы средствами 1С возможно
 2 . Штатными средствами ответить на вопрос нельзя

А подскажите пример вызова не экспортной процедуры. Очень хочется попробовать...
2. А какими именно?? интересно..нету примеров или же ссылок??
...
Рейтинг: 0 / 0
27.06.2008, 16:31
    #35399259
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
оригинальную ветку не нашел ... там для 7ки, но нечто не мешает переложить на 8ку (я это делал)

http://www.forum.mista.ru/topic.php?id=228572&forum=1c&area=prog
...
Рейтинг: 0 / 0
27.06.2008, 16:35
    #35399274
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
вот нашел свое для 8ки

Перем мФорма;
Перем Индекс;

Процедура Прекратить()

мФорма.ОтключитьОбработчикОжидания("СуммаДокументаПриИзменении");
ДокументОбъект = мФорма.ДокументОбъект;
ДокументОбъект.Записать();
мФорма.Закрыть();
ОтключитьОбработчикОжидания("Прекратить");
Индекс = Индекс + 1;
ОбработатьСтроку();

КонецПроцедуры

Процедура ОбработатьСтроку(СсылкаНаДокумент)

СсылкаНаДокумент = ТЗ_Строка.Ссылка;
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
мФорма = ДокументОбъект.ПолучитьФорму("ФормаДокумента");
мФорма.Открыть();
ПодключитьОбработчикОжидания("Прекратить",2);
мФорма.ПодключитьОбработчикОжидания("СуммаДокументаПриИзменении",1);

КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)

Индекс = 0;
ОбработатьСтроку();

КонецПроцедуры
...
Рейтинг: 0 / 0
27.06.2008, 16:37
    #35399283
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
немного не то скопировал .. вот полный оригинал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Перем мФорма;
Перем Индекс;

Процедура Прекратить()
	
	мФорма.ОтключитьОбработчикОжидания("СуммаДокументаПриИзменении");
	ДокументОбъект = мФорма.ДокументОбъект; 
	ДокументОбъект.Записать();
	мФорма.Закрыть();
	ОтключитьОбработчикОжидания("Прекратить");
	Индекс = Индекс +  1 ;
	ОбработатьСтроку();
	
КонецПроцедуры

Процедура ОбработатьСтроку()
	
	Если Индекс >= ТабличноеПоле.Количество() Тогда
		Возврат;
	КонецЕсли;
	
	ТЗ_Строка = ТабличноеПоле[Индекс];
	Если ТЗ_Строка = Неопределено Тогда
		сообщить(" ошибка "+Индекс);
		Возврат;
	КонецЕсли;
	
	СсылкаНаДокумент = ТЗ_Строка.Ссылка;
	ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
	мФорма = ДокументОбъект.ПолучитьФорму("ФормаДокумента");
	мФорма.Открыть();
	ПодключитьОбработчикОжидания("Прекратить", 2 );
	мФорма.ПодключитьОбработчикОжидания("СуммаДокументаПриИзменении", 1 );
	
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Индекс =  0 ;
	ОбработатьСтроку();
	
КонецПроцедуры
...
Рейтинг: 0 / 0
27.06.2008, 16:42
    #35399303
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
svaroha
А подскажите пример вызова не экспортной процедуры. Очень хочется попробовать...
2. А какими именно?? интересно..нету примеров или же ссылок??

вот нашел страницу автора идей
http://avb1c.narod.ru/
по 1 пункту смотрите статью "Пример вызова процедуры из другого модуля.('ноябрь 2006')"
по 2 пункту "Закрываем окно сообщений. ('декабрь 2002')"
...
Рейтинг: 0 / 0
27.06.2008, 16:59
    #35399362
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Terv. Огромное тебе спасибо. Буду пробовать.
С уважением, Сергей
...
Рейтинг: 0 / 0
27.06.2008, 17:01
    #35399371
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
svarohaTerv. Огромное тебе спасибо. Буду пробовать.
С уважением, Сергей
я тут вспомнил, что окошко "Вопрос" модальное, поэтому со 2 пунктом наверно не получиться ...
либо внешним приложением обрабатывать либо клавишу Ентер клинить :)
...
Рейтинг: 0 / 0
27.06.2008, 17:11
    #35399397
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
ага...здесь выше умные люди сидиромом предлагали...шутить изволили -))
...
Рейтинг: 0 / 0
27.06.2008, 17:12
    #35399402
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Terv svarohaTerv. Огромное тебе спасибо. Буду пробовать.
С уважением, Сергей
я тут вспомнил, что окошко "Вопрос" модальное, поэтому со 2 пунктом наверно не получиться ...
либо внешним приложением обрабатывать либо клавишу Ентер клинить :) Спасибо - а то у меня мозги заклинились когда пытался понять как работать с модальным окном работать на данном примере.
...
Рейтинг: 0 / 0
27.06.2008, 17:17
    #35399413
Terv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
Программист 1сСпасибо - а то у меня мозги заклинились когда пытался понять как работать с модальным окном работать на данном примере.

каюсь ... сразу не подумал про модальность окна;)
...
Рейтинг: 0 / 0
27.06.2008, 17:34
    #35399446
svaroha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программное отлавливание событий
А тогда в догонку еще один вопрос: можно ли как то отловить "выскочившее " модальное окно вопроса средствами 1с, или это невозможно??
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / программное отлавливание событий / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]