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

28.07.14

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

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

Файлы

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

Наименование Скачано Купить файл
Автозаполнение колонки табличного поля формы
.epf 74,22Kb
19 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

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

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

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

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


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


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

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

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




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

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

 



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


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

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


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

 



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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    75692    47    36    

59

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    6685    2    2    

6

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

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

6100 руб.

14.01.2016    59701    22    25    

47

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    1696    3    0    

2

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    47708    mrXoxot    44    

138

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

27.05.2024    26001    smielka    38    

114

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

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

3 стартмани

10.04.2023    17245    180    acces969    31    

132
Для отправки сообщения требуется регистрация/авторизация