Помогите с поиском...
18.02.2007
21:59
#1
Помогите с поиском.
Задача следующая:
Осуществить поиск в номенклатуре по её свойствам и распечатать эту информацию.
Например: Кабель рк75-4-11 / свойство - диаметр / значение - 8 мм./
/ свойство - вес / значение - 6 кг./
/ свойство - цвет / значение - синий/
Кабель рк75-7-13 / свойство - диаметр / значение - 12 мм./
/ свойство - вес / значение - 8 кг./
/ свойство - цвет / значение - синий/
Задача-найти и распечатать наименование номенклатуры со значением например "синий"
Номенклатуры около 2000 поз., видов свойств-200, значений-3000.
Для меня, как для начинающего задача непосильная...Помогите!
Задача следующая:
Осуществить поиск в номенклатуре по её свойствам и распечатать эту информацию.
Например: Кабель рк75-4-11 / свойство - диаметр / значение - 8 мм./
/ свойство - вес / значение - 6 кг./
/ свойство - цвет / значение - синий/
Кабель рк75-7-13 / свойство - диаметр / значение - 12 мм./
/ свойство - вес / значение - 8 кг./
/ свойство - цвет / значение - синий/
Задача-найти и распечатать наименование номенклатуры со значением например "синий"
Номенклатуры около 2000 поз., видов свойств-200, значений-3000.
Для меня, как для начинающего задача непосильная...Помогите!
20.02.2007
18:09
#2
"Надо написать обработку:
в цикле перебрать всю номенклатуру и вывести только удовлетворяющую условию
Начинающему:
- либо учиться программировать самому;
- либо позвать того, кто уже умеет
Вы программист?"
в цикле перебрать всю номенклатуру и вывести только удовлетворяющую условию
Начинающему:
- либо учиться программировать самому;
- либо позвать того, кто уже умеет
Вы программист?"
20.02.2007
18:50
#3
Нет, я не программист.
Небольшие изменения в конфигураторе мне до сего времени удавались,
а эта задача оказалась слишком сложной, потому прошу помощи.
Пробовал создать отчёт с запросом с помощью конструктора, получился список
всей номенклатуры с различными комбинациями видов свойств и свойств .Дальнейшие попытки как-то отфильтровать нужное не увенчались успехом.
Пробовал изменять модуль Обработка/свойства объектов, там совсем "беда"
Самое оптимальный вариант это в форме элемента номенклатуры
кнопкой "найти аналоги по свойствам" получить список номенклатурных
позиций которые имеют те-же значения свойств, с возможностью распечатки.
А учиться конечно никогда не поздно, но это целая наука, а я дядька уже далеко не молодой...
Готов позвать того кто умеет - зову!!!
Небольшие изменения в конфигураторе мне до сего времени удавались,
а эта задача оказалась слишком сложной, потому прошу помощи.
Пробовал создать отчёт с запросом с помощью конструктора, получился список
всей номенклатуры с различными комбинациями видов свойств и свойств .Дальнейшие попытки как-то отфильтровать нужное не увенчались успехом.
Пробовал изменять модуль Обработка/свойства объектов, там совсем "беда"
Самое оптимальный вариант это в форме элемента номенклатуры
кнопкой "найти аналоги по свойствам" получить список номенклатурных
позиций которые имеют те-же значения свойств, с возможностью распечатки.
А учиться конечно никогда не поздно, но это целая наука, а я дядька уже далеко не молодой...
Готов позвать того кто умеет - зову!!!
25.02.2007
02:28
#4
Так чего проще - обращайтесь в свою франчайзи, зовите программера - сделает "на раз", даже не слишком дорого. Вообще-то, услуги программеров окупаются очень быстро, ведь Вы экономите свой "живой труд" и экономите повседневно, между тем как программер отработал разово - и все...
19.03.2007
17:07
#5
"Похожая ситуация... самое простое создать подчиненный справочник , нпрм "Свойства", с полями "Свойство" и "Значение". Далее сделаем справочник видов свойств и справочник значений. Один раз заполнить их, а потом в цикле типа:
Ном = СоздатьОбъект("Справочник.Номенклатура");
Св_ва = СоздатьОбъект("Справочник.Свойства");
Ном.ВыбратьЭлементы();
Пока Ном.ПолучитьЭлемент() = 1 Цикл
Нужен = 0;
Св_ва.ИспользоватьВладельца(Ном.ТекущийЭлемент());
Св_ва.ВыбратьЭлементы();
Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
Если Св_ва.Свойство = ВыбСв_во Тогда
Если Св_ва.Значение = ВыбЗначение Тогда
Нужен = 1;
Прервать;
КонецЕсли;
КонецЕсли;
Если Нужен = 1 Тогда
Печать(Ном.ТекущийЭлемент());// отправляем в прцедуру печати
КонецЕсли;
КонецЦикла;
КонецЦикла;....
Чей-то типа этого...
"
Ном = СоздатьОбъект("Справочник.Номенклатура");
Св_ва = СоздатьОбъект("Справочник.Свойства");
Ном.ВыбратьЭлементы();
Пока Ном.ПолучитьЭлемент() = 1 Цикл
Нужен = 0;
Св_ва.ИспользоватьВладельца(Ном.ТекущийЭлемент());
Св_ва.ВыбратьЭлементы();
Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
Если Св_ва.Свойство = ВыбСв_во Тогда
Если Св_ва.Значение = ВыбЗначение Тогда
Нужен = 1;
Прервать;
КонецЕсли;
КонецЕсли;
Если Нужен = 1 Тогда
Печать(Ном.ТекущийЭлемент());// отправляем в прцедуру печати
КонецЕсли;
КонецЦикла;
КонецЦикла;....
Чей-то типа этого...
"
20.03.2007
10:05
#6
"Тогда уж можно попробовать упростить:
Выбрать в справочнике Свойства только тех кто удовлетворяет условию и через Владелец - получить номенклатуру. Это быстрее. Примерно так (работоспособность не проверялась):
Св_ва = СоздатьОбъект("Справочник.Свойства");
Св_ва.ВыбратьЭлементыПоРеквизите("Значение", ВыбЗначение);
Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
Печать(Св_ва.Владелец);// отправляем в прцедуру печати
КонецЦикла;
Если нужен комплексный выбор (по нескольким свойствам) можно использовать запрос. Потом выгрузить в таблицу и перебором строк получить Св-ва и через владельца вывести номенклатуры."
Выбрать в справочнике Свойства только тех кто удовлетворяет условию и через Владелец - получить номенклатуру. Это быстрее. Примерно так (работоспособность не проверялась):
Св_ва = СоздатьОбъект("Справочник.Свойства");
Св_ва.ВыбратьЭлементыПоРеквизите("Значение", ВыбЗначение);
Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
Печать(Св_ва.Владелец);// отправляем в прцедуру печати
КонецЦикла;
Если нужен комплексный выбор (по нескольким свойствам) можно использовать запрос. Потом выгрузить в таблицу и перебором строк получить Св-ва и через владельца вывести номенклатуры."
20.03.2007
10:29
#7
Так совет трудно давать, Galler, не сказал в какой конфигурации, в 7 или 8 он работает. И мы не знаем, может структура справочник уже изменена и данные уже ведутся или он только хочет доработать конфигурацию.
21.03.2007
15:04
#8
"> Тогда уж можно попробовать упростить:
> Выбрать в справочнике Свойства только тех кто удовлетворяет условию и через Владелец - получить номенклатуру. Это быстрее. Примерно так (работоспособность не проверялась):
> Св_ва = СоздатьОбъект("Справочник.Свойства");
> Св_ва.ВыбратьЭлементыПоРеквизите("Значение", ВыбЗначение);
> Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
> Печать(Св_ва.Владелец);// отправляем в прцедуру печати
> КонецЦикла;
>
> Если нужен комплексный выбор (по нескольким свойствам) можно использовать запрос. Потом выгрузить в таблицу и перебором строк получить Св-ва и через владельца вывести номенклатуры.
Все это хорошо, но человек же сообчил, что так глобально не переделывал ничего еще...
К тому ж, а если в элемент номенклатуры надо будет со временем внести еще одно св-во и его значение? Опять добавлять реквизит в конфе?
А так простенько и со вкусом...
"
> Выбрать в справочнике Свойства только тех кто удовлетворяет условию и через Владелец - получить номенклатуру. Это быстрее. Примерно так (работоспособность не проверялась):
> Св_ва = СоздатьОбъект("Справочник.Свойства");
> Св_ва.ВыбратьЭлементыПоРеквизите("Значение", ВыбЗначение);
> Пока Св_ва.ПолучитьЭлемент() = 1 Цикл
> Печать(Св_ва.Владелец);// отправляем в прцедуру печати
> КонецЦикла;
>
> Если нужен комплексный выбор (по нескольким свойствам) можно использовать запрос. Потом выгрузить в таблицу и перебором строк получить Св-ва и через владельца вывести номенклатуры.
Все это хорошо, но человек же сообчил, что так глобально не переделывал ничего еще...
К тому ж, а если в элемент номенклатуры надо будет со временем внести еще одно св-во и его значение? Опять добавлять реквизит в конфе?
А так простенько и со вкусом...
"
Читают тему
(гостей: 1)