1с подбор в табличную часть обычные формы

1с подбор в табличную часть обычные формы

empty

v8: Организация подбора на 8.0

Начинающие программисты на 8.0 иногда затрудняются организовать подбор в 8.0. Подбирать можно все, что угодно: товары, контрагентов, сотрудников. Это типичная задача для автоматизированной системы, поэтому нельзя обойти это вниманием. Автор статьи: Волшебник | Редакторы: vladnet
Последняя редакция №5 от 19.04.07 | История
URL: http://kb.mista.ru/article.php?id=1

Ключевые слова: подбор, ОбработкаПодбора, ОбработкаВыбора, МножественныйВыбор, ЗакрыватьПриВыборе, ОповеститьОВыборе

1. Простой подбор

В форме размещаем кнопку «Подбор». Это может быть кнопка панели инструментов или отдельно стоящая кнопка.

В обработчике события Нажатие для кнопки пишем:

При этом происходят довольно интересные вещи:

1. В первой строке получаем форму выбора. Это особая форма, которая может не совпадать с формой списка (а может совпадать). Форму выбора можно создать самому, или она будет сгенерирована системой автоматически, или форма списка может работать в режиме выбора.

Если вы получили не форму подбора, а обычную форму (методом ПолучитьФорму или ПолучитьФормуСписка), то по умолчанию у нее не установлено свойство РежимВыбора. Нужно или установить это свойство в Истина, или оповещать о выборе элемента самостоятельно (см. метод формы ОповеститьОВыборе).

а) Первым параметром можно передать имя формы или объект описания метаданных типа формы. Если у объекта несколько форм выбора, то здесь можно указать, какую форму нужно использовать.

в) Третьим параметром можно указать ключ уникальности для поиска среди уже открытых форм. Если форма с таким ключом уникальности будет найдена, то будет возвращена именно она. Это удобно, если не нужно открывать новых форм выбора.

2. Вторая строка устанавливает режим, при котором после выбора значения форма не будет закрываться, т.е. это и и есть основная функция подбора. При множественном выборе это свойство имеет смысл установить в Истина, но об этом ниже. Здесь же можно присвоить и другие свойства открываемой формы, например, расположение на экране, задать значения реквизитов формы или экспортных переменных модуля формы.

3. Третья строка открывает форму выбора. После первой строки форма еще не была открыта, но ее модуль уже был скомпилирован и инициализирован.

В свойствах формы должен быть назначен обработчик события «ОбработкаВыбора».

2. Множественный выбор

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

Тогда обработчик события ОбработкаВыбора можно написать так:

Примечание: Для ручной генерации события выбора из формы подбора нужно использовать функцию ОповеститьОВыборе.

Источник

1с подбор в табличную часть обычные формы

Все параметры, указанные в параметре метода «ОткрытьФорму», доступны в событии «ПриСозданииНаСервере» открываемой формы. Например:

&НаКлиенте
Процедура ОткрытьФорму ( Команда )

П = Новый Структура ;

В событии «ПриСозданииНаСервере» формы элемента справочника Проекты можно будет получить «НашПараметр»

&НаСервере
Процедура ПриСозданииНаСервере ()

//Программная обработка формы

В качестве владельца открываемой формы может выступать другая форма или элемент управления. Этот параметр, во-первых будет доступен в свойстве «ВладелецФормы» открываемой формы, а во-вторых, после совершения пользователем выбора стандартным способом (т.е. через форму выбора, по нажатии кнопки «Выбрать»), у Владельца сработает событие «ОбработкаВыбора».

&НаКлиенте
Процедура ОткрытьФорму ( Команда )

П = Новый Структура ;

В том случае, если выбор происходит не стандартным способом, т.е. открывается не форма выбора, а какая-то произвольная форма, то стоит использовать метод ОповеститьОВыборе(), при этом установив через параметры свойство открываемой формы ЗакрыватьПриВыборе = Истина. Например,

&НаКлиенте
Процедура ОткрытьФорму ( Команда )

П = Новый Структура ;

В самой форме организуем программно выбор таким образом:

&НаКлиенте
Процедура Выбрать ( Команда )

РезультатВыбора = ПодготовитьРезультатВыбора ();
ОповеститьОВыборе ( РезультатВыбора );

&НаСервере
Функция ПодготовитьРезультатВыбора ()

//Готовим результат выбора

В результате выполнения метода ОповеститьОВыборе форма подбора закроется и вызовется событие «ОбработкаВыбора» элемента управления «Товары».

В случае подбора в форму можно передать стандартные параметры: «ЗакрыватьПриВыборе», МножественныйВыбор, ЗакрыватьПриЗакрытииВладельца. Все параметры имеют тип Булево, их названия говорят сами за себя.

Источник

Пример поиска (отбора) по табличным частям документов в 1С (обычные и управляемые формы)

— выбрать область поиска (во всех документах или конкретный документ);
— просмотреть табличные части отобранных документов без их открытия;
— просмотреть «скрытые» реквизиты/табличные части документа.

Обработку можно легко переделать под свои нужды.

Тестирование производилось на платформе 8.3.13 и 8.3.15. Но обработка будет работать на любой платформе (совместимость не ниже 8.3) в любой конфигурации (в том числе «самописной»).

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Автор запретил комментарии

Обновление 03.04.20 10:30

79b33c4eaa0f17a02502004f38c7f11c

См. также

Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо

Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал «ДА!», выкладываю данную обработку.

30.06.2020 7145 66 XilDen 15

Управление платформенными обработками (расширение для типовых)

Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить «Активные пользователи» или доработать «Конструктор запросов».

07.10.2021 2953 5 SeiOkami 23

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

31.03.2021 9897 28 Parsec1C 11

Панель #Расширение объекта: Редактор, Права, Поиск, Сторно, Обмен

Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками.

01.05.2020 14957 111 sapervodichka 1

Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо

Иногда нужно удалить сохраненную в 1С «покореженную» настройку или скопировать «удачную» другому пользователю.

01.09.2012 66370 1378 AnryMc 46

Поиск пересекающихся ссылок на комбинации объектов с ограничением области поиска по метаданным

12.03.2020 9641 16 sapervodichka 18

Мастер полнотекстового поиска

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

07.02.2020 16344 148 YPermitin 29

Помощник работы с идентификаторами объектов

Инструмент для расширенного анализа идентификаторов объектов.

24.01.2020 19244 72 YPermitin 32

Групповая обработка справочников и документов (Управляемая форма) v 3.6 (+English version) Промо

Старая добрая обработина «Групповая обработка справочников и документов», теперь на Управляемом приложении. Работает на платформе версии не ниже 8.2.16! Работает в интерфейсе «Такси»

01.06.2013 131670 4965 kser87 352

Markdown-editor в 1С (с сохранением в HTML)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

04.07.2019 12498 18 riposte 6

Работа с файлами (обычная и управляемая форма)

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

10.06.2019 40818 219 Xershi 77

Электронная таблица средствами 1С (Версия 2.0)

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

23.04.2019 23456 77 user706545_kseg1971 40

Источник

1С 8.3 : Табличная часть

Как настроить отбор строк?

Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство:

ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью.

Управляемые формы

или такой динамический отбор

Обычные формы

Использовать его очень просто:

А теперь конкретные примеры:

Подчиненные табличные части в 8.х

В событии ПриАктивизацииСтроки для первого табличного поля пишем:

При добавлении новой строки во вторую табличную часть, нужно следить за тем, чтобы идентификационная колонка была установлена.

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

Еще раз напомню, что ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.

print

Похожие FAQ

Еще в этой же категории

отбор в динамическом списке программно 2
Для установки отбора в динамическом списке используется свойство Отбор. Добавление нового элемента отбора осуществляется следующим образом: ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»)); Для того чтобы новый Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Источник

Перенос строк из формы подбора в табличную часть документа

Процедура КоманднаяПанель1Действие4(Кнопка)
Форма = Справочники.Номенклатура.ПолучитьФормуВыбора(, Этаформа);
Форма.ЗакрыватьПриВыборе = Ложь;
Форма.Заголовок = «Выберите товар для аудита дистрибьюции:»;
Форма.Открыть();
КонецПроцедуры

Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если НЕ ВыбраннаяСтрока.ЭтоГруппа Тогда
СтандартнаяОбработка = Ложь;
ОповеститьОВыборе(ВыбраннаяСтрока);
КонецЕсли;

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
СтрокаТЧ = Товары.Добавить();
СтрокаТЧ.ТоварыАудита = ЗначениеВыбора;
КонецПроцедуры

Дайте ещё мыслишку! Умучался блин.

Организую подбор открываю документ, там есть табличная часть её нужно заполнить посредством подбора. При нажатии кнопки ПОДБОР открывается форма обработки, где в полях выбираются нужные реквизиты (реализован с помощью вложенных запросов и условий), в обработке создана ТабличнаяЧасть и на форме всё показывает нормально, то что нужно. Теперь остается сделать так, чтобы при выборе нужной строки она попадала в ТабличнуюЧасть документа из модуля формы которого и была вызвана.
Кажется пустяк, но вот уже второй день бьюсь не могу найти грабли.

Может поможете советом или кодом.

1. Перед открытием формы подбора создавай список, куда помещай выгруженную в таблицу табличную часть.
2. Открывай форму из дока модально.
3. В форме подбора получаешь таблицу через Форма.Параметр.ПолучитьЗначение(). Работай с полученной таблицей.
4. При выходе из формы подбора, если нажата «Добавить», то делай в Форма.Параметр.Установить(«Ок»,1);
5. В доку проверяй, стало ли Ок рано 1.

Код
Показать полностью

Разумеется, в форме отчета «Подбор» делаешь:

Код
Показать полностью

Форма = ТвояОбработка.ПолучитьФорму( «ИмяФормы», ЭлементыФормы.ТабличноеПолеКудаНадоВернутьРезультат, КлючУникальности );
Форма.Открыть();

2. у табличного поля на форме обработки есть событие Выбор, там соответственно определяешь, как будешь возвращать результат, но я всегда явно возвращаю СтрокаТабличногоПоля или Массив этих самых строк. так удобнее:

Процедура ТабличноеПолеВыбор( Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка )

// отключаем стандартную обработку, иначе будет зацикливание срабатывания выбора
СтандартнаяОбработка = Ложь;

// стандартной функцией возвращаем элементу-владельцу какое-то значение выбора,
// в данном случае выбранную пользователем строку
ОповеститьОВыборе( ВыбраннаяСтрока );

4. а у табличного поля, куда надо вернуть результат есть событие ОбработкаВыборка:

Процедура ТаблицаВКоторуюПодбираемОбработкаВыбора( Элемент, ВыбранноеЗначение, СтандартнаяОбработка )

// здесь ВыбранноеЗначение содержит то, что ты выбрал в форме подбора
НоваяСтрока.Реквизит1 = ВыбранноеЗначение.Реквизит1;
.

5. ну и так далее. кста, если тебе не надо закрывать форму подбора после выбора (ну например, чтобы пользователь долго и злобно накликивал в табличную часть всякие строки, то в п.1 добавь Форма.ЗакрыватьПриВыборе = Ложь; перед тем как открыть)

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с по документу ведомость в банк уже зарегистрированы выплаты
  • 1с по договору найдено несколько объектов расчетов