Автозаполнение колонки табличного поля формы

28.07.14

Разработка - Работа с интерфейсом

Поклонники Microsoft office Excell, к которым я себя с удовольствием отношу, наверняка знают о волшебном сочетании клавиш Ctrl+D. Для остальных, поясню: нажав эти клавиши можно заполнить выделенные ячейки значением, введенным в верхнюю. Предлагаю аналог этой функции для табличного поля.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Автозаполнение колонки табличного поля формы
.epf 74,22Kb
19
19 Скачать (1 SM) Купить за 1 850 руб.

Как это работает?

  • На форме имеется табличное поле с заполненной первой строкой

  • Активизируем ячейку с нужным значением
  • Нажимаем кнопку «Автозаполнение текущей колонки» или волшебное сочетание клавиш Ctrl+D
  • Отвечаем согласием на вопрос о серьезности наших намерений
  • Любуемся результатом

Вполне допускаю, что каждый раз подтверждать свои намерения совершить операцию не очень удобно, поэтому предусмотрено отключение запроса при помощи флажка «Автозаполнение без запроса»


В том случае, если выбранным значением требуется заполнить не всю, колонку, а лишь несколько соседних строк, нужно выделить эти ячейки (правой кнопкой мыши, удерживая клавишу ctrl, или любым другим, известным вам способом), и нажать кнопку «Автозаполнение текущей колонки»


Как это организовать в вашем табличном поле?

Создаем табличное поле на форме: Режим выделения Множественный, Режим выделения строки Ячейка (если указать Строка, тоже будет работать, но будет неудобно выделять)

В процедуре формы ПриОткрытии() размещаем код, заполняющий табличное поле:




Процедура ПриОткрытии()
	Заполнить_тзДляЗаполнения();
КонецПроцедуры

Процедура Заполнить_тзДляЗаполнения()
	
	тзДляЗаполнения = Новый ТаблицаЗначений;		
	тзДляЗаполнения.Колонки.Добавить("Номер", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(5, 0, ДопустимыйЗнак.Неотрицательный))); 	
	тзДляЗаполнения.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(40))); 	
	тзДляЗаполнения.Колонки.Добавить("НаименованиеПродукции", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50))); 
	тзДляЗаполнения.Колонки.Добавить("Штрихкод", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(13))); 	
	
	СтрокаТЗ = тзДляЗаполнения.Добавить();
	СтрокаТЗ.Номер = 1;
	СтрокаТЗ.Наименование = "Конфеты Аленушка";
	СтрокаТЗ.НаименованиеПродукции = "Конфеты Аленушка шоколадные с пралине";
	СтрокаТЗ.Штрихкод = "4670002967739";
	
	Для Счетчик = 1 По 12 Цикл
		СтрокаТЗ = тзДляЗаполнения.Добавить();
		СтрокаТЗ.Номер = Счетчик;
		
	КонецЦикла;
	ЭлементыФормы.ТабличноеПоле1.Значение = тзДляЗаполнения;
	ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
КонецПроцедуры

 



На форме рисум флажок с именем «ФлажокАвтозаполнениеБезЗапроса», и кнопку «АвтозаполнениеТекущейКолонки». В свойстве кнопки Сочетание клавиш указываем Ctrl+D. Привязываем к кноке процедуру АвтозаполнениеТекущейКолонкиНажатие


Процедура АвтозаполнениеТекущейКолонкиНажатие(Элемент)
	ЗаполнитьРеквизитТЧ(ЭлементыФормы.ТабличноеПоле1,ЭлементыФормы.ФлажокАвтозаполнениеБезЗапроса.Значение);
КонецПроцедуры

В модуле обработки размещаем код процедуры ЗаполнитьРеквизитТЧ


 Процедура ЗаполнитьРеквизитТЧ(ТабПоле, ФлажокАвтозаполнениеБезЗапроса = Ложь) Экспорт
	
	ТабЧасть = ТабПоле.Значение;
	ИмяРеквизита = ?(типзнч(ТабПоле.ТекущаяКолонка.ЭлементУправления ) = тип("флажок"),ТабПоле.ТекущаяКолонка.ДанныеФлажка,ТабПоле.ТекущаяКолонка.Данные);   
	Значениереквизита = ТабПоле.ТекущаяСтрока[ИмяРеквизита];
	
	Если  ТабПоле.ВыделенныеСтроки.Количество()>1 Тогда
		ЧтоЗаполняем = " ВЫДЕЛЕНИЕ ";
		ЧтоЗаполняемОбъект	= ТабПоле.ВыделенныеСтроки;
		Значениереквизита = ЧтоЗаполняемОбъект[0][ИмяРеквизита]; 
		Если  НЕ  ЗначениеЗаполнено(Значениереквизита)      Тогда   
			//Ищем значение в выделении
			Для Каждого Строка Из ЧтоЗаполняемОбъект Цикл
				Если   ЗначениеЗаполнено(Строка[ИмяРеквизита])   Тогда
					Значениереквизита =Строка[ИмяРеквизита];
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;	
	Иначе
		ЧтоЗаполняем = " ВСЮ КОЛОНКУ ";
		ЧтоЗаполняемОбъект = ТабЧасть;
	КонецЕсли;	
	
	Если  НЕ ФлажокАвтозаполнениеБезЗапроса  Тогда
		Если Вопрос(?(ЗначениеЗаполнено(Значениереквизита),"Заполнить" +ЧтоЗаполняем+ИмяРеквизита+ " таблицы  значением "+строка(Значениереквизита)+"?",
			"Заполнить " +ЧтоЗаполняем+ИмяРеквизита+ " таблицы пустым значением? ")
			, РежимДиалогаВопрос.ДаНет,0,,"Автозаполнение") = КодВозвратаДиалога.Нет  Тогда
			Возврат;
		КонецЕсли;
	КонецЕсли;
	
	Для Каждого Строка Из ЧтоЗаполняемОбъект Цикл
		Строка[ИмяРеквизита] = Значениереквизита;
		//ДополнительнаяОбработкаЯчеекТаблицы(Строка, ИмяРеквизита, Значениереквизита);
	КонецЦикла;	
	
КонецПроцедуры // ЗаполнитьРеквизитТЧ

 



Сохраняем, проверяем, пользуемся...

табличное поле колонки табличного поля

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55630    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    63945    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    19937    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    23480    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    12029    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18360    1228    elcoan    53    

125

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

3 стартмани

10.04.2023    12890    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    7990    kalyaka    6    

33
Оставьте свое сообщение