Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мая 2024, 06:38

вывести норму выбранной номенклатуры из норм расхода владельца номенклатуры

Автор IrinaVolsk, 07 июл 2015, 09:36

0 Пользователей и 1 гость просматривают эту тему.

IrinaVolsk

Помогите решить проблему. Есть документ,в котором выбирается номенклатура(сборка) из справочника "Номенклатура" и владелец(тоже сборка, в которую входит номенклатура) из справочника "номенклатура". Нужно на печать вывести норму выбранной номенклатуры из справочника "нормы расхода" владельца.
Вот код который выводит текущий элемент из норм владельца, а как в нормах найти именно номенклатуру не доходит.

сборка = Владелец;   
наимен = Номенклатура;   
                       
Нормы= СоздатьОБъект("Справочник.НормыРасходов");
Нормы.ИспользоватьВладельца(наимен);
Нормы.ВыбратьЭлементы();
Пока Нормы.ПолучитьЭлемент()>0 Цикл
материал = (""+ СокрЛП (Нормы.ТекущийЭлемент()));   
Комплектность = (""+ СокрЛП (Нормы.ТекущийЭлемент().Норма.Получить(ТекущаяДата()))); /// выв. норму текущего элемента из норм расхода номенклатуры, если элемент деталь выводит материал
материалД= Сред(материал,10,100);
   
КонецЦикла;
   

Если Найти(материал,"Полуфабрикат,")=1 тогда //// Если в нормах расхода есть слово Полуфабрикат, тогда на печать выв. сб.владелец
Нормы= СоздатьОБъект("Справочник.НормыРасходов");
Нормы.ИспользоватьВладельца(сборка);
Нормы.ВыбратьЭлементы();
Пока Нормы.ПолучитьЭлемент()>0 цикл
Комплектность = (""+ СокрЛП (Нормы.ТекущийЭлемент())); // выв. тек.элемент норм расхода владельца
    материалД = "Вх.в  " + владелец;
КонецЦикла;
КонецЕсли;
   
компл=Комплектность;
[code]

BotMan

перечитал раз 10, нифига не понял! :(
покажи скрин какой, хотя бы!
Жми спасибо, если подсказал 8)

IrinaVolsk

Цитата: BotMan от 09 июл 2015, 15:17
перечитал раз 10, нифига не понял! :(
покажи скрин какой, хотя бы!

в файле скриншот документа, печатной формы и модуль.

BotMan

Жми спасибо, если подсказал 8)

IrinaVolsk

Цитата: BotMan от 09 июл 2015, 17:26
я так понял он выводит то, что нужно, но не все ?
Да, если "Номенклатура"- деталь, норму материала выводит правильно, а если "Номенклатура"-сборка, заходит в спр.Нормы расхода "Владельца", это тоже правильно, но выводит последний элемент, а нужно "Номенклатуру"-сборку. если ставлю условие в цикле что текущий элемент =номенклатуре, заходит в нормы расхода "Номенклатуры"-сборки. что еще можно сделать?

BotMan

Вы выражаетесь сленгом своего предприятия, что такое сборка?
я так понял, что сборка - это определенная группа(подгруппа) в номенклатуре, в которой находятся искомые единицы номенклатуры,
то есть, группа в номенклатуре под названием "60", нам нужно вытащить все единицы номенклатуры из этой группы?
если так, то попробуйте добавить в код визуальную проверку

Нормы= СоздатьОБъект("Справочник.НормыРасходов");
Нормы.ИспользоватьВладельца(сборка);
Нормы.ВыбратьЭлементы();
Пока Нормы.ПолучитьЭлемент()>0 цикл
        Сообщить(СокрЛП(Нормы.ТекущийЭлемент()));
Комплектность = (""+ СокрЛП (Нормы.ТекущийЭлемент()));
КонецЦикла;


:dfbsdfbsdf:


Жми спасибо, если подсказал 8)

IrinaVolsk

Цитата: BotMan от 10 июл 2015, 09:35
Вы выражаетесь сленгом своего предприятия, что такое сборка?
я так понял, что сборка - это определенная группа(подгруппа) в номенклатуре, в которой находятся искомые единицы номенклатуры,
то есть, группа в номенклатуре под названием "60", нам нужно вытащить все единицы номенклатуры из этой группы?
если так, то попробуйте добавить в код визуальную проверку

Нормы= СоздатьОБъект("Справочник.НормыРасходов");
Нормы.ИспользоватьВладельца(сборка);
Нормы.ВыбратьЭлементы();
Пока Нормы.ПолучитьЭлемент()>0 цикл
        Сообщить(СокрЛП(Нормы.ТекущийЭлемент()));
Комплектность = (""+ СокрЛП (Нормы.ТекущийЭлемент()));
КонецЦикла;


:dfbsdfbsdf:
сборка это элемент справочника Номенклатура в подчиненном спр.Нормы расхода находятся элементы номенклатуры  из которых состоит сборка . и владелец это тоже самое, только более крупная сборка. из этого кода выводит только текущий элемент, т.е последний лично у меня. в нормах может быть и 10 элементов номенклатуры, а надо конкретно которая указана в табличной части документа. указываем номенклатуру и владельца(куда входит), из норм владельца вытащить номенклатуру. как-то, так. у меня просто тупик:xfbnsdfb:

BotMan

выложи скрин справочников, в них точно указано, что он подчинен?
или давай тимвивер, поковыряемся ;) skype -  botman44
Жми спасибо, если подсказал 8)

IrinaVolsk

Цитата: BotMan от 10 июл 2015, 11:18
выложи скрин справочников, в них точно указано, что он подчинен?
или давай тимвивер, поковыряемся ;) skype -  botman44

BotMan

что такое переменная
комплектность
это список значений или таблица?
так как в нее запихивается все из цикла и перезаписывается.


Нормы= СоздатьОБъект("Справочник.НормыРасходов");
Нормы.ИспользоватьВладельца(наимен);
Нормы.ВыбратьЭлементы();
Пока Нормы.ПолучитьЭлемент()=1 Цикл
материал = (""+ СокрЛП (Нормы.ТекущийЭлемент()));   
материалД= Сред(материал,10,100);     
Если Найти(материал,"Полуфабрикат,")=1 тогда
    материалД = "Вх.в  " + владелец;
Нормы2= СоздатьОБъект("Справочник.НормыРасходов");
Нормы2.ИспользоватьВладельца(сборка);
Нормы2.ВыбратьЭлементы();
Пока Нормы2.ПолучитьЭлемент()=1 цикл
Комплектность = (""+ СокрЛП (Нормы2.ТекущийЭлемент()));
КонецЦикла;
иначе
Комплектность = (""+ СокрЛП (Нормы.ТекущийЭлемент().Норма.Получить(ТекущаяДата())));
КонецЕсли;
Конеццикла;

Жми спасибо, если подсказал 8)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск