Реализация подборов в 1С
Меню

Реализация подборов в 1С

Содержание статьи
  1. Подбор в стандартной конфигурации 1С
  2. Распространенное применение подборов в 1С
  3. Изменение формы документа в 1С
  4. Проверка реализации подбора в 1С

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

Подбор в 1С является полезным механизмом, применимым в различных ситуациях. На примере одной из них рассмотрим реализацию механизма подборов на управляемых формах.

Подбор в стандартной конфигурации 1С

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

Подбор в заказе поставщику
Подбор в заказе поставщику

В данном примере запуск окна подбора товаров в документе «ЗаказПоставщику» происходит через кнопку «Подобрать товары». Нажав ее, пользователь видит окно подбора, разделенное на несколько областей:

  • Перечень номенклатуры;
  • Возможности отбора;
  • Выбранная номенклатура.

Окно подбора, разделенное на три области
Окно подбора, разделенное на три области

Форма подбора весьма функциональна, так как позволяет:

  • Задать нужный пользователю фильтр (по наличию на складе, цене, сегменту, названию и другим критериям);
  • Посмотреть остатки;
  • Выбрать сразу несколько номенклатур и их количество;
  • Ознакомиться с ценами поставщика, если они загружены в 1С.

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

Перенос подобранного в документ
Перенос подобранного в документ

Распространенное применение подборов в 1С

В процессе внедрения может возникнуть необходимость добавить возможность подбора. Выполнить эту задачу под силу разработчикам даже с небольшим опытом. Для примера, реализуем подбор в 1С остатков номенклатуры на определенном складе при заполнении табличной части документа «РеализацияТоваров».

В первую очередь нужно для справочника «Номенклатура» создать форму выбора и добавить реквизит «Склад» с типом «СправочникСсылка.Склады». Перенесем его на форму и проставим свойство «ТолькоПросмотр» в значение «Истина», чтобы пользователь видел, номенклатуру какого склада он выбирает. Уже существующий динамический список переименуем в «ТоварыДляВыбора»:

Подбор остатков номенклатуры
Подбор остатков номенклатуры

Также нам потребуется изменить свойства динамического списка:

  1. Проставляем галку «ПроизвольныйЗапрос»;
  2. Открываем свойство «Настройка списка». По умолчанию запрос динамического списка выбирает все поля справочника «Номенклатура»;
  3. Изменяем запрос таким образом, чтобы в список попадала только номенклатура, положительный остаток которой лежит на конкретном складе.

Изменение свойств динамического списка
Изменение свойств динамического списка

Фрагмент 1


ВЫБРАТЬ
            СправочникНоменклатура.Ссылка,
            ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
            РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
                    ПО ТоварыНаСкладахОстатки.Товар = СправочникНоменклатура.Ссылка
ГДЕ
           ТоварыНаСкладахОстатки.КоличествоОстаток > 0
           И ТоварыНаСкладахОстатки.Склад = &Склад

Изменение формы документа в 1С

Переходим к форме документа «РеализацияТоваров» и добавляем команду «ПодборТоваров», размещаем ее на форме и прописываем действие этой команды:

Команда «ПодборТоваров»
Команда «ПодборТоваров»

Фрагмент 2


&НаКлиенте
Процедура ПодборТоваров(Команда)
ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, Склад", Ложь, Истина,Объект.Склад);
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбора", ПараметрыПодбора, Элементы.Товары);
КонецПроцедуры

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

Стандартная процедура «ПриСозданииНаСервере»
Стандартная процедура «ПриСозданииНаСервере»

Фрагмент 3


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
          ТоварыДляВыбора.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад);
          Склад = Параметры.Склад;
КонецПроцедуры

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

Фрагмент 4


&НаКлиенте
Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
            СтандартнаяОбработка = Ложь;
            ТоварыОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры

&НаСервере
Процедура ТоварыОбработкаВыбораНаСервере(ВыбранноеЗначение)
Для Каждого вЗнч Из ВыбранноеЗначение Цикл
нСтр = Объект.Товары.Добавить();
нСтр.Номенклатура = вЗнч.Значение;
КонецЦикла;
КонецПроцедуры

Напоследок на форме подбора номенклатуры 1С у динамического списка «ТоварыДляВыбора» нужно переопределить событие «Выбор»:

Фрагмент 5


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

парам_Номен = Элемент.ТекущиеДанные.Ссылка;
ОповеститьОВыборе( Новый Структура("Номенклатура", парам_Номен));

КонецПроцедуры

Проверка реализации подбора в 1С

Все приготовления окончены, остается только обновить конфигурацию и проверить, работает ли подбор в 1С по складу и положительным остаткам. После обновления и отсутствия ошибок, проверяем текущую ситуацию в регистре накопления «ТоварыНаСкладах», где существуют следующие записи:

Проверка работы подбора
Проверка работы подбора

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

Подбор номенклатуры только по главному складу
Подбор номенклатуры только по главному складу

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

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

Рассказать друзьям
Предыдущая статья статья
Настройка сервера 1С
Следующая статья статья
Основные справочники 1С 8.3: создание и изменение элементов
Комментарии