будем из справочника Номенклатура, используя
// будем из справочника Номенклатура, используя форму списка "ДляПодбора"
УстановитьЗначениеВПодборе("Склад",Склад);
// В форму подбора в поле "Склад" передаем значение склада из
// текущего документа
КонецПроцедуры
//-----------------------------------------------
Процедура ОбработкаПодбора(ВыбТов)
// Предопределенная процедура, срабатывающая по событию – выбор
// элемента ВыбТов из справочника
КолОст=Регистр.ОстаткиТоваров.СводныйОстаток(Склад,
ВыбТов,,,"Количество");
// Проверим остаток
Если КолОст<=0 Тогда
Возврат;
// если остаток на складе отсутствует, завершаем процедуру
КонецЕсли;
ТабЗн1=СоздатьОбъект("ТаблицаЗначений");
// временная динамическая таблица
ТабЗн2=СоздатьОбъект("ТаблицаЗначений");
// еще одна временная динамическая таблица
ТабЗн2.НоваяКолонка("Сорт","Справочник.Сорт",,,"Сорт",5);
ТабЗн2.НоваяКолонка("Остаток","Число",17,2,"Остаток",17);
// колонки д. таблицы
РегО=СоздатьОбъект("Регистр.ОстаткиТоваров");
РегО.УстановитьФильтр(Склад,ВыбТов);
// в копии регистра остатков нас будут интересовать
// итоги по конкретному складу и конкретному товару
РегО.ВыгрузитьИтоги(ТабЗн1,1,1);
// перегрузим итоги в д. таблицу
РегО="";
ТабЗн1.ВыбратьСтроки();
Пока ТабЗн1.ПолучитьСтроку()=1 Цикл
Ост=ТабЗн1.Количество;
Если Ост>0 Тогда // есть что проверять
// если есть остаток, мы его перенесем во вторую д. таблицу
Срт=ТабЗн1.Сорт;
ТабЗн2.НоваяСтрока();
ТабЗн2.Сорт=Срт;
ТабЗн2.Остаток=Ост;
КонецЕсли;
КонецЦикла;
ТабЗн2.Свернуть("1","2");
// просуммируем по сортам и получим количество товара по каждому сорту
Содержание Назад Вперед