Перейти к содержимому


Проблемка с кодом


Сообщений в теме: 20

#1 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 11:36

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
// указываем что это ШМД-обработка
ДинПолеПодборГотовыхФраз.ОбработчикТекущегоЭлемента(ЭтаФорма, ЭтаФорма.ПолеФормыВыбора);
// указываем текущий элемент в который будут вставляться готовые фразы
//ДинПолеПодборГотовыхФраз.УстановитьИдТекущегоЭлемента(ЭтаФорма, ЭтаФорма.ПолеФормыВыбора, "Диагноз", Ложь);
ДинПолеПодборГотовыхФраз.УстановитьИдТекущегоЭлемента(ЭтаФорма, ЭтаФорма.ПолеФормыВыбора, ЭтаФорма.ТекущийЭлемент.Имя, Ложь);
КонецПроцедуры


Как видно из процедуры, то изначально была установка вводить готовые фразы в элемент с названием "Диагноз". Я закоментил данный вызов и немного отредактировал, заменив явное указание на ЭтаФорма.ТекущийЭлемент.Имя. Но и это не помогло (что и естественно, т.к. данная процедура срабатывает только при открытии формы), заполняется только первый элемент, если кликнуть мышкой на др. поле ввода - ничего от этого не изменится. Ну ладно, думаю я, добавлю в процедуру ПриИзменении"Название элемента" вызов процедуры ДинПолеПодборГотовыхФраз.УстановитьИдТекущегоЭлемента(ЭтаФорма, ЭтаФорма.ПолеФормыВыбора, ЭтаФорма.ТекущийЭлемент.Имя, Ложь); - не работает (на итс написано, что данное действие должно быть только в процедуре ПриОткрытии). Дальше я в процедуре изменения элемента пишу процедуру ПриОткрытии(Ложь), но это не работает.
Надеюсь, кто-нибудь сможет мне помочь разобраться с данной проблемкой.

Прикрепленные изображения

  • Прикрепленное изображение: 777.png


#2 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 12:11

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

#3 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 12:32

Такого события нет. Обязательно нужно при таком условии? Может при открытии формы, или при ее заполнении?
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#4 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 12:34

Просмотр сообщенияalexburn (22 февраля 2012 - 12:32) писал:

Такого события нет. Обязательно нужно при таком условии? Может при открытии формы, или при ее заполнении?
Суть в том, что для добавления готовых фраз надо, чтобы вызывалась процедура, указывающая на текущий элемент. Как это можно сделать другим образом?

#5 anyuta

    Участник


  • 229 сообщений

Отправлено 22 февраля 2012 - 12:42

А вам как надо, чтобы справа кликнул мышкой по нужной фразе и она появилась в Элементе заключение???

#6 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 12:45

У таблицы есть свойство, ТекущиеДанные, вот тут и нужно писать код. Т.е. вы выделяете в таблице "Общая" какую-нибудь строку, а справа в таблицу вам нужно снача очистить, потом заполнить нужными данными, в зависимости от выделенной строки.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#7 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 12:53

Просмотр сообщенияanyuta (22 февраля 2012 - 12:42) писал:

А вам как надо, чтобы справа кликнул мышкой по нужной фразе и она появилась в Элементе заключение???
Не совсем. Кликнул мышкой на элементе формы - и получил возможность добавить готовую фразу именно в этот элемент

Просмотр сообщенияalexburn (22 февраля 2012 - 12:45) писал:

У таблицы есть свойство, ТекущиеДанные, вот тут и нужно писать код. Т.е. вы выделяете в таблице "Общая" какую-нибудь строку, а справа в таблицу вам нужно снача очистить, потом заполнить нужными данными, в зависимости от выделенной строки.
Таблица - это частный случай (если Вы имеете ввиду скриншот). В основном будут идти простые поля ввода.

#8 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 13:07

Если поля ввода - обрабатывайте событие ОбработкаВыбора. Иначе смысл в этом поле ввода?

Или ОкончаниеВводаТекста()
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#9 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 13:08

Просмотр сообщенияalexburn (22 февраля 2012 - 13:07) писал:

Если поля ввода - обрабатывайте событие ОбработкаВыбора. Иначе смысл в этом поле ввода?

Или ОкончаниеВводаТекста()
Пробовал использовать эти события - они не срабатывают при клике на поле ввода.
Эх, 1С - это вам не делфи...

#10 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 13:12

Правильно, в 1С нет метода ПриПолученииФокуса() или как там.
Первое событие(ОбработкаВыбора) срабатывает при выборе элемента, но до помещения его в поле.
Второе событие(ОкончаниеВводаТекста) срабатывает, когда пользователь вводит значения и нажимает ENTER.
Может тогда не стоит использовать поле ввода? что туда пользователь вводить собрался?
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#11 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 13:14

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

#12 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 13:19

Ну и используйте ОкончаниеВводаТекста, хотя на вашем месте я бы использовал список выбора, раз уж вам нужно чтоб пользователь выбирал из готовых сообщений.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#13 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 13:28

Окончание ввода текста не подойдет, как и список выбора. В первом случае - а что, если пользователь ничего вводить не собирается, ему просто надо вставить одну готовую фразу. Во втором случае - не известно, какие значения забивать в этот список выбора, может возникнуть такая ситуация, что необходимого значения не окажется. А в случае с мех-м готовых фраз - тут пользователь сам создает нужные ему готовые фразы.

#14 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 13:32

А что мешает вам создать список программно, или вызывать форму, например форму выбора справочника ГотовыеФразы? в который может пользователь внести и свои готовые фразы.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#15 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 13:49

Просмотр сообщенияalexburn (22 февраля 2012 - 13:32) писал:

А что мешает вам создать список программно, или вызывать форму, например форму выбора справочника ГотовыеФразы? в который может пользователь внести и свои готовые фразы.
Во-первых -лень, а во-вторых - не желательно для конфигурации включать возможность изменения, хоть, возможно, можно обойтись и другим способом.

#16 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 13:54

Встречный вопрос, как вы будете хранить ваши фразы, которые введет пользователь????
Говорю вам, используйте список выбора, в нем и элементы можно определить, и вводить что захочется.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#17 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 22 февраля 2012 - 18:12

Просмотр сообщенияalexburn (22 февраля 2012 - 13:54) писал:

Встречный вопрос, как вы будете хранить ваши фразы, которые введет пользователь????
Говорю вам, используйте список выбора, в нем и элементы можно определить, и вводить что захочется.

Фразы будут храниться в справочнике. Все таки, когда список готовых фраз (скриншот) находится весь "на ладони", гораздо легче работать, чем нажимать на кнопку выбора и выбирать от туда. Лично мое мнение.Да и как это сделать без доработки самой конфигурации, я сейчас слабо представляю, а дорабатывать совсем нежелательно.

#18 alexburn

    Suum cuique


  • 4 654 сообщений

Отправлено 22 февраля 2012 - 19:07

Ну чтож, тогда выкручивайтесь как знаете, хотел предложить как лучше, удобнее и красивее.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#19 anyuta

    Участник


  • 229 сообщений

Отправлено 22 февраля 2012 - 22:10

Расскажите, у вас на форме, что за элементы управления, таблица значений, динамический список или что...и нельзя ли как отрабатывать при нажатии кнопки Выбрать???

#20 anyuta

    Участник


  • 229 сообщений

Отправлено 22 февраля 2012 - 23:17

В другой теме, созданной вами, ведь все работает, готовая фраза вставляется в элемент управления, вопрос...а что еще-то нужно?

#21 Алексей Великий

    Активист


  • 352 сообщений

Отправлено 23 февраля 2012 - 11:03

Просмотр сообщенияanyuta (22 февраля 2012 - 23:17) писал:

В другой теме, созданной вами, ведь все работает, готовая фраза вставляется в элемент управления, вопрос...а что еще-то нужно?
Но она вставляется только в определенный элемент. Мне нужно, чтобы нажал мышкой на поле ввода - выбор готовых фраз происходит именно в это поле.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных