Фильтр по ячейкам в инвентаризациях Альфа-Авто 5
Клиент использует информативное хранение по ячейкам. Т.е. для каждого товара указаны ячейки, где он может храниться.
Возникла задача сделать инвентаризацию по отдельным ячейкам.
Добавил в инвентаризацию текстовое многострочное поле «Фильтр по ячейкам», куда пользователь вводит названия ячеек:

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

Свежие комментарии