Как отфильтровать клиентов в 1с

Обновлено: 06.07.2024

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

В 1С:Бухгалтерия 8.3 уже встроен механизм для поиска и устранения дублей. Это универсальная обработка "Поиск и удаление дублей", которая подходит для поиска дубликатов не только в номенклатуре и контрагентах, но и в других справочниках.

Рассмотрим её использование на примере справочника "Контрагенты".

Ситуация

1. Итак, у нас есть контрагент "Аэрофлот" в папке покупатели.

2. И его дубликат (полная копия), случайно заведенная в папке поставщики. ИНН у обоих элементов совершенно одинаковый.

Наша задача воспользоваться обработкой по поиску и замене дублей так, чтобы она нашла эти элементы, указала (сопоставив их ИНН), что один дублирует другого и объединила их в один элемент.

Открываем обработку

3. Чтобы открыть обработку для поиска дублей нужно зайти в меню "Функции для технического специалиста. "( Если у вас его нет - вам сюда. ).


И выбрать среди всех обработок "Поиск и удаление дублей".

Настраиваем условия

4. Форма обработки перед нами. Укажем область для поиска дублей, нажав на три точки в поле "Искать в".

5. Выберем "Контрагенты" и нажмем кнопку "Выбрать".

6. Нажмем на кнопку троеточие в поле "Пометка удаления равно нет":

7. И добавим ещё одно правило отбора (кнопка "Добавить новый элемент").

8. В качестве поля для отбора выберем .

10. В качестве вида сравнения укажем "Заполнено" и нажмём кнопку ОК:

Таким образом мы будем осуществлять поиск среди всех контрагентов, у которых заполнен ИНН.

11. Осталось задать критерий для сравнения. Нажмите пункт "Наименование совпадает по похожим словам".

12. В открывшихся правилах поиска дублей снимите галку рядом с полем "Наименование".

Ищем дубли

14. Внизу окна нажмите кнопку "Найти дубли".

15. А вот и наш аэрофлот. Вернее два аэрофлота. И места использования каждого из них. Тот аэрофлот, рядом с которым зеленая стрелка, 1С считает главным и при удалении дублей останется именно он. Если выбор 1С оказался ошибочен - выделите другой элемент и нажмите кнопку "Отметить как оригинал". Установите галки рядом с элементами, которые по-вашему мнению являются дублями главных элементов. Теперь нажмите кнопку "Удалить дубли".

16. Обработка рапортует нам, что дубли объединены в один элемент и теперь вместо двух аэрофлотов у нас один, что и требовалось получить!

Мы молодцы, на этом всё

Кстати, подписывайтесь на новые уроки.

Важное замечание

Друзья, отдельно хочу заострить внимание на моменте, который ставит в тупик многих пользователей (я и сам не сразу это понял).

Обработка позволяет сравнивать поля друг с другом всего по двум правилам (пункт "Сравнивать"):

  • полное совпадение
  • совпадение по похожим словам, причём мы не можем настраивать эту похожесть

Всё. Других вариантов нет.

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

Например, нам не удастся настроить её так, чтобы она посчитала дублями все элементы, в которых встречается нужное нам слово.

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

Поле "Отбирать", которое и вводит всех в заблуждение, потому что оно расположено первым, предназначено для отбора элементов, которые обработка уже посчитала дублями.

То есть, если вы в поле "Отбирать" поставили "Все элементы" и дубли не нашлись - смысл в настройке поля "Отбирать" нет. Оно позволяет только сузить результаты, но не расширить.

Уфф. надеюсь я кому-то помог сэкономить время. До меня самого почти час доходило что же я делаю не так.

А тем кому нужен более настраиваемый поиск по дублям я советую подсистему "Инструменты разработчика".

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

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

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

В «1С:Бухгалтерии 8» ред. 3.0 (версия 3.0.37) появилась новая опция. Она отчасти знакома пользователям редакции 2.0. Это возможность просматривать документы, созданные по определённому контрагенту. О том, как работает эта возможность, читайте в статье экспертов 1С.

Чтобы воспользоваться новой опцией, необходимо в форме элемента справочника Контрагенты выбрать ссылку Документы (рис. 1).

02.jpg

Рис. 1. «Документы» в форме элемента справочника «Контрагенты»

В открывшемся списке будут отражены все документы информационной базы за выбранный период, сформированные по этому контрагенту (рис. 2).

03.jpg

Рис. 2. Документы, отобранные по контрагенту за определенный период

Следует обратить внимание на то, что в форме данного списка есть возможность более жесткого дополнительного отбора – по организации и/или по договору. Поскольку любой договор в базе заключен между собственной организацией и контрагентом, то возможны следующие варианты:

  • Отбор только по Контрагенту (включаются документы по всем договорам со всеми организациями, если такие были в базе данных)
  • Отбор по Контрагенту и единственной Организации (включаются документы по всем договорам между этим Контрагентом и этой организацией, если таких оговоров было несколько)
  • Отбор по Контрагенту и Договору (включаются документы по договору данного Контрагента с той организацией, с которой заключен выбранный договор).

Если необходимо посмотреть документы, созданные по договору, то обратиться по ссылке Документы можно непосредственно из элемента справочника Договоры (рис. 3).

04.jpg

Рис. 3. Отбор документов по выбранному договору

Данный список обладает полной функциональностью списков документов «1С:Бухгалтерии 8» ред. 0, в том числе из него можно просматривать и движение документов, и структуру их подчиненности. Кроме того, непосредственно в списке можно создавать новые документы (по кнопке Создать). А поскольку в данный список попадает большое количество типов документов, то для удобства выбора нужного типа можно позиционировать курсор на нужном типе документа (например, Счете) и нажав кнопку Создать или клавишу Insert, вы получите открытый список типов документов с курсором, установленным на выбранном типе, что значительно облегчает ввод.

Работая практически с любым объектом системы 1С, пользователь может воспользоваться опцией использования стандартных отборов (фильтров). Они доступны в журналах документов, в справочниках, в отчетах и т.д.

Здесь мы рассмотрим, как сделать отбор в 1С.


Настрою вашу 1С. Опыт с 2004 года. Подробнее →

Начнем с отчетов. Для примера возьмем отчет по взаиморасчетам Задолженность покупателей. Мы видим, что здесь уже есть отбор, выведенный по умолчанию в шапку – это поле Организация. Его можно уже использовать, выбрав значение из списка предлагаемых.

Для наглядности работы отборов сформируем отчет без их использования. Что в итоге? Мы получаем огромную таблицу, в которую попадают данные по всем контрагентам и всем организациям.


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

Использование отборов позволяет выбрать список определенных контрагентов, проверить их задолженность по одной организации или сразу по нескольким, найти отдельный документ ведения взаиморасчетов и т.д. Т.е. вы можете формировать объем информации, так как вам удобно, для этого и нужны отборы, они способствуют упрощению работы пользователей системы 1С.

Как уже писала выше, в шапке уже есть фильтр, который можно использовать, но если нужно отфильтровать данные по другим параметрам, сделать отбор в 1С можно нажав команду Показать настройки и выбрав вторую вкладку.


Добавление новых отборов выполняется по команде Добавить, лишние строки можно удалить, либо просто снять галочку и они при формировании таблицы данных учитываться не будет. В колонке Условие выбирается вариант установки отбора.


Равно - можно выбрать одну искомую позицию (например, если отбор Покупатель Равно, то можно выбрать только одну позицию этого справочника). В списке - можно будет подобрать сразу несколько позиций. В группе - значит, выбираем группы (например, Покупатель относятся к группе оптовики, значит, при выборе этой группы все относящиеся к ней контрагенты будут отображены в отчете) и т.д. Наименование отбора можно изменить для отчета.

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

Так я задала следующие критерии попадания данным по задолженностям в отчет

 Отображаются все покупатели, кроме тех, кто принадлежит группе Особые.

 Учитываются данные только по трем организациям.

Остальные строки не отмечены галочками и в работе не участвуют. При нажатии команды Сформировать отображаются результаты сделанных настроек.


Далее рассмотрим механизм работы отборов в справочниках и списках документов. Для некоторых уже выведены свои отборы, например в справочнике Договоры, в списке Счетов покупателям. В них достаточно установить нужное значение и получить желаемый результат.


Для установления фильтра по другим полям используется функция настройки списка (меню Еще → Настроить список). На первой вкладке отражаются уже выведенные в отборы поля, здесь можно поменять их вид сравнения и установить значение.


Добавление новых фильтров выполняется на второй вкладке по команде Добавить новый элемент, либо осуществив выбор поля для фильтрации в левой части окна, а вид сравнения и значение выбирается в правой части окна.

Так для примера я отбираю все документы, в которых менеджер установил комментарий, и сумма превышает 10 000 руб.


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

Анна Викулина

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

  • Установка отбора в пользовательском режиме
  • Установка отбора в конфигураторе
    • Фиксированный отбор
    • Динамический (программный) отбор

    Установка отбора в пользовательском режиме

    Динамический список в отличие от таблицы или дерева значений – более подходящее решение для реализации форм содержащих какие-либо списки, т.к. динамический список предоставляет наиболее широкий набор инструментов для работы с отбором, группировкой полей, сортировкой. Данный отбор можно установить при работе в пользовательском режиме или конфигураторе, принцип одинаков.

    Для установки отбора в режиме предприятия необходимо вызвать команду «Настроить список».

    На вкладке «отбор» представлен список полей, который есть в текущем списке. Выбираем поля списка, по которым будем фильтровать. Сделать это можно двойным кликом или используя drag and drop.

    Задаем вид сравнения и значение, жмем «Завершить редактирование», отбор установлен.

    Отбор также можно группировать по логическим условиям «И», «ИЛИ».

    Рис.4 Отбор также можно группировать по логическим условиям «И», «ИЛИ»

    Рис.4 Отбор также можно группировать по логическим условиям «И», «ИЛИ»

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

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

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

    Установка отбора в конфигураторе

    Работая в конфигураторе, мы можем устанавливать отбор динамического списка двух видов – фиксированный и динамический. Фиксированный отбор настраивается один раз, динамический или программный – можно устанавливать в зависимости от каких-либо данных в системе.

    Фиксированный отбор

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

    Отбор задается так же, как в пользовательском режиме.

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

    Динамический (программный) отбор

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

    Методы

    Если в разрабатываемой конфигурации присутствует подсистема БСП «БазоваяФункциональность», программный отбор в динамическом списке можно установить используя типовой метод:

    Сигнатура данного метода:

    ДинамическийСписок Тип: ДинамическийСписок – Список, в котором требуется установить отбор.

    ИмяПоля Тип: Строка – Поле, по которому необходимо установить отбор.

    ПравоеЗначение Тип: Произвольный – Значение отбора (Необязательный. Значение по умолчанию: Неопределено. Внимание! Если передать Неопределено, то значение не будет изменено).

    ВидСравнения Тип: ВидСравненияКомпоновкиДанных – Условие отбора.

    Представление Тип: Строка – Представление элемента компоновки данных (Необязательный. Значение по умолчанию: Неопределено. Если указано, то выводится только флажок использования с указанным представлением (значение не выводится). Для очистки, чтобы значение снова выводилось, следует передать пустую строку).

    Использование Тип: Булево – Флажок использования этого отбора (Необязательный. Значение по умолчанию: Неопределено).

    РежимОтображения Тип: РежимОтображенияЭлементаНастройкиКомпоновкиДанных – Способ отображения этого отбора пользователю. Возможные значения:

    • РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ – В группе быстрых настроек над списком.
    • РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный – В настройка списка (в подменю Еще).
    • РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный – Запретить пользователю менять этот отбор.

    ИдентификаторПользовательскойНастройки Тип: Строка – Уникальный идентификатор этого отбора (Используется для связи с пользовательскими настройками).

    Для удаления какого-то значения отбора необходимо воспользоваться типовым методом:

    Сигнатура данного метода:

    ДинамическийСписок Тип: ДинамическийСписок – реквизит формы, для которого требуется установить отбор.

    ИмяПоля Тип: Строка – имя поля компоновки (не используется для групп).

    Представление Тип: Строка – представление поля компоновки.

    В случае отсутствие в системе БСП отбор можно установить самостоятельно, используя объект ПолеКомпоновкиДанных.

    Данный отбор отберет строки, в которых значение «ФИО» = «Иванов».

    Для использования логических «И», «ИЛИ», «НЕ» предназначен тип данных ГруппаЭлементовОтбораКомпоновкиДанных

    Данный отбор отберет строки, в которых значение «ФИО» = «Иванов» или «Петров».

    Отбор в динамическом списке также можно производить через изменение текста запроса динамического списка. Этот вариант работает, когда динамический список сделан через «произвольный запрос».

    Для этого к тексту запроса добавляем условие «ГДЕ Истина»…

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

    Если этого не учесть будет ошибка, но чтобы этого избежать, можно переделать на другую реализацию. В текс запроса добавляем такое условие:

    ГДЕ (НЕ &ОтборУстановлен ИЛИ СправочникПользователи.ФИО В (&РазрешенныеФИО))

    Тут ФИО – массив.

    Ка видно, 2 строчки кода против 10. Какой из способов выбрать, зависит от конкретной прикладной задачи.

    Читайте также: