Вход | Регистрация


1С:Предприятие ::

Метки: 

Вывод остатков номенклатуры

Я
   Сухраб
 
13.07.18 - 07:26
Доброго дня! есть такой код, остаток выводит, но списания не учитывает, помогите пожалуйста в чем ошибка:

&НаСервере
Функция ВсеОстатки(Материал)
    Запрос = Новый Запрос; Остаток = 0;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОстаткиМатериалов.МестаХранения,
        |   ОстаткиМатериалов.Материал,
        |   ОстаткиМатериалов.КоличествоОстаток,
        |   ОстаткиМатериалов.СуммаОстаток
        |ИЗ
        |   РегистрНакопления.ОстаткиМатериалов.Остатки(
        |       &Дата,
        |       МестаХранения = &МестаХранения И
        |       Материал = &Материал
        |   ) КАК ОстаткиМатериалов";
    //Если Объект.Ссылка.Пустая() Тогда

    //    Д = КонецДня(Объект.Дата);

    //Иначе

    //    Д = Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Исключая);

    //КонецЕсли;

    //

    Запрос.УстановитьПараметр("Дата", 
        Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Включая));
    
    Запрос.УстановитьПараметр("МестаХранения",
        Справочники.МестаХранения.НайтиПоНаименованию(Объект.МестаХранения.Наименование));
        
    Запрос.УстановитьПараметр("Материал",
        Справочники.Материалы.НайтиПоНаименованию(Материал));    
        
    РезультатЗапроса = Запрос.Выполнить();
    
    Записи = РезультатЗапроса.Выбрать();
    
    Пока Записи.Следующий() Цикл
        Остаток = Записи.КоличествоОстаток;
        Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0);
    КонецЦикла;
    
    Возврат Остаток; 
    
КонецФункции
 
 
   NickEge
 
1 - 13.07.18 - 07:48
Мда...
   Сухраб
 
2 - 13.07.18 - 08:01
(1) это значит что все плохо? Я новичок прошу не судите строго)
   K1RSAN
 
3 - 13.07.18 - 08:02
(0) А списания формируют проводки по этому регистру?
   VladZ
 
4 - 13.07.18 - 08:03
Вот тут бред:

Запрос.УстановитьПараметр("МестаХранения",
        Справочники.МестаХранения.НайтиПоНаименованию(Объект.МестаХранения.Наименование));
   VladZ
 
5 - 13.07.18 - 08:05
(0) "но списания не учитывает" - смотри, какие движения делает списание. Код, который ты здесь привел к этому отношения не имеет.
   Сухраб
 
6 - 13.07.18 - 08:11
тогда как будет правильно? есть регистр ОстаткиМатериалов, измерения - МестаХранения, Материал, ресурсы - Количество, Сумма, нужно вывести остаток выбранного материала в колонку Остаток на дату этого документа?
   Сухраб
 
7 - 13.07.18 - 08:12
(4) что здесь не так?
   WhiteDragon93
 
8 - 13.07.18 - 08:18
(7) бред в том, что ты имея ссылку на места хранения, ищешь его по справочнику, чтобы получить ту же самую ссылку.

И что будет, если будет два места хранения с одинаковым наименованием?
   Кац
 
9 - 13.07.18 - 08:20
Получай себестоимость прямо в запросе!
   Сухраб
 
10 - 13.07.18 - 08:23
(8) согласен, исправил спасибо!
 
  Рекламное место пустует
   Сухраб
 
11 - 13.07.18 - 08:24
(9) хооршо, но как получить правильный остаток?
   WhiteDragon93
 
12 - 13.07.18 - 08:24
(0) по теме - смотри регистраторы для регистра ОстаткиМатериалов, есть ли там эти списания.


Или под списаниями имеется в виду весь расход по регистру?
   Кац
 
13 - 13.07.18 - 08:25
(11) что такое "правильный остаток" ? КоличествоОстаток > 0 ?
   Сухраб
 
14 - 13.07.18 - 08:26
(12) "Или под списаниями имеется в виду весь расход по регистру?"
да, после всех расходов, нужен актуальный остаток на дату дока
   catena
 
15 - 13.07.18 - 08:29
(9)Зачем, если он ее никуда не отдает потом?

(14)Ты проверил, в регистре списания есть? С чего ты взял, что остаток не правильный?
   Сухраб
 
16 - 13.07.18 - 08:31
(15) движения по регистру "расход" формирует, проверял
   WhiteDragon93
 
17 - 13.07.18 - 08:31
(16) аналитики совпадают?
   Сухраб
 
18 - 13.07.18 - 08:31
вроде работает!
&НаСервере
Функция ВсеОстатки(Материал)
    Запрос = Новый Запрос; Остаток = 0;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОстаткиМатериалов.МестаХранения,
        |   ОстаткиМатериалов.Материал,
        |   ОстаткиМатериалов.КоличествоОстаток,
        |   ОстаткиМатериалов.СуммаОстаток
        |ИЗ
        |   РегистрНакопления.ОстаткиМатериалов.Остатки(
        |       &Дата,
        |       МестаХранения = &МестаХранения И
        |       Материал = &Материал
        |   ) КАК ОстаткиМатериалов";
    Если Объект.Ссылка.Пустая() Тогда
        Д = КонецДня(Объект.Дата);
    Иначе
        Д = Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Исключая);
    КонецЕсли;
    
    Запрос.УстановитьПараметр("Дата", 
        Д);
    
    //Запрос.УстановитьПараметр("Дата", 

    //    Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Включая));

    
    Запрос.УстановитьПараметр("МестаХранения",
        Объект.МестаХранения);
        
    Запрос.УстановитьПараметр("Материал",
        Материал);    
        
    РезультатЗапроса = Запрос.Выполнить();
    
    Записи = РезультатЗапроса.Выбрать();
    
    Пока Записи.Следующий() Цикл
        Остаток = Записи.КоличествоОстаток;
        Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0);
    КонецЦикла;
    
    Возврат Остаток; 
    
КонецФункции
   WhiteDragon93
 
19 - 13.07.18 - 08:33
(18) а теперь сравни параметры запроса из (0) и из (18), одни и те же передавались?
   Сухраб
 
20 - 13.07.18 - 08:34
(19) мда, тупонул
   Пес Барбос
 
21 - 13.07.18 - 08:36
зачем выборка. сразу в запросе и подели СуммаОстаток на Записи.КоличествоОстаток
   Сухраб
 
22 - 13.07.18 - 08:36
в 7-ке была функция СводныйОстаток(), такого в 8-ке нет?
или это и есть?
   
    Пока Записи.Следующий() Цикл
        Остаток = Записи.КоличествоОстаток;
        Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0);
    КонецЦикла;
   Сухраб
 
23 - 13.07.18 - 08:37
(21) попробую, спасибо!
   Пес Барбос
 
24 - 13.07.18 - 08:42
(22)
ВЫБОР
КОГДА КоличествоОстаток>0 
ТОГДА СуммаОстаток/КоличествоОстаток
ИНАЧЕ 0
КОНЕЦ КАК Себестоимость
   Кац
 
25 - 13.07.18 - 08:52
(21) я еще говорил в (9)

Доктор меня все игнорируют. Следующий! ©
   Пес Барбос
 
26 - 13.07.18 - 09:03
(25) Так я ему контрольный в голову )



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует