Имя: Пароль:
1C
1С v8
УТ 11. Передача товаров между организациями
0 Zixxx
 
21.04.14
15:05
Заполняем передачу товаров за период с 01.02 по 28.02, в документ добавляется 6 шт, хотя за период продано 8 шт. Начинаю смотреть запрос, к остаткам левым соединением добавлены обороты и условие если остаток < оборота тогда взять остаток. Дело в том что остатки получаются на текущую дату а обороты за период 01.02 по 28.02

Почему так сделано? И как в таком случае делать передачи прошлым месяцем?
1 vvp91
 
21.04.14
15:34
Версия какая?
2 Zixxx
 
21.04.14
15:35
(1) 11.1.5.16 - последняя
3 Zixxx
 
21.04.14
15:36
Собственно вот сам основной запрос:

[code]
    |ВЫБРАТЬ
    |    ПроданныеТовары.АналитикаУчетаНоменклатуры    КАК АналитикаУчетаНоменклатуры,
    |    ПроданныеТовары.ВидЗапасовПродавца            КАК ВидЗапасовПродавца,
    |    ПроданныеТовары.НомерГТД                    КАК НомерГТД,
    |    ПроданныеТовары.КоличествоОборот            КАК КоличествоОстаток
    |
    |ПОМЕСТИТЬ ПроданныеТовары
    |ИЗ
    |    РегистрНакопления.ТоварыОрганизацийКПередаче.ОстаткиИОбороты(&НачГраница, &КонГраница, Период, ,
    |        ОрганизацияВладелец = &Организация
    |        И ВидЗапасовПродавца.Организация = &ОрганизацияПолучатель
    |        И ВидЗапасовПродавца.ТипЗапасов = &ТипЗапасов
    |        И &Склад В (АналитикаУчетаНоменклатуры.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
    |        И (ВидЗапасовПродавца.НалогообложениеНДС = &ПередачаПодДеятельность
    |            ИЛИ ВидЗапасовПродавца.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка))
    |    ) КАК ПроданныеТовары
    |ГДЕ
    |    ПроданныеТовары.КоличествоОборот > 0
    |;
    |/////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПроданныеТовары.АналитикаУчетаНоменклатуры    КАК АналитикаУчетаНоменклатуры,
    |    ПроданныеТовары.ВидЗапасовПродавца            КАК ВидЗапасовПродавца,
    |    ПроданныеТовары.НомерГТД                    КАК НомерГТД,
    |    ПроданныеТовары.КоличествоОстаток            КАК КоличествоОстаток
    |
    |ПОМЕСТИТЬ ПроданныеТоварыОстатки
    |ИЗ
    |    РегистрНакопления.ТоварыОрганизацийКПередаче.Остатки(&КонГраница,
    |        ОрганизацияВладелец = &Организация
    |        И ВидЗапасовПродавца.Организация = &ОрганизацияПолучатель
    |        И ВидЗапасовПродавца.ТипЗапасов = &ТипЗапасов
    |        И &Склад В (АналитикаУчетаНоменклатуры.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
    |        И (ВидЗапасовПродавца.НалогообложениеНДС = &ПередачаПодДеятельность
    |            ИЛИ ВидЗапасовПродавца.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка))
    |    ) КАК ПроданныеТовары
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    АналитикаУчетаНоменклатуры,
    |    ВидЗапасовПродавца,
    |    НомерГТД
    |;
    |/////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Аналитика.Номенклатура КАК Номенклатура,
    |    Аналитика.Характеристика КАК Характеристика,
    |    Аналитика.Серия КАК Серия,
    |    ПроданныеТовары.ВидЗапасовПродавца.ВидЗапасовВладельца КАК ВидЗапасов,
    |    ПроданныеТовары.ВидЗапасовПродавца КАК ВидЗапасовПолучателя,
    |    ПроданныеТовары.НомерГТД КАК НомерГТД,
    |    ВЫБОР КОГДА ЕСТЬNULL(ПроданныеТоварыОстатки.КоличествоОстаток, 0) < ПроданныеТовары.КоличествоОстаток ТОГДА
    |        ЕСТЬNULL(ПроданныеТоварыОстатки.КоличествоОстаток, 0)
    |    ИНАЧЕ
    |        ПроданныеТовары.КоличествоОстаток
    |    КОНЕЦ КАК Количество
    |ИЗ
    |    ПроданныеТовары КАК ПроданныеТовары
    |
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        ПроданныеТоварыОстатки КАК ПроданныеТоварыОстатки
    |    ПО
    |        ПроданныеТовары.АналитикаУчетаНоменклатуры = ПроданныеТоварыОстатки.АналитикаУчетаНоменклатуры
    |        И ПроданныеТовары.ВидЗапасовПродавца = ПроданныеТоварыОстатки.ВидЗапасовПродавца
    |        И ПроданныеТовары.НомерГТД = ПроданныеТоварыОстатки.НомерГТД
    |
    |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |        РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
    |    ПО
    |        ПроданныеТовары.АналитикаУчетаНоменклатуры = Аналитика.КлючАналитики
    |ГДЕ
    |    ЕСТЬNULL(ПроданныеТоварыОстатки.КоличествоОстаток, 0) > 0
    |
    |УПОРЯДОЧИТЬ ПО
    |    Аналитика.Номенклатура,
    |    Аналитика.Характеристика,
    |    Аналитика.Серия,
    |    ПроданныеТовары.ВидЗапасовПродавца,
    |    ПроданныеТовары.ВидЗапасовПродавца.ВидЗапасовВладельца,
    |    ПроданныеТовары.НомерГТД
    |");
[/code]
4 Zixxx
 
21.04.14
15:37
РегистрНакопления.ТоварыОрганизацийКПередаче.Остатки(&КонГраница,...

Вот здесь &КонГраница - параметр который добавил сам, до этого там параметра нет
5 Zixxx
 
21.04.14
16:13
fg
6 vvp91
 
22.04.14
09:45
>> (0) добавляется 6 шт, хотя за период продано 8 шт

В прошлом или в будущем периоде передано на 2 штуки больше, чем продано в таком периоде. Поэтому в текущем периоде передавать надо только 6, а не 8.


>> (4) Вот здесь &КонГраница - параметр который добавил сам, до этого там параметра нет

И правильно, что этого параметра там нет. Там нужны оперативные остатки.
Так что убирай оттуда этот параметр, если не хочешь получить геморой при оформлении по остаткам к передаче.


>> (0) Почему так сделано?
Сделано, поскольку себестоимость считается в пределах месяца и отчетный период у предприятия - месяц. Поэтому в течении расчетного периода передачи надо передать ровно столько, сколько было продано.
Недопередашь за месяц - плохо - нет поступлений в отчетном периоде.
Перепередашь - тоже ничего хорошего - механика себестоимости и механика остатков к передачи будут напрягаться на тему расхождений между остатками организаций и остатками к передаче, могут надорваться.


>> (0) И как в таком случае делать передачи прошлым месяцем?
Выровняй передачи текущего месяца по количеству проданного, тогда в прошлом месяце будет передаваться столько же, сколько продано в том месяце.