8.х Остатки на складе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Adminspb, 15 сен 2009.

  1. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Подскажиет пожалуйста - как лучше програмно получить в УТ 8.1

    1) Остаток заданной позиции номенклатуры на указанную дату
    2) Сколько позиций по ней пришло , ушло.
    3) Конечный остаток позиции номенклатуры на указанную дату
    -----------------------
    1)
    Пробую так

    Код:
    ТоварыНаСкладах = РегистрыНакопления.ТоварыНаСкладах;
    Фильтр = Новый Структура;
    Фильтр.Вставить("Номенклатура",НоменклатураСсылка);
    Фильтр.Вставить("Склад", СкладСсылка);
    
    ТабОстатков = ТоварыНаСкладах.Остатки(ДатаНач,Фильтр,"Номенклатура,Склад","Количество");
    
    
    
    Но возникает проблема с получением самого остатка. Как к ним обращаться?

    2)
    Решаю через запрос...есть ли иные варианты?

    3)
    ПО сути п.1
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    1-й вариант
    Код:
        ТоварыНаСкладах = РегистрыНакопления.ТоварыНаСкладах;
    Фильтр = Новый Структура;
    Фильтр.Вставить("Номенклатура",НоменклатураСсылка);
    Фильтр.Вставить("Склад", СкладСсылка);
    ТабОстатков = ТоварыНаСкладах.Остатки(ДатаНачала,Фильтр,"Номенклатура,Склад","Количество");
    Сообщить("Начальный остаток: "+ТабОстатков[0].Количество);    
    ТабОборотов = ТоварыНаСкладах.Обороты(ДатаНач,ДатаКон,Фильтр,"Номенклатура,Склад","Количество");
    Сообщить("Приход: "+ТабОборотов[0].КоличествоПриход);    
    Сообщить("Расход: "+ТабОборотов[0].КоличествоРасход);    
    ТабОстатков = ТоварыНаСкладах.Остатки(ДатаКон,Фильтр,"Номенклатура,Склад","Количество");
    Сообщить("Конечный остаток: "+ТабОстатков[0].Количество);
    
    
    2-й вариант
    Код:
        Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
    |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
    |            &НачДата,
    |            &КонДата,
    |            ,
    |            ,
    |            Номенклатура = &Номенклатура
    |                И Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты";
    Запрос.УстановитьПараметр("НачДата",ДатаНач);
    Запрос.УстановитьПараметр("КонДата",ДатаКон);
    Запрос.УстановитьПараметр("Номенклатура",НоменклатураСсылка);
    Запрос.УстановитьПараметр("Склад",СкладСсылка);
    Результат = Запрос.Выполнить().Выгрузить();
    Сообщить("Начальный остаток: "+Результат[0].КоличествоНачальныйОстаток);    
    Сообщить("Приход: "+Результат[0].КоличествоПриход);    
    Сообщить("Расход: "+Результат[0].КоличествоРасход);    
    Сообщить("Конечный остаток: "+Результат[0].КоличествоКонечныйОстаток);
    
    
    
    P.S. Запрос лучше
  3. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Странно - запрос не работает.
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Проверьте заполнение параметров, запрос рабочий
  5. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Да, каюсь...
    Спасибо - все работает!
  6. Новичок-студент
    Offline

    Новичок-студент

    Регистрация:
    6 май 2014
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Если такой запрос делаю с помощью консоли запросов, то все работает, показывает правильные цифры, а программно выдаёт нули. Что может быть не так?
    Код:
      Запрос1 = Новый Запрос;
         Запрос1.Текст = "ВЫБРАТЬ
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
         |ИЗ
         |  РегистрНакопления.ОстаткиНаСкладе.ОстаткиИОбороты(
         |  &НачДата,
         |  &КонДата,
         |  ,
         |  ,
         |  Товар = &Номенклатура
         |  ) КАК ТоварыНаСкладахОстаткиИОбороты";
       
         Запрос1.УстановитьПараметр("НачДата",ДатаНачалаПериода);
         Запрос1.УстановитьПараметр("КонДата",ДатаКонцаПериода);
         Запрос1.УстановитьПараметр("Номенклатура",""+ВыборкаТов.НаимТовар+"");
         Результат = Запрос1.Выполнить().Выгрузить();
       
         Сообщить("Начальный остаток: "+Результат[0].КоличествоНачальныйОстаток); 
         Сообщить("Приход: "+Результат[0].КоличествоПриход); 
         Сообщить("Расход: "+Результат[0].КоличествоРасход); 
         Сообщить("Конечный остаток: "+Результат[0].КоличествоКонечныйОстаток);
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. оформляйте код тегами
    2. что передаете в параметры запроса, особенно итересно 3 параметр
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    А кто будет в цикле таблицу обрабатывать ???
    И на будущее, есть вопросы - создавайте темы!!!
  9. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    сдается, что вы для каждой номеклатуры запрос гоняете? передать сразу весь список не пробовали?
    --- Объединение сообщений, 6 май 2014 ---
    Алекс, он одну строку вывести пытается, при чем тут цикл?
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    А смысл в таблицу выгружать тогда ?
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    учится - судя по нику
    --- Объединение сообщений, 6 май 2014 ---
    по факту... ТС посмотрите на параметр
    Код:
    Запрос1.УстановитьПараметр("Номенклатура",""+ВыборкаТов.НаимТовар+"");
    тут надо передавать элементы справочника. Проверьте что у вас передается. Скорее всего тип Строка. Потому и пустой результат запроса, не зависимо оттого куда выгружать
  12. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    а что при таком окончании запроса скажет?
    Код:
    ....
    Запрос1.УстановитьПараметр("Номенклатура",""+ВыборкаТов.НаимТовар+"");
    Результат = Запрос1.Выполнить().Выгрузить();
    
    Сообщить("По товару: "+ВыборкаТов.НаимТовар);
    Сообщить("Начальный остаток: "+Результат[0].КоличествоНачальныйОстаток);
    Сообщить("Приход: "+Результат[0].КоличествоПриход);
    Сообщить("Расход: "+Результат[0].КоличествоРасход);
    Сообщить("Конечный остаток: "+Результат[0].КоличествоКонечныйОстаток);
    
  13. Новичок-студент
    Offline

    Новичок-студент

    Регистрация:
    6 май 2014
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Да, тип строка. С эти параметром понятно, можно не задавать. Убрала все параметры выдает текущие остатки, а мне нужно на период, не могу понять какого типа должны быть параметры , когда задаю дату начала и конца(тип дата?) Мне нужен отчет по товарам, на начало, приход, расход, на конец
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Код:
    Запрос1 = Новый Запрос;
         Запрос1.Текст = "ВЫБРАТЬ
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
         |  ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
         |ИЗ
         |  РегистрНакопления.ОстаткиНаСкладе.ОстаткиИОбороты(
         |  &НачДата,
         |  &КонДата ) КАК ТоварыНаСкладахОстаткиИОбороты";
    Запрос1.УстановитьПараметр("НачДата", ДатаНачала);
    Запрос1.УстановитьПараметр("КонДата", ДатаОкончания);
    Не нужно вам тогда условие на номенклатуру.
    Надеюсь не нужно объяснять что такое ДатаНачала и ДатаОкончания ?
  15. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    да, тип дата у параметров. Если не получается выборка, смотрите как задаете. Покажите те строки, откуда вы получаете эти значения
  16. Новичок-студент
    Offline

    Новичок-студент

    Регистрация:
    6 май 2014
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Параметры задаются в поле формы: добавила поле ввода с типом дата
  17. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну так вот значения этих полей и поставляйте в параметры запроса
  18. Новичок-студент
    Offline

    Новичок-студент

    Регистрация:
    6 май 2014
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Спасибо, это все получилось! я сейчас уже попробовала без наименования товара. Я писала на другом языке, в 1С как-то немного по-другому, очень много встроенного, а я пытаюсь все прописать. Спасибо за помощь! :) Всем спасибо, кто ответил :)
  19. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    да не за что, обращайтесь, толькопосмотрите наши правила - 1вопрос - 1 тема
  20. Новичок-студент
    Offline

    Новичок-студент

    Регистрация:
    6 май 2014
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Ок

Поделиться этой страницей