7.7 ТиС для Украины - Список товаров по выбраной категории
07.08.2009
12:38
#1
Как можно вывести список товаров к которым принадлежит выбраная категория товаров?
08.08.2009
12:56
#5
"категория это справочник
есть еще справочник категории товаров (подчинен справочнику номенклатура)
В нем только один элемент Категория(Типзначения-Справочник.Категории)
в справочнике номенклатура, в форме элемента есть закладка "Категории"
в нее и добавляются элементы справочника Категории товаров
Таким вот образом:
Процедура ДобавитьКатегорию()
ОткрытьПодбор("Справочник.Категории",,,1);
КонецПроцедуры // ДобавитьКатегорию
Процедура ОбработкаПодбора(Элемент, КонтекстФормы) // Предопределенная процедура
Перем КатегорииТоваров, КатегорияТоваровДляПоиска;
КатегорияТоваровДляПоиска = СоздатьОбъект("Справочник.КатегорииТоваров");
КатегорияТоваровДляПоиска.ИспользоватьВладельца(ТекущийЭлемент());
КатегорияТоваровДляПоиска.ВыбратьЭлементы();
Пока КатегорияТоваровДляПоиска.ПолучитьЭлемент()=1 Цикл
Если КатегорияТоваровДляПоиска.Категория = Элемент Тогда
Сообщить(КатегорияТоваровДляПоиска.Категория);
Сообщить(Элемент);
Если КатегорияТоваровДляПоиска.ПометкаУдаления()=0 Тогда
// товар уже принадлежит категории
// ничего не делать
Возврат;
Иначе
// снимем пометку удаления
КатегорияТоваровДляПоиска.СнятьПометкуУдаления();
КатегорииТоваров = КатегорияТоваровДляПоиска.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ПустоеЗначение(КатегорииТоваров)=1 Тогда
// если не нашли категорию с пометкой удаления,
// то создаем новый элемент
КатегорииТоваров = СоздатьОбъект("Справочник.КатегорииТоваров");
КатегорииТоваров.ИспользоватьВладельца(ТекущийЭлемент());
КатегорииТоваров.Новый();
КатегорииТоваров.Категория = Элемент;
Попытка
КатегорииТоваров.Записать();
Исключение
Предупреждение(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецЕсли;
// добавляем в список категорий
СписокКатегорий.ДобавитьЗначение(КатегорииТоваров.ТекущийЭлемент(),
КатегорииТоваров.Категория.Наименование);
СписокКатегорий.ТекущаяСтрока(СписокКатегорий.РазмерСписка());
Форма.кУдалитьКатегорию.Доступность(1);
КонецЕсли;
КонецПроцедуры // ОбработкаПодбора
"
есть еще справочник категории товаров (подчинен справочнику номенклатура)
В нем только один элемент Категория(Типзначения-Справочник.Категории)
в справочнике номенклатура, в форме элемента есть закладка "Категории"
в нее и добавляются элементы справочника Категории товаров
Таким вот образом:
Процедура ДобавитьКатегорию()
ОткрытьПодбор("Справочник.Категории",,,1);
КонецПроцедуры // ДобавитьКатегорию
Процедура ОбработкаПодбора(Элемент, КонтекстФормы) // Предопределенная процедура
Перем КатегорииТоваров, КатегорияТоваровДляПоиска;
КатегорияТоваровДляПоиска = СоздатьОбъект("Справочник.КатегорииТоваров");
КатегорияТоваровДляПоиска.ИспользоватьВладельца(ТекущийЭлемент());
КатегорияТоваровДляПоиска.ВыбратьЭлементы();
Пока КатегорияТоваровДляПоиска.ПолучитьЭлемент()=1 Цикл
Если КатегорияТоваровДляПоиска.Категория = Элемент Тогда
Сообщить(КатегорияТоваровДляПоиска.Категория);
Сообщить(Элемент);
Если КатегорияТоваровДляПоиска.ПометкаУдаления()=0 Тогда
// товар уже принадлежит категории
// ничего не делать
Возврат;
Иначе
// снимем пометку удаления
КатегорияТоваровДляПоиска.СнятьПометкуУдаления();
КатегорииТоваров = КатегорияТоваровДляПоиска.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ПустоеЗначение(КатегорииТоваров)=1 Тогда
// если не нашли категорию с пометкой удаления,
// то создаем новый элемент
КатегорииТоваров = СоздатьОбъект("Справочник.КатегорииТоваров");
КатегорииТоваров.ИспользоватьВладельца(ТекущийЭлемент());
КатегорииТоваров.Новый();
КатегорииТоваров.Категория = Элемент;
Попытка
КатегорииТоваров.Записать();
Исключение
Предупреждение(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецЕсли;
// добавляем в список категорий
СписокКатегорий.ДобавитьЗначение(КатегорииТоваров.ТекущийЭлемент(),
КатегорииТоваров.Категория.Наименование);
СписокКатегорий.ТекущаяСтрока(СписокКатегорий.РазмерСписка());
Форма.кУдалитьКатегорию.Доступность(1);
КонецЕсли;
КонецПроцедуры // ОбработкаПодбора
"
Читают тему
(гостей: 1)