Фильтр по ячейкам в инвентаризациях Альфа-Авто 5

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

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

Добавил в инвентаризацию текстовое многострочное поле «Фильтр по ячейкам», куда пользователь вводит названия ячеек:

При заполнении отбирается только номенклатура из этих ячеек.

Доработка вставляется в процедуру КоманднаяПанельТоварыЗаполнение формы документа Инвентаризация:

	Если ТипЗнч(Результат)=Тип("ТаблицаЗначений") Тогда
		// было заполнение, заполним таблицу
		ДопПараметры=Новый Структура();
		ДопПараметры.Вставить("НеСчитать",Истина);
		ДопПараметры.Вставить("флЗаполнятьПоСебестоимости",флЗаполнятьПоСебестоимости);
		ДопПараметры.Вставить("флЗаполнятьБезНДС",флЗаполнятьБезНДС);
		
		//Фильтр по ячейкам - ОСИПОВ тут начинаем
		СтрокиЯчеек = СтрРазделить(ФильтрПоЯчейкам, Символы.ПС);
		МассивНаименований = Новый Массив();
		Для Каждого СтрокаЯчееек ИЗ СтрокиЯчеек Цикл
			СтрокаЯчееек = СокрЛП(СтрокаЯчееек);
			Если НЕ СтрокаЯчееек = "" Тогда
				МассивНаименований.Добавить(СтрокаЯчееек);
			КонецЕсли;
			
		КонецЦикла;
		
		ЕстьОтборПоЯчейкам = МассивНаименований.Количество() > 0;
		
		Если ЕстьОтборПоЯчейкам Тогда
			З = Новый Запрос(
			"ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	Т.Номенклатура
			|ИЗ
			|	РегистрСведений.ЯчейкиХраненияПоУмолчанию КАК Т
			|ГДЕ
			|	Т.СкладКомпании = &Склад
			|	И Т.ЯчейкаХранения В
			|			(ВЫБРАТЬ
			|				Т.Ссылка
			|			ИЗ
			|				Справочник.ЯчейкиХранения КАК Т
			|			ГДЕ
			|				Т.Код В (&Код))");
			З.УстановитьПараметр("Код", МассивНаименований);
			З.УстановитьПараметр("Склад", СкладКомпании);
			НоменклатураПоЯчейкам = З.Выполнить().Выгрузить().ВыгрузитьКолонку("Номенклатура");
		КонецЕсли;
		
		Для Каждого СтрокаТЧ Из Результат Цикл
			
			Если ЕстьОтборПоЯчейкам Тогда
				//Осипов - пропускаем не подходящие товары
				Если НоменклатураПоЯчейкам.Найти(СтрокаТЧ.Номенклатура) = Неопределено Тогда
					Продолжить;
				КонецЕсли;
			КонецЕсли;
			...
		КонецЦикла

Среда: Альфа-Авто 5.1.10.09 Объем: 1 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *