Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Почему при добавлении строки в ТабПоле срабатывает событие перетаскивание?          
Small sa Подменю пользователя
сообщение 23.05.12, 12:01
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 52
Из: Санкт-Петербург
Спасибо сказали: 12 раз
Рейтинг: 0

Доброго времени суток. Помогите понять:
У табличного поля в обработке определены события: Начало перетаскивания, Проверка перетаскивания и Перетаскивание. При перетаскивании строк между элементами формы эти события отрабатывает корректно.
Но они так же вызываются и при стандартном добавлении строки в Табличном поле. Я считала, что добавление строки не попадает под понятие перетаскивание. Я не права?

Vofka Подменю пользователя
сообщение 23.05.12, 12:19
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Это, скорее, вопрос к разработчикам платформы smile.gif

Ziam Подменю пользователя
сообщение 23.05.12, 12:24
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

Создал обработку. Вставил в нее ТабличноеПоле (ТипЗначения = Таблица значений).
Добавил колонку Валюта(отфонаря).
Определил события: НачалоПеретаскивания, ПроверкаПеретаскивания, ОкончаниеПеретаскивания, Перетаскивание. Поставил в них точки остановки.

При вводе новой строки ни одно из перечисленных событий не возникло. Так что смотрите код. Может у вас там програмно создается новая строка, не знаю. У меня отрабатывались точки остановки лишь при перетаскивании.

Small sa Подменю пользователя
сообщение 23.05.12, 13:02
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 52
Из: Санкт-Петербург
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(Vofka @ 23.05.12, 14:19) *
Это, скорее, вопрос к разработчикам платформы smile.gif

А вдруг кто-то читал про такое в умных книжках, написанных разработчиками..=)

Цитата(Ziam @ 23.05.12, 14:24) *
Создал обработку. Вставил в нее ТабличноеПоле (ТипЗначения = Таблица значений).
Добавил колонку Валюта(отфонаря).
Определил события: НачалоПеретаскивания, ПроверкаПеретаскивания, ОкончаниеПеретаскивания, Перетаскивание. Поставил в них точки остановки.

При вводе новой строки ни одно из перечисленных событий не возникло. Так что смотрите код. Может у вас там програмно создается новая строка, не знаю. У меня отрабатывались точки остановки лишь при перетаскивании.

Помимо стандартного добавления строк в ТП есть добавление строки программно: по кнопке и при перетаскивании из другого элемента формы. Но как это влияет на обработку стандартного добавления строки и срабатывании события перетаскивания?
Вот моя обработка (конфа не стандартная, но код посмотреть можно и так..)
[необходимо зарегистрироваться для просмотра ссылки]

Cnhtkjr Подменю пользователя
сообщение 25.05.12, 1:03
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

"ДобавитьСтроку()" в ТЧ, если мне не изменяет память, вызывает интерактивный метод добавления строки.
По описанию проблемы конечно сложно понять, что именно вы имели ввиду, но попробую проявить свои телепатические способности:
Вы не пробовали вместо
ЭлементыФормы.<Табличное>.ДобавитьСтроку();

использовать
ЭтотОбъект.<Табличное>.Добавить();

?

мало ли, а вдруг.



Сообщение отредактировал Batchir - 25.05.12, 7:27

Small sa Подменю пользователя
сообщение 25.05.12, 7:32
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 52
Из: Санкт-Петербург
Спасибо сказали: 12 раз
Рейтинг: 0

Cnhtkjr, я "использую" метод платформы - правой кнопкой мыши на табличном поле, появляется стандартная менюшка (добавить, копировать, удалить). Выбираю добавить и происходит добавление строки - признаться я не знаю, каким методом это делает платформа - Добавить() или ДобавитьСтроку(). Но во время добавления строки срабатывает событие ПЕРЕТАСКИВАНИЕ. О причинах захода в стандартную процедуру Перетаскивание() я и спрашивала...

logist Подменю пользователя
сообщение 25.05.12, 8:48
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Small sa @ 25.05.12, 8:32) *
О причинах захода в стандартную процедуру Перетаскивание() я и спрашивала...

А посмотреть в справке не пробовали? Cnhtkjr сказал верно, именно потому что вы работаете с формой (ЭлементыФормы.) и возникает событие Перетаскивание, оно возникает при работе с ЭлементыФормы, в новой строке не зависимо от того каким образом появилась эта строка (добавлением по правой кнопке, добавлением через insert...)


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Small sa Подменю пользователя
сообщение 25.05.12, 9:49
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 52
Из: Санкт-Петербург
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(logist @ 25.05.12, 10:48) *
А посмотреть в справке не пробовали?

Пробовала, не помогает! =)
Цитата
ТабличноеПоле (TableBox)
Перетаскивание (Drag)
Синтаксис:
Перетаскивание(<Параметры перетаскивания>, <Стандартная обработка>, <Строка>, <Колонка>)
Параметры:
<Параметры перетаскивания>
Тип: ПараметрыПеретаскивания. Содержит перетаскиваемое значение, тип действия и возможные действия при перетаскивании.
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина
<Строка>
Строка, над которой находится объект.
<Колонка>
Тип: КолонкаТабличногоПоля. Колонка, над которой находится объект.
Описание:
Возникает при окончании перетаскивания в табличном поле - приемнике данных.


Цитата
ТабличноеПоле.ДобавитьСтроку (TableBox.AddRow)
ТабличноеПоле (TableBox)
ДобавитьСтроку (AddRow)
Синтаксис:
ДобавитьСтроку()
Описание:
Добавляет строку в табличное поле, аналогично выполнению команды "Добавить".
Если табличное поле связано с таблицей или деревом значений, метод добавляет строку в таблицу или дерево значений (аналогично соответствующим методам этих объектов).
Если табличное поле связано со списком объектов, хранимых в базе данных, метод начинает редактирование нового объекта этого списка. (Например, список объектов в форме списка справочника, или документа).
Если табличное поле связано с набором записей или табличной частью, то метод начинает редактирование новой записи. (Например, список записей в форме списка регистра сведений; табличная часть документа или справочника).
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Если табличное поле связано с набором записей регистра сведений, то новые записи можно вводить "вручную" только если для регистра установлен режим записи "Независимый" (задается при конфигурировании). Если набор записей принадлежит регистру накопления либо для регистра сведений установлен режим записи "Подчинение регистратору", то добавление новых "ручных" записей не допускается.

Цитата
ЭлементыФормы (Controls)
Добавить (Add)
Синтаксис:
Добавить(<Тип>, <Имя>, <Видимость>, <Поместить на>)
Параметры:
<Тип> (обязательный)
Тип: Тип. Тип добавляемого элемента управления
Индикатор
ПолеКалендаря
Кнопка
КоманднаяПанель
Надпись
Панель
Переключатель
ПолеТабличногоДокумента
ПолеHTMLДокумента
ПолеТекстовогоДокумента
ПолеВвода
ПолеВыбора
ПолеСписка
ПолеКартинки
ПолосаРегулирования
Разделитель
РамкаГруппы
ТабличноеПоле
Флажок
ПолеГрафическойСхемы
ПолеГеографическойСхемы
<Имя> (обязательный)
Тип: Строка. Имя создаваемого элемента управления. Имя должно быть указано в соответсвии с правилами написания имен системы 1С:Предприятие 8. В противном случае выполнение метода вызовет исключение.
<Видимость> (необязательный)
Тип: Булево. Определяет, создавать новый элемент управления формы видимым или нет. Истина - элемент создается видимым.
Значение по умолчанию: Истина
<Поместить на> (необязательный)
Тип: Панель, ПолеТабличногоДокумента. Определяет, какой панели формы или какому табличному документу принадлежит создаваемый элемент. Если указана панель, то добавляемый элемент размещается на текущей странице панели. Если не указан, создаваемый элемент будет принадлежать непосредственно форме.
Возвращаемое значение:
Элемент управления формы.
Описание:
Добавляет элемент управления на форму.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.


Уважаемый logist, расскажите пожалуйста, где я упустила в справке связь ДОБАВЛЕНИЕ - ПЕРЕТАСКИВАНИЕ. По моей ограниченной женской логике: Перетаскивание в форме - это взяли существующий элемент с формы и куда-то его перетащили; добавление - это с позиционировались в каком - то месте формы и добавили туда откуда-то (не из этой формы) объект..

В чем нюанс? wink.gif

logist Подменю пользователя
сообщение 25.05.12, 9:55
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Small sa @ 25.05.12, 10:49) *
В чем нюанс?

Нюанс в том, что событие Перетаскивание возникает в приемнике, а приемник не знает каким образом в него началось добавление, поэтому и отрабатывает событие перетаскивание.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.06.24, 13:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!