1с двойной клик на табличном поле
v7: Можно ли обработать двойной клик по таблице значений документа?
(13) Так и сделано )
https://prnt.sc/wkamry
из екселя грузится в ТЗ. потом обрабатывается и уже получаем табличную часть документа. которая в таком виде:
https://prnt.sc/wkane0
и меня, и моих пользователей меня она вполне устраивает, и хотелось бы глядя именно на её и вносить тотже штрихкод по двойному клику.
И не вижу здесь каких то извращений )
Именно такой вариант решения самый правильный.
Другой вопрос что 1с это не позволяет Вот именно это я и хотел выяснить, можно ли обработать двойной клик по многострочной части.
Раз нет, придётся делать через ТЗ, что ЕСТЕСТВЕННО будет менее удобно пользователю
(19) Все эти штрихкоды и модели можно было бы и в екселе изначально вносить. Тоже не проблема.
Но всё это требует времени а оно не всего есть. Поэтому часто эту информацию вносят постфактум. Поэтому сейчас так: максимально быстро импортировать из екселя и поставить на приход. А уже потом вносить доп инфу (модели, штрихкоды и т.д.)
Да, не проблема конечно делать это через ТЗ. просто мне в принципе хотелось узнать про возможность реакции на двойной клик в многострочной части. Вижу это полезным во многим местах, если бы это было возможным
(31) » фигня. уверяю тебя от того что приход будет проведен на 20 минут позже не изменится ничего. а данные можно будет отработать сразу все и сразу правильно.»
Нельзя судить о бизнес процессах, не зная чтото о них.
Каких-то задач можно и месяц не касаться, а какието требуют реакции через минуту.
Если на склад приезжает машина каждые 10 минут, и товар в тамбуре склада не должен пересекаться с другими приходами а из тамбура он должен уйти только после оприходования, значит приход должен быть сделан максимум за 10 минут. А лучше за 2 минуты, чтобы за оставшиеся 8 кладовщик его убрал из тамбура.
както так )
Что здесь не правильно?
После этого кладовщик может принимать товар.
Далее такие данные номенаклатуры как «модель» «модельОнлайнера» «штрихкод» я хочу видеть всегда у каждого товара при открытии прихода. и контролировать это через открытие прихода.
НЕ НА ОТДЕЛЬНО ЗАКЛАДКЕ, КОТОРУЮ НУЖНО ОТКРЫВАТЬ а именно сразу в многострочной части.
Что здесь не правильно?
И когда я вижу что автоматический импорт гдето чтото сам не заполнил я хочу максимально быстро заполнить. Зачем это делать из ТЗ, если бы это можно было сделать сразу из многострочной части документа??
Момент номер два: для того чтобы править ту информацию, о которой я завёл речь в (0) не нужно открывать документ приход для записи. Отредактировать требуется не информацию, которая находится в документе, а характеристики номенклатуры /модели, штрихкоды/!
И спор по сути свёлся к двум вещам: где правильно эту информацию держать для показа и каким способом её редактировать
с моей точки зрения эта инфа должна быть в многострочной части а редактировать её максимально эффективно через двойной клик по данному полю.
Интерактивные возможности табличного документа
Табличный документ 1С:Предприятия 8 служит не только для печати документов и отчетов. Он имеет расширенные возможности, которые превращают его в интерактивное средство взаимодействия с пользователем. К таким возможностям относятся:
Стоит заметить, что к интерактивным возможностям табличного документа можно также отнести сводные таблицы и элементы управления, располагающиеся в ячейках, но сейчас мы не будем на них останавливаться, а подробнее рассмотрим вышеперечисленные механизмы.
Расшифровки
Система «1С:Предприятие 8» поддерживает механизм расшифровок (drill-down, drill-through), когда пользователь щелкает на строке или ячейке отчета и получает более детальный отчет, если конечно это предусмотрено программистом.
Расшифровки делятся на стандартные и нестандартные. Стандартные расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста, например, для документов будет открыта форма документа, а для элементов справочника будет открыта форма элемента. Если справочник редактируется в списке, то курсор будет установлен на текущем элементе в форме списка. Для выполнения нестандартной расшифровки предназначено событие ОбработкаРасшифровки.
Событие «ОбработкаРасшифровки» можно обработать, только если табличный документ помещен в форму как элемент управления, а не открывается в отдельном окне, поскольку это событие существует только у элемента управления «ПолеТабличногоДокумента». Ниже показаны категория свойств «События» элемента управления «ПолеТабличногоДокумента», где назначается процедура-обработчик расшифровки:
Сама процедура «РасшифроватьСтроку» может выглядеть следующим образом (как пример):
Примечание 1. В модуле приложения (аналог глобального модуля в версии 7.7) больше нет события ОбработкаЯчейкиТаблицы. Вся обработка расшифровок должна быть произведена в модуле формы, где располагается элемент управления «ПолеТабличногоДокумента».
Примечание 2. Событие «ОбработкаРасшифровки» возникает при щелчке на ячейке или рисунке, содержащих расшифровку. Не путайте его с событием «Выбор», возникающим для всех ячеек и рисунков при двойном щелчке мыши или нажатии клавиши Enter, причем, сначала возникает событие «Выбор», а потом «ОбработкаРасшифровки».
Группировки
В 1С:Предприятии 8 появилась возможность группировать данные в отчете. Группировки могут быть горизонтальные и вертикальные, тогда слева и сверху появляются специальные маркеры, позволяющие пользователю разворачивать и сворачивать группы, как показано на следующем рисунке:
Самый простой способ добавить группировки в отчет — доверить эту задачу системе, тогда от программиста потребуются минимальные усилия. Необходимо всего лишь применить методы НачатьАвтоГруппировкуСтрок/НачатьАвтоГруппировкуКолонок и ЗакончитьАвтоГруппировкуСтрок/ЗакончитьАвтоГруппировкуКолонок, которые включают режим автоматической группировки строк или колонок соответственно. В этом режиме при вызове методов Вывести (для строк) и Присоединить (для колонок) указываются дополнительные параметры для группировки:
При использовании группировок очень полезно установить свойство ячейки «АвтоОтступ» в какое-нибудь ненулевое значение, например, 5. Тогда система будет автоматически добавлять заданное количество пробелов слева текста ячейки, основываясь на текущем уровне группировки. В результате отчет приобретет удобный внешний вид для отображения иерархии данных.
Следующий пример выводит список товаров с группировками:
Примечания
Ячейки табличного документа могут иметь примечания, тогда в правом верхнем углу ячейки выводится маленький красный треугольник. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне:
Программная установка примечаний реализуется следующим образом:
Обратите внимание, что свойство «Примечание» у объекта «ОбластьЯчеекМакета» является объектом типа «Рисунок», а не простой строкой. Через этот объект можно редактировать внешний вид примечания, шрифт и цвет текста, фон, линии и т.д.
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
Суть идеи. В табличном поле и правый, и левый щелчок по ячейке можно отследить по событию ПриАктивизацииЯчейки. А отличить их друг от друга можно по событию ПередНачаломИзменения, установив непосредственный режим редактирования колонок, при котором это событие происходит сразу после активизации ячейки левым щелчком, а после активизации правым — не происходит, т.к. правый обычно вызывает контекстное меню, которое, чтобы не мешалось, можно отключить свойством АвтоКонтекстноеМеню. Ну, а двойной щелчок можно отследить по событию Выбор.
Комментарий «А как отследить щелчок двумя клавишами одновременно?» заставил подумать и придумать ещё один способ ввода: щелчок правой кнопкой мыши и затем сразу левой — почти одновременно, но всё же правой чуть раньше, потому что правый щелчок сначала активизирует ячейку, а затем левый щелчок по этой активной ячейке вызывает лишь одно событие — ПередНачаломИзменения, тогда как левый щелчок по неактивной ячейке вызывает два события — ПриАктивизацииЯчейки и ПередНачаломИзменения, что и позволяет отличать левый щелчок от щелчка двумя кнопками.
В связи с комментарием «Интересно, а есть ли способ отслеживать левую/правую кнопку мыши при нажатии на кнопке» сварганил кнопки, выполняющие разные действия по нажатию левой и правой кнопки мыши. Принцип действия как и при вводе щелчком мыши в табличное поле, потому что каждая из них сделана из табличного поля.
Примеры работы с табличным полем в 1С 8
Приветствую вас, уважаемые коллеги! Сегодня я продолжу тему о работе с табличным полем. Уже упоминалось о том, как открыть форму записи регистра сведений из строки табличного поля, которая показывает некоторые приемы работы с табличным полем. Но сейчас давайте поговорим об основных приемах работы с элементом управления табличное поле. Поехали!
Содержание
Как отобразить данные в элементе управления ТабличноеПоле?
Примеры реализации данного метода вы можете посмотреть здесь и тут.
Как при разворачивании формы на весь экран сделать, чтобы табличное поле изменяло свой размер?
Если вставить на форму элемент управления табличное поле, тогда автоматически формируются необходимые привязки для этого табличного поля. Бывает, что привязки сбрасываются из-за каких-то наших действий. Из-за того табличное поле перестает масштабироваться или растягиваться по форме. Поэтому привязки табличного поля необходимо настроить.
Нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…». В открывшейся форме мы увидим настройки привязок табличного поля. Чтобы облегчить себе труд и быть уверенными в правильности привязок, создайте новую форму и скопируйте Ваше табличное поле со старой формы в новую. На новой форме, нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…»
Как видим на новой форме привязки автоматически настроились так, чтобы табличное поле масштабировалось или растягивалось по форме. Запомним эти привязки, чтобы использовать для нашего табличного поля на старой форме. Нажмём на табличном поле старой формы правой кнопкой мыши и выберем пункт меню «Установить привязки…». Установим привязки аналогично тому, что мы увидели на новой форме. Готово!
Как программно установить видимость колонки табличного поля?
Где, «Период» — колонка табличного поля «ЭлементыФормы.РегистрСведенийСписок».
Как программно активизировать строку табличного поля с типом значения РегистрСведенийСписок?
В 1С:Предприятии 8 для активизации строки конкретного табличного поля следует выполнить установку свойства ТекущаяСтрока соответствующего элемента управления. Этому свойству присваивается значение, идентифицирующее строку, которую необходимо активизировать. Тип значения зависит от типа данных, с которыми связано табличное поле.
Например, для списка справочника это будет ссылка на элемент справочника, а для табличной части — строка табличной части. Если тип значения РегистрСведенийСписок, тогда свойству ТекущаяСтрока присваивается значение типа — РегистрСведенийКлючЗаписи. Пример:
Отбор должен однозначно идентифицировать запись в табличном поле. Чтобы узнать как в регистре сведений обеспечить уникальность каждой записи посмотрите тут.
Как создать контекстное меню для табличного поля?
Теперь можно добавлять разные команды в командную панель. Они будут отображаться в контекстном меню табличного поля.
Как в табличном поле с типом значения справочник, отображать только группы?
Откроем свойства табличного поля и найдем свойство «ПросмотрГруппИЭлементов». В выпадающем списке выберем «Группы». Готово!
Как изменить значение ячейки табличного поля?
Предположим, необходимо добавить РНН контрагента в ячейку, находящуюся рядом с ячейкой контрагента.
Как сделать текущим значение колонки табличного поля и присвоить этой колонке тип?
Предположим, что колонке «СубконтоДоходовБУ3» нужно присвоить тип «СправочникСсылка.ПодразделенияОрганизаций».
Как в табличном поле установить флажок элементом управления для колонки?
Как программно создать колонку табличного поля с элементом управления «Флажок»?
Свойство «РежимРедактирования» определяет режим редактирования ячейки табличного поля, если его не установить в «РежимРедактированияКолонки.Непосредственно» придется дополнительно кликать мышью, чтобы изменить флажок.
Свойство «ЭлементУправления» содержит элемент управления в данном случае флажок, через это свойство можно «достучаться» к свойствам и событиям флажка.
Свойство «ПрозрачныйФон» является свойством элементом управления флажка.
Кроме того, чтобы отображался только флажок без текста ДаНет необходимо в обработчике события табличного поля «ПриВыводеСтроки» написать следующее:
Как реализовать событие двойного клика по строке табличного поля?
Табличное поле имеет событие «Выбор». В обработчике этого события напишите:
Здесь можно посмотреть пример реализации данного метода.
Как узнать существует ли колонка табличного поля?
Также вы можете посмотреть, как этот пример кода с колонкой табличного поля реализован в модуле формы обработки.
Как из табличного поля получить значение ячейки, если известно имя колонки?
В обработчике события «Выбор» доступно имя колонки табличного поля и текущая строка. Чтобы получить значение ячейки нужно воспользоваться функцией табличного поля «ОформлениеСтроки», как показано ниже:
Как активизировать ячейку табличного поля?
Пример обработки вы можете скачать по ссылке.
Ввод щелчком мыши: правым, левым, двойным
Суть идеи. В табличном поле и правый, и левый щелчок по ячейке можно отследить по событию ПриАктивизацииЯчейки. А отличить их друг от друга можно по событию ПередНачаломИзменения, установив непосредственный режим редактирования колонок, при котором это событие происходит сразу после активизации ячейки левым щелчком, а после активизации правым — не происходит, т.к. правый обычно вызывает контекстное меню, которое, чтобы не мешалось, можно отключить свойством АвтоКонтекстноеМеню. Ну, а двойной щелчок можно отследить по событию Выбор.
Комментарий «А как отследить щелчок двумя клавишами одновременно?» заставил подумать и придумать ещё один способ ввода: щелчок правой кнопкой мыши и затем сразу левой — почти одновременно, но всё же правой чуть раньше, потому что правый щелчок сначала активизирует ячейку, а затем левый щелчок по этой активной ячейке вызывает лишь одно событие — ПередНачаломИзменения, тогда как левый щелчок по неактивной ячейке вызывает два события — ПриАктивизацииЯчейки и ПередНачаломИзменения, что и позволяет отличать левый щелчок от щелчка двумя кнопками.
В связи с комментарием «Интересно, а есть ли способ отслеживать левую/правую кнопку мыши при нажатии на кнопке» сварганил кнопки, выполняющие разные действия по нажатию левой и правой кнопки мыши. Принцип действия как и при вводе щелчком мыши в табличное поле, потому что каждая из них сделана из табличного поля.