Подбор товара в 1с 8.3. Установка цен номенклатуры

Номенклатурой называется совокупность готовых товаров, ТМЦ, работ или услуг, а в программе 1С 8.3 можно вести аналитический учет номенклатуры по этим разрезам. Таким образом, номенклатура в 1С 8.3 является часто встречающейся аналитикой (субконто) для многих счетов бухгалтерского учета.

Управление номенклатурой 1С предусматривает с помощью широкого спектра инструментов. Рассмотрим особенности работы с данными объектами в 1С:Бухгалтерия 8.3.

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

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

Рисунок 1 – Номенклатурный справочник

Справочник «Номенклатура» в 1С позволяет добавлять и настраивать новые позиции и изменять ранее созданные элементы благодаря реквизитам и настройкам:


Рисунок 2 – Элемент справочника

  • Реквизит «Вид номенклатуры» вносится из одноименного справочника. Виды были созданы с целью упрощения учета. Например, если в базе данных ведется учет по нескольким фирмам, то одна и та же номенклатура может быть в одной организации товаром, а в другой – продукцией. Если установлен флажок «Услуга», то позицию с данным видом можно будет выбрать в «Акте выполненных работ». Виды также применяются для настройки счетов учета.


Рисунок 3 – Виды


Рисунок 4 – Элемент справочника видов

  • Реквизит «Наименование» отражает название номенклатуры.
  • Реквизит «Полное наименование» для подстановки в печатные формы.
  • Реквизит «Артикул» следует заполнять в том случае, если при печати рядом с колонкой «Наименование» должна выводиться колонка «Артикул». Вывод колонки «Артикул» обеспечивает настройка печати артикулов. Настройка печати артикулов расположена в разделе «Администрирование – Настройки программы – Параметры учета – Печать артикулов».

Рисунок 5 – Настройка печати артикулов

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


Рисунок 6 – Справочник классификации единиц измерения

  • Реквизит «% НДС» позволяет установить ставку НДС для текущей номенклатуры, которая будет использоваться в качестве предустановленного в документах поступления/реализации.
  • «Цена продажи» задается в качестве предустановленного в счетах, актах и накладных продаж. Настройка «Заполнение цен продажи» расположена в разделе «Администрирование/Настройки программы/Параметры учета».


Рисунок 7 – Настройка «Заполнение цен продажи»

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


Рисунок 8 – Справочник «Номенклатурные группы»

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


Рисунок 9 – Ссылка «Спецификации»


Рисунок 10 – Спецификация номенклатуры

Счета учета номенклатуры

Регистр сведений «Счета учета номенклатуры», который расположен в разделе «Справочники/Товары и услуги», предназначен для установки настройки.


Рисунок 11 – Регистр по счетам учета

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


Рисунок 12 – Элемент регистра сведений «Счета учета номенклатуры»

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

Установка цен номенклатуры в 1С

Для отдельной позиции или для целой группы можно воспользоваться «Установкой цен номенклатуры», расположенной в «Склад/Цены».


Рисунок 13 – Устанавливаем цены

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


Рисунок 14 – Справочник типов цен


Рисунок 15 – Элемент справочника типов номенклатурных цен

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


Рисунок 16 – Возможные виды заполнения

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

Все результаты установки цен можно найти по ссылке «Цены».


Рисунок 17 – Цены номенклатуры

Через «Цена» – «Записать цены» автоматом будет сформирован документ «Установка цен номенклатуры», который зарегистрирует стоимость.


Рисунок 18 – Кнопка «Записать цены»

Загрузка и выгрузка номенклатуры

Чтобы заполнить справочник «Номенклатура» не обязательно создавать позиции номенклатуры вручную. Рассмотрим механизмы загрузки и выгрузки номенклатуры в 1С 8.3.

Программа 1С 8.3 позволяет загрузить позиции и цены номенклатуры из файлов формата *.xlsx, *.xls, *.mxl, *.csv, *.ods.. Если загружаемые из файла номенклатурные позиции уже присутствуют в справочнике «Номенклатура», то они в случае необходимости могут быть обновлены. Таким образом, посредством данного механизма можно, например, актуализировать цены номенклатуры по прайс-листам.

Перед импортом данных необходимо подготовить файл для загрузки.


Рисунок 19 – Файл для импорта номенклатуры


Рисунок 20 – «Номенклатуры и цены – Загрузить» в справочнике «Номенклатура»

На этапе подготовки данных к загрузке нужно посредством кнопок «Удалить все лишнее», «Удалить строку», «Удалить колонку» удалить все лишние строки и колонки, которые не должны быть загружены.


Рисунок 21 – Этап подготовки данных к загрузке

В заголовках оставшихся колонок нужно указать наименования реквизитов справочника «Номенклатура», которые будут соответствовать загружаемым полям. Например, для колонки «Закупочные» укажем реквизит «Закупочные» в разделе «Цена».


Рисунок 22 – Настройка реквизитов для загрузки данных

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


Рисунок 23 – Финальная проверка данных перед загрузкой

Выгрузка позиций и цен в файлы формата.xlsx, .xls, .mxl, .csv, .ods. можно сделать через «Номенклатура и цены» и «Выгрузить» в справочнике «Номенклатура».


Рисунок 24 – Кнопка «Номенклатура и цены – Выгрузить» в справочнике «Номенклатура»


Рисунок 25 – Настройки выгрузки номенклатуры и цен в файл


Рисунок 26 – Настройка колонок для выгрузки в файл


Рисунок 27 – Настройка условий отбора для выгрузки в файл


Рисунок 28 – Результат выгрузки номенклатуры в файл

В данной статье рассматривается технология реализации подбора на платформе 1С 8.2. Статья не претендует на академизм, просто столкнувшись с рядом проблем и не нашедшим «правильной» методологии решения (возможно плохо искал), решил пройти этот путь самостоятельно, естественно пользуясь различными источниками. В основном я опираюсь на материалы мастер-групп Базового курса «Профессиональное программирование в 1С» Евгения Гилева и Насипова Фарита, участником которого я являюсь, а также соответствующей литературы (М.Г. Радченко, Е.Ю. Хрусталева Практическое пособие разработчика).

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

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

Настраиваем запрос для реквизита Товары. Здесь по идее все просто с помощью конструктора берем два справочника и виртуальную таблицу Остатков регистра Остатки товара. Если нужно видеть весь товар, то используем левое соединение Товаров с остальными источниками, если только с остатками, то полное соединение с регистром:
Код 1C v 8.2 УП ВЫБРАТЬ

Серии.СрокГодности,

ЕСТЬNULL(ТоварыНаСкладеОстатки.КоличествоОстаток, 0) КАК Количество

Справочник.Товары КАК Товары

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Серии КАК Серии

ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладе.Остатки(, Склад = &Склад) КАК ТоварыНаСкладеОстатки

ПО (ТоварыНаСкладеОстатки.Товар = Товары.Ссылка)

УПОРЯДОЧИТЬ ПО

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

И так, возвращаемся в нормальное русло решение задачи.

Для того чтобы открыть созданную форму подбора, в управляемой форме документы Продажа товара создаем команду подбор, размещаем на форме о генерируем обработчик, в котором нам необходимо открыть форму. Так как форма должна обеспечивать множественный выбор и отбор по складу, то создаем структуру параметров формы. И открываем форму соответствующей командой.
Код 1C v 8.2 УП
&НаКлиенте

Процедура Подбор(Команда)

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

ОткрытьФорму("Документ.ПродажаТоваров.Форма.ФормаПодбора", ПараметрыПодбора, Элементы.Товары);

КонецПроцедуры
Соответственно в форме подбора при создании заполняем параметр запроса склад из параметров формы:
Код 1C v 8.2 УП &НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Товары.Параметры.УстановитьЗначениеПараметра("Склад",Параметры.Склад);

Склад = Параметры.Склад;

КонецПроцедуры
Теперь необходимо реализовать функционал формы подбора. При выборе соответствующей строки она должна переносится в таблицу значений, так же должен работать механизм перетаскивания. Для решения первой задачи необходимо создать обработчик события Выбор нашего динамического списка.
Код 1C v 8.2 УП &НаКлиенте

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

СтандартнаяОбработка = Ложь;

Для каждого НомерСтроки Из ВыбраннаяСтрока Цикл

ТекСтрока = Элемент.ДанныеСтроки(НомерСтроки);

Строка.Количество = 1;

Пока Строка.Количество > ТекСтрока.Количество Цикл

КонецЦикла;

КонецЕсли;

КонецЦикла;

КонецПроцедуры
В нем имеется параметр ВыбраннаяСтрока представляющий собой массив, элементами которого являются номера строк списка Товары. В цикле проверяем не дублируются ли выбранные строки и запрашивается количество.

Для реализации перетаскивания необходимо проверить настройку следующих параметров: Для таблицы Товары - РазрешитьНачалоПеретаскивания, для Выбранные товары - РазрешитьПеретаскивание.

Так же необходимо создать обработчик события Перетаскивание для элемента формы ВыбранныеТовары.
Код 1C v 8.2 УП &НаКлиенте

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

Для каждого НомерСтроки Из ПараметрыПеретаскивания.Значение Цикл

ТекСтрока = Элементы.Товары.ДанныеСтроки(НомерСтроки);

Поиск = Новый Структура("Товар, Серия",ТекСтрока.Товар,ТекСтрока.Серия);

МассивСтрок = ВыбранныеТовары.НайтиСтроки(Поиск);

Если МассивСтрок.Количество() = 0 Тогда

Строка = ВыбранныеТовары.Добавить();

Строка.Товар = ТекСтрока.Товар;

Строка.Серия = ТекСтрока.Серия;

Строка.СрокГодности = ТекСтрока.СрокГодности;

Строка.Количество = 1;

ВвестиЧисло(Строка.Количество, "Введите количество");

Пока Строка.Количество > ТекСтрока.Количество Цикл

ВвестиЧисло(Строка.Количество, "Введите верное количество!");

КонецЦикла;

КонецЕсли;

КонецЦикла;

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

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

На рисунке приведен внешний вид формы подбора:

Для завершения подбора создана команда формы, с обработчиком, выполняющим оповещение о выборе:
Код 1C v 8.2 УП &НаКлиенте

Процедура Перенести(Команда)

ОповеститьОВыборе(ВыбранныеТовары);

Закрыть();

КонецПроцедуры
Соответственно, в форме документа реализован обработчик события ОбработкаВыбора:
Код 1C v 8.2 УП &НаКлиенте

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

Если ВыбранноеЗначение.Количество() > 0 И Объект.Товары.Количество() > 0 Тогда

Режим = РежимДиалогаВопрос.ДаНет;

Текст = "Очистить табличную часть?";

Ответ = Вопрос(Текст, Режим, 0);

Если Ответ = КодВозвратаДиалога.Да Тогда

Объект.Товары.Очистить();

КонецЕсли;

КонецЕсли;

Для каждого Подбор Из ВыбранноеЗначение Цикл

Строка = Объект.Товары.Добавить();

Строка.Товар = Подбор.Товар;

Строка.Серия = Подбор.Серия;

Строка.Количество = Подбор.Количество;

КонецЦикла;

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

Кроме того, есть еще несколько тюнинговых настороек, про которые писать особого смысла нет, но для формы подбора желательно не забыть настроить свойство РежимОткрытияОкна - Блокировать окно владельца, чтобы пользователь не смого ее случайно вернутся в документ не закрыв окно подбора, при этом доступ к основному окну будет.

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

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

В программе «1С:Управление торговлей, ред. 10.3» во всех документах реализован механизм подбора товаров, позволяющий заполнять документы быстро и удобно. Рассмотрим работу данного механизма на примере документа «Заказ покупателя».

Меню: Документы - Продажи - Заказы покупателей

Создадим документ, укажем в нем организацию, склад и контрагента:

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

Нажмем на кнопку «Подбор» для открытия окна подбора:

Окно подбора выглядит следующим образом:

Окно подбора состоит из нескольких частей.

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

Ниже располагается список всех групп номенклатуры из справочника:

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

Под группами располагается сам список товаров и некоторые дополнительные настройки.

Работая с подбором, вы можете выбрать один из вариантов:

  1. По справочнику. Отображаются все товары из справочника, независимо от их наличия на складе.
  2. По остаткам номенклатуры. Отображаются только те товары, которые имеют остаток на складе. В списке товаров отображаются дополнительные колонки с общим остатком на складе и свободным остатком.
  1. По ценам номенклатуры. Отображаются только те товары, по которым указаны цены продажи. В списке товаров показывается дополнительная колонка с ценой.
  1. По остаткам и ценам номенклатуры. Этот вариант совмещает в себе варианты «по остаткам номенклатуры» и «по ценам номенклатуры».
Примечание: показываются остатки товаров по складу, который выбран в заказе. Для отображения цен в заказе покупателя должен быть выбрать тип цен.

Установим подбор по остаткам номенклатуры. Для поиска необходимого товара можно воспользоваться полем поиска наверху. Поиск товара возможен по наименованию, артикулу, коду и штрихкоду.

Выберем вариант поиска по артикулу и укажем необходимый артикул. Программа найдет товар с данным артикулом и спозиционируется на нем в списке товаров:

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

Повторный двойной клик по товару вызовет увеличение количества в строке до 2 шт. Т.е. если товар уже присутствует в заказе, он не добавляется повторно, а количество товара в заказе увеличивается.

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

В этом случае при двойном клике по товару откроется специальное окно для ввода количества и цены:

Заказ покупателя после добавления вентилятора:

Если по товару ведется учет по характеристикам, то можно также установить флаг «Запрашивать характеристику» там же. С такой настройкой при двойном клике по товару программа откроет окно для ввода количества и цены по каждой характеристике товара:

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

Заказ покупателя после добавления женских босоножек:

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

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

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

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

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

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

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


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

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

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



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

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

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


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

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

Фрагмент 1

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

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

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


Фрагмент 2

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

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


Фрагмент 3

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

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

Фрагмент 4

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

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

Фрагмент 5

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

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

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


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


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

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

Перед прочтением данной статьи рекомендую ознакомиться с особенностями справочника Номенклатура .

В 1С Бухгалтерии 8 есть очень удобный инструмент, позволяющий ускорить заполнение табличных частей документов — это подбор. Функция эта есть почти везде, где есть табличная часть. Причём это касается не только документов, но и других форм с табличными частями. Тем не менее, как показывает моя практика проведения учебных курсов 1С Бухгалтерии 8 , поначалу пользователи почему-то не хотят пользоваться этой удобной функцией, вбивая строки в табличную часть вручную.

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

Когда нужно пользоваться подбором в 1С Бухгалтерии

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

Особое неудобство здесь в том, что справочник Номенклатура каждый раз будет открываться с корня, поскольку он вовсе не запоминает, из какой папки в нём вы последний раз что-то выбирали! А это значит, что каждый раз вам придётся заходить в нужную вам папку, что особенно раздражает, когда вы подбираете элементы из одной папки.

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

Используйте кнопку "Подбор" для заполнения табличных частей форм в тех случаях, когда в табличную часть требуется добавить более чем одну строку. Это касается не только подбора номенклатуры, но и других случаев (например, подбор сотрудников).

В случае со справочником "Номенклатура" есть ещё одна выгода использования подбора элементов, в том числе и тогда, когда нужно ввести всего один элемент. Подробности смотрите в видеоролике в конце статьи.

Тут была важная часть статьи, но без JavaScript её не видно!

Как использовать кнопку подбора в 1С Бухгалтерии 8.2

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

сайт_

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

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

Стоит, тем не менее, иметь ввиду, что использование подбора в ряде случаев не только не ускоряет, но и, наоборот, замедляет ввод строк в табличную часть. Я имею ввиду не только тот случай, описанный выше, когда требуется ввести всего лишь одну строку, но и некоторые другие. Всё это я рассматриваю на своих курсах 1С Бухгалтерии (с особенностями занятий вы можете ознакомиться



Просмотров