Имя: Пароль:
1C
1С v8
Счет учета на группу.
0 antihacker
 
16.07.14
12:34
Добрый день ! Вот код. Он работает если в регистре сведении счета учета указаны на товар. А если счета учета указаны на группу товаров, что и есть правильно, то он не работает. Как переделать функцию ?

Функция СчетаУчетаНоменклатуры(Знач вхТовар)
    //-----Структура для возвращения результата---------
    СтруктураРезультата = Новый Структура("СчетБУ","СчетНУ","СчетДоходовОтРеализацииБУ","СчетДоходовОтРеализацииНУ","СчетСебестоимостиПриРеализацииБУ","СчетСебестоимостиПриРеализацииНУ");
    //СтруктураРезультата.Вставить("СчетБУ",0);

//---Ищем в регистре счета товара---------      
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("вхТоварКод", вхТовар.Код);
Запрос.УстановитьПараметр("вхОрганизация", Справочники.Организации.НайтиПоКоду("000000002"));

Запрос.Текст=
"ВЫБРАТЬ
| СчетаУчетаНоменклатуры.Номенклатура.Код КАК НоменклатураКод,
| СчетаУчетаНоменклатуры.Номенклатура КАК Организация,
| СчетаУчетаНоменклатуры.СчетУчетаБУ,
| СчетаУчетаНоменклатуры.СчетУчетаНУ,
| СчетаУчетаНоменклатуры.СчетДоходовОтРеализацииБУ,
| СчетаУчетаНоменклатуры.СчетДоходовОтРеализацииНУ,
| СчетаУчетаНоменклатуры.СчетСебестоимостиПриРеализацииБУ,
| СчетаУчетаНоменклатуры.СчетСебестоимостиПриРеализацииНУ
|ИЗ
| РегистрСведений.СчетаУчетаНоменклатуры КАК СчетаУчетаНоменклатуры
|ГДЕ
| СчетаУчетаНоменклатуры.Номенклатура.Код = &вхТоварКод и СчетаУчетаНоменклатуры.Организация = &вхОрганизация";

    ВыборкаСчета = Запрос.Выполнить().Выбрать();
    //Результат=Запрос.Выполнить().Выгрузить();
    
    Если Запрос.Выполнить().Выбрать().Количество()>0 Тогда
    
        Пока ВыборкаСчета.Следующий() Цикл    
         СтруктураРезультата.Вставить("СчетБУ",ВыборкаСчета.СчетУчетаБУ);    
         СтруктураРезультата.Вставить("СчетНУ",ВыборкаСчета.СчетУчетаНУ);
         СтруктураРезультата.Вставить("СчетДоходовОтРеализацииБУ",ВыборкаСчета.СчетДоходовОтРеализацииБУ);
         СтруктураРезультата.Вставить("СчетДоходовОтРеализацииНУ",ВыборкаСчета.СчетДоходовОтРеализацииНУ);
         СтруктураРезультата.Вставить("СчетСебестоимостиПриРеализацииБУ",ВыборкаСчета.СчетСебестоимостиПриРеализацииБУ);
         СтруктураРезультата.Вставить("СчетСебестоимостиПриРеализацииНУ",ВыборкаСчета.СчетСебестоимостиПриРеализацииНУ);

        КонецЦикла;
        
    КонецЕсли;
    
    Возврат СтруктураРезультата;

КонецФункции
1 lxndr
 
16.07.14
12:40
чем тебе типовые функции не угодили?
2 antihacker
 
16.07.14
12:41
Где лежит такая функция ?
3 antihacker
 
16.07.14
12:42
КОнфига УТП8,1
4 antihacker
 
16.07.14
12:43
Да и это част одной большой работы. Надо Вася, Надо как говорится )
5 antihacker
 
16.07.14
13:04
Конечно можно было бы так. Номенклатура.Родитель. Но если есть еще вложенная группа ?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший