Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Вопрос по оборотам товара (число прочтений - 4745 )
andi_x
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 25. Июля 2006
Вопрос по оборотам товара
26. Июля 2006 :: 10:39
Печать  
Всем доброго дня!
Интересная выборка получается прямым запросом.
В 1С стандартный запрос по оборотам товаров
(анализ продаж для заявок с 1 числа по 31):

ТекстЗапроса="
|ПЕРИОД С НачДата По КонДата;
|Товар                        = Регистр.ОстаткиТоваров.Товар;
|Склад                        = Регистр.ОстаткиТоваров.МестоХранения;
|ОстатокТовара            = Регистр.ОстаткиТоваров.ОстатокТовара;
|Функция Нач =НачОст(ОстатокТовара);
|Функция Прих=Приход(ОстатокТовара);
|Функция Расх=Расход(ОстатокТовара);
|Функция Кон =КонОст(ОстатокТовара);
|Условие (Склад = выбСклад);   
|Условие (Товар в СписТМЦ);
|Группировка Товар Без Групп;
|Группировка День;";
            
    Попадают все дни (31), даже если закупка и продажа
не каждый день, но на остатке что-то есть.

А прямым запросом:
ТекстЗапроса = "

А прямым запросом:
ТекстЗапроса = "
|SELECT
|      Рег.Склад as [Склад $Справочник.МестаХранения],
|      Рег.Товар as [Товар $Справочник.ТМЦ],
|      Рег.ОстатокТовараНачальныйОстаток      as КоличествоНачОст,
|      Рег.ОстатокТовараПриход                  as КоличествоПриход,
|      Рег.ОстатокТовараРасход                  as КоличествоРасход,
|      Рег.ОстатокТовараКонечныйОстаток      as КоличествоКонОст,
|      Рег.Период Период
|FROM
|      $РегистрОстаткиОбороты.ОстаткиТоваров(
|      :НачДата, :КонДата~, День, ДвиженияИГраницыПериода,,
|            Склад in (Select val from #ВыбСклад)
|            And Товар in (Select val from #СписТМЦ),
|            (Склад,Товар),
|            (ОстатокТовара)) as Рег";

Запрос.УстановитьТекстовыйПараметр("НачДата",НачДата);         
Запрос.УстановитьТекстовыйПараметр("КонДата",КонДата);         
Запрос.УложитьСписокОбъектов(ВыбСклад,"#ВыбСклад","МестаХранения");
Запрос.УложитьСписокОбъектов(СписТМЦ ,"#СписТМЦ"  ,"ТМЦ");
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
     
     
попадают только дни по которым были движения (закупка и продажа).
А по нашему алготитму, если товар находится на полке, но не продался
в этот день, то считается тоже в продажу.
Что неправильно работает 1С++ или SQL?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по оборотам товара
Ответ #1 - 26. Июля 2006 :: 10:46
Печать  
Всё работает, как и задумано (т.е. правильно).
Просто учитывай эту фичу в своих разработках.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
andi_x
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 25. Июля 2006
Re: Вопрос по оборотам товара
Ответ #2 - 26. Июля 2006 :: 11:57
Печать  
berezdetsky писал(а) 26. Июля 2006 :: 10:46:
Всё работает, как и задумано (т.е. правильно).
Просто учитывай эту фичу в своих разработках.


Да, но в описании четко написано:
<МетодДополнения>
Тип: конструкция типа ключевое слово.
Имеет смысл, только когда используется разворот по периодам.
Задается один из следующих вариантов:
Движения (Actions) – в таблицу включаются обороты по каждому периоду движений, и текущие остатки только по тем комбинациям измерений, по которым были движения в период расчета;
ДвиженияИГраницыПериода (ActionsAndPeriodBoundaries) – в таблицу включаются обороты по каждому периоду движений и текущие остатки; также таблица дополняется записями о ненулевых остатках на начало и/или конец на границы периода расчета.

А оба метода дают одинаковый результат!
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Вопрос по оборотам товара
Ответ #3 - 26. Июля 2006 :: 12:13
Печать  
Ты недопонял.

ДвиженияИГраницыПериода - дадут железобетонно остатки на Начало и Конец периода.
А не остатки на каждый отрезок в периоде.

Это не соответствует тому, что написано в инструкции, но это так работает.

Этот вопрос уже давно мусолился, даже был найден механизм решения, но я ссылку дать не могу,
ибо еще на itLand это обсуждалось.
  
Наверх
 
IP записан
 
andi_x
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 25. Июля 2006
Re: Вопрос по оборотам товара
Ответ #4 - 26. Июля 2006 :: 12:22
Печать  
Цитата:
Ты недопонял.

ДвиженияИГраницыПериода - дадут железобетонно остатки на Начало и Конец периода.
А не остатки на каждый отрезок в периоде.

Это не соответствует тому, что написано в инструкции, но это так работает.

Этот вопрос уже давно мусолился, даже был найден механизм решения, но я ссылку дать не могу,
ибо еще на itLand это обсуждалось.


Ну чтоже, спасибо и на этом  Печаль
Будем копать дальше...

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать