Программное добавление в форму подбора: полей Поиска по цене и Фильтрации товара без остатков (Расширение конфигурации)

10.03.18

Учетные задачи - Розничная торговля

Стандартный подбор заточен под работу со сканером ШК(штрих-кодов) и не очень удобен для ручного ввода товара в чек, что актуально для небольших магазинчиков с широким ассортиментом мелкого товара, на который и ШК некуда поставить. Приходится часто открывать форму расширенного поиска и совершать массу лишних действий. Данная доработка направлена на исключение лишних телодвижений при фильтрации товара по цене и скрытия товара без остатков.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Программное добавление в форму подбора: полей Поиска по цене и Фильтрации товара без остатков (Расширение конфигурации).:
.cfe 78,33Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

Готового решения не нашел, поэтому решил допилить самостоятельно.

Расширение сделано для конфигурации "Розница для Беларуси, редакция 2.2".

Часть материала взята отсюда //infostart.ru/public/122253/ часть не помню откуда, остальное сам.

Добавляем Расширение конфигурации.

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

Процедура РасшРМКпоискПоЦене_ПриОткрытииПосле(Отказ)
	СоздатьПолеНаСервере(); 
КонецПроцедуры

Добавляем саму процедуру создания поля:

Процедура СоздатьПолеНаСервере()
	//Добавляем реквизит
	нРеквизиты = Новый Массив;
	КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный);
	РеквизитПоиск = Новый РеквизитФормы("ПоискПоЦене", Новый ОписаниеТипов("Число",КвалификаторыЧисла), , "Поиск по цене", Истина);
    нРеквизиты.Добавить(РеквизитПоиск); 
	ИзменитьРеквизиты(нРеквизиты); 	
	//Добавляем поле ввода
	Элемент = ЭтаФорма.Элементы.Добавить("ПоискПоЦене", Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппаПоиска);
	Элемент.Вид = ВидПоляФормы.ПолеВвода;
	Элемент.ПутьКДанным = "ПоискПоЦене";  
	Элемент.Заголовок="Найти по цене";
	Элемент.Подсказка="(для отключения введите '0' и [Enter])";
	Элемент.УстановитьДействие("ПриИзменении", "НайтиПоЦене");  
КонецПроцедуры    

Процедура, отключающая отбор

если он уже использовался ранее

Процедура ОтключитьОтборПоПолюКомпоновки(Имя)
	Для Каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
		Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Имя)  Тогда 
			ЭлементОтбора.Использование = Ложь;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

и установки отбора заново

Процедура УстановитьОтборПоПолюКомпоновки(Имя,Значение,ВидСравнения,Булв)
	ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Имя); 
	ЭлементОтбора.ВидСравнения = ВидСравнения; 
	ЭлементОтбора.ПравоеЗначение = Значение; 
	ЭлементОтбора.Использование = Булв; 
КонецПроцедуры 

Затем собственно саму процедуру, установленную для поля ПриИзменении:

Процедура НайтиПоЦене()   
	ЧтоИскать=Число(ЭтаФорма.Элементы.ГруппаПоиска.ПодчиненныеЭлементы.ПоискПоЦене.ТекстРедактирования);
	ЕстьОтбор = Истина;  
	ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("РозничнаяЦена").Поле;
	ОтключитьОтборПоПолюКомпоновки(ДоступноеПоле);// отключаем отбор если он был уже использован
	Если НЕ Число(ЧтоИскать)=0 Тогда
		ВС = ВидСравненияКомпоновкиДанных.Равно;
		Исп = Истина;  
		УстановитьОтборПоПолюКомпоновки(ДоступноеПоле,ЧтоИскать,ВС,Исп);// и устанавливаем отбор наново
	КонецЕсли; 	
	ВыполнитьРасширенныйПоискПоСКД(); //вызов процедуры из формы подбора в самой конфигурации
КонецПроцедуры 

Аналогично поступаем с отключением нулевых остатков.

создаем:

Процедура СоздатьПолеНаСервере()
	//Добавляем реквизит 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	РеквизитФлаг = Новый РеквизитФормы("НольНеПоказывать", Новый ОписаниеТипов("Булево"), , "Ноль не показывать", Истина);
	нРеквизиты.Добавить(РеквизитФлаг); 	
	ИзменитьРеквизиты(нРеквизиты);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	//Добавляем флажок
	Флаг = ЭтаФорма.Элементы.Добавить("НольНеПоказывать", Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппаПоиска);
	Флаг.Вид = ВидПоляФормы.ПолеФлажка;
	Флаг.ПутьКДанным = "НольНеПоказывать";  
	Флаг.Заголовок="Только с остатками";
	Флаг.Подсказка="(для услуг отключить)";  
	Флаг.УстановитьДействие("ПриИзменении", "СкрытьНулевыеОстатки");
КонецПроцедуры    

и дописываем процедуру действия ПриИзменении:

Процедура СкрытьНулевыеОстатки()  
	ПолеПоиска = "";  
	ЕстьОтбор = Истина;  
	ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ОстатокПоМагазину").Поле; 
	ВС = ВидСравненияКомпоновкиДанных.Больше;
	Исп=ЭтаФорма.НольНеПоказывать;
	ОтключитьОтборПоПолюКомпоновки(ДоступноеПоле);  
	УстановитьОтборПоПолюКомпоновки(ДоступноеПоле,0,ВС,Исп);	
	ВыполнитьРасширенныйПоискПоСКД(); 
КонецПроцедуры   

Добавляем в ПриОткрытии:

Процедура РасшРМКпоискПоЦене_ПриОткрытииПосле(Отказ)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	ЭтаФорма.НольНеПоказывать=Истина;//если чаще подбор услуг то не надо
	СкрытьНулевыеОстатки();
КонецПроцедуры

P.S. Если кому очень надо вышлю на e-mail, Viber. Skype или Почтой :-), напишите в комментах или в личку куда!?

Расширение Система компоновки данных СКД подбор товара Розница РМК по цене остатки нулевые

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    808534    5127    9736    

2923

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    171998    855    368    

404

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

5880 руб.

25.05.2015    340152    2041    3112    

1058

Управление взаимоотношениями с клиентами (CRM) Оптовая торговля Розничная торговля Пользователь Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 10 1С:Розница 2 Россия Управленческий учет Платные (руб)

Подсистема призвана упростить и автоматизировать процесс расчета и начисления бонусов покупателей. Бонусная система работает с конфигурациями 1С:УТ 10.3, 1С:Розница. Механизм реализован в начале 2013г. и работает до сих пор с постоянными совершенствованиями.

30000 руб.

02.11.2015    113321    102    88    

186

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

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль синхронизации незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочем месте кассира) установлен Frontol или планируется его установка. Подходит для 1С:Розница 2.3 / 3.0, 1С:УНФ 3.0

7900 руб.

22.03.2019    86098    556    479    

194
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. borlog 5 10.03.18 15:05 Сейчас в теме
Добавил квалификатор числа, в поле ПоискПоЦене, так как в версиях 1с отличных от 8.3.10.2580, невозможно было искать товар с ценой меньше 1 (точнее можно, но задом наперед: 12-> ,12 -> 0,12).
КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный);
РеквизитПоиск = Новый РеквизитФормы("ПоискПоЦене", Новый ОписаниеТипов("Число",КвалификаторыЧисла), , "Поиск по цене", Истина);
2. пользователь 26.09.19 11:14
Сообщение было скрыто модератором.
...
3. user782202 26.12.19 07:00 Сейчас в теме
Здравствуйте, можно получить Ваше расширение поиска по цене для Розница 2.2 на почту: yulia.kuzmina@mail.ru.
4. пользователь 26.12.19 18:13
Сообщение было скрыто модератором.
...
5. Cezar66 03.02.20 19:51 Сейчас в теме
Здравствуйте! Можно получить Ваше расширение фильтра поиска по остатку для 1с Розница 2.2 Аптека на почту hak@inbox.ru
6. pankov.s13 25.02.20 17:15 Сейчас в теме
Добрый день, если сможете прислать расширение на почту pankov.s13@gmail.com буду очень признателен!
9. Raideres 8 20.03.21 11:14 Сейчас в теме
(6)при начале поиска мы вводим какой либо искомый текст и срабатывает типовая процедура очиститьотборы так что необходимо еще править и там
7. пользователь 18.05.20 03:01
Сообщение было скрыто модератором.
...
8. пользователь 22.07.20 08:02
Сообщение было скрыто модератором.
...
10. пользователь 18.04.21 12:30
Сообщение было скрыто модератором.
...
11. пользователь 02.06.22 15:37
Сообщение было скрыто модератором.
...
12. пользователь 13.09.22 18:52
Сообщение было скрыто модератором.
...
13. пользователь 15.11.22 22:53
Сообщение было скрыто модератором.
...
14. пользователь 15.11.22 22:54
Сообщение было скрыто модератором.
...
Оставьте свое сообщение