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

1. Иваныч 23 30.10.23 12:14 Сейчас в теме
Всех приветствую! Есть желание в подборе номенклатуры автоматически изменять количество товара на 2, если в карточке номенклатуры указать признак "продавать 2 штуки" или что-то подобное. Понимаю, что все должно обрабатываться в процедуре подбора. Но в самом документе чтоб оператор не мог изменить количество вручную +1 или -1, только +2 или -2. Есть какие соображения?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3118 30.10.23 12:24 Сейчас в теме
Ну шоп совсем не морочиться, то я бы сделал еще одну единицу измерения в товаре с коэффициентом 0.5 (ну или 2 - я там не особо помню). Ну и по умолчанию ее. Назвать "Пара", например. Поиграйтесь.

ЗЫ: умные существа пишут, что для этого есть упаковка. Создаем-с упаковку-с с двумя штуками-с... Ну и понеслось г по т...
6. Иваныч 23 16.11.23 16:19 Сейчас в теме
(2)Это все есть. И разные упаковки по количеству со своим ШК, и т.п
3. Иваныч 23 30.10.23 20:19 Сейчас в теме
Спасибо, пробую все-таки заморочиться. По результатам выложу на обозрение
4. Иваныч 23 10.11.23 15:55 Сейчас в теме
Вот сегодня руки дошли.
Вначале в справочник Номенклатура добавил флаг НеМенее2

и в форму ДляПодбора добавил немного условия, начало - из типовой, чтоб понятнее:

Если Запрашивать.ТекущаяСтрока() = 2 Тогда // количество
		
		// формируем список параметров для передачи в обработку
		Параметр	= СоздатьОбъект("СписокЗначений");
		Параметр.ДобавитьЗначение(ВыбНоменклатура	    , "Номенклатура");
		Параметр.ДобавитьЗначение(Колво		            , "Количество");
		Параметр.ДобавитьЗначение(ВозврЕдиница          , "Единица");
		Параметр.ДобавитьЗначение(Цена		            , "Цена");	
		Параметр.ДобавитьЗначение(ДобавлятьКомплектующие, "ДобавлятьКомплектующие");	
    	        Параметр.ДобавитьЗначение(НеМенее2              , "Не менее 2");//10.11.2023г.
		
		// открываем форму обработки
		ОткрытьФормуМодально("Обработка.ВводКоличества", Параметр);
			
		// получаем параметр возврата.
		Если Параметр.Получить("СтатусВозврата") = 0 Тогда
		    Возврат;
		КонецЕсли;

//10.11.2023г. Автоизменение количества подбора по флагу "НеМенее2"		
		Если Параметр.Получить("Не менее 2") = 1 Тогда 
			Колво = 2 Иначе 
		Колво = Параметр.Получить("Количество");
		КонецЕсли;
	
		ВозврЕдиница        = Параметр.Получить("Единица");
		Цена	                = Параметр.Получить("Цена");
		ДобавлятьКомплектующие	= Параметр.Получить("ДобавлятьКомплектующие");
		
	ИначеЕсли Запрашивать.ТекущаяСтрока() = 3 Тогда // количество и цену
		
		// формируем список параметров для передачи в обработку
		Параметр	= СоздатьОбъект("СписокЗначений");
		Параметр.ДобавитьЗначение(ВыбНоменклатура       , "Номенклатура");
		Параметр.ДобавитьЗначение(Колво		            , "Количество");	
		Параметр.ДобавитьЗначение(ВозврЕдиница          , "Единица");	
		Параметр.ДобавитьЗначение(Цена		            , "Цена");	
		Параметр.ДобавитьЗначение(Валюта	            , "Валюта");	
		Параметр.ДобавитьЗначение(ДобавлятьКомплектующие, "ДобавлятьКомплектующие");
		Параметр.ДобавитьЗначение(НеМенее2              , "Не менее 2");
    	
		// открываем форму обработки
		ОткрытьФормуМодально("Обработка.ВводКоличестваИЦены", Параметр);
			
		// получаем параметр возврата.
		Если Параметр.Получить("СтатусВозврата") = 0 Тогда
		    Возврат;
		КонецЕсли;
				
		Если Параметр.Получить("Не менее 2") = 1 Тогда 
			Колво = 2 Иначе 
		Колво = Параметр.Получить("Количество");
		КонецЕсли;
	
		ВозврЕдиница            = Параметр.Получить("Единица");
		Цена	                = Параметр.Получить("Цена");
		ДобавлятьКомплектующие	= Параметр.Получить("ДобавлятьКомплектующие");
		
	    // ничего не запрашивать
		Иначе Если НеМенее2 = 1 Тогда //10.11.2023г.
			Колво = 2;
		КонецЕсли;
Показать



Останется сделать проверку в самом документе на запрет редактирования количества в строке с такой номенклатурой, либо только увеличания/уменьшения до четного числа.
Прикрепленные файлы:
5. Иваныч 23 16.11.23 15:37 Сейчас в теме
Вот, немного пришлось изменить код, т.к если в подбор указать 1, то количество меняется на 2, все хорошо. Но если в подбор указать 3, 5, 7 и т.п, возвращает в таблицу подбора 2.

//10.11.2023г. Автоизменение количества подбора по флагу "НеМенее2"
        Колво = Параметр.Получить("Количество");
		Если Параметр.Получить("Не менее 2") = 1 Тогда 
		Предупреждение("Данная позиция имеет флаг настройки" + РазделительСтрок + """Только по 2шт""" + РазделительСтрок +
						"Количество будет изменено автоматически", 60);			
			Колво = ?(Колво%2=0,Колво,Колво+1);
			Иначе 
		КонецЕсли;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот