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

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

Метки:регистры

Неправильно списывется товар по регистру

Я
   SloTh
 
24.07.04 - 16:12
Разбираюсь с ТиС в.7.70.805, вылезла следующая проблема:
Отдаю товар на реализацию РасходнойРеализатора, списывается по ФИФО, но почемуто списывается только с первой партии :(
Выяснил следующий запрос
ТекстЗапроса= "//{{ЗАПРОС(ОстаткиТоваровНаРеализацию)

|Период с '01.01.80' по ТекДок;
|Док = Регистр.ПартииТоваров.ТекущийДокумент;
|ФирмаР = Регистр.ПартииТоваров.Фирма;
|СкладР = Регистр.ПартииТоваров.Склад;
|ТоварР = Регистр.ПартииТоваров.Товар;
|ПартияР = Регистр.ПартииТоваров.Партия;
|КонтрагентПартии = Регистр.ПартииТоваров.КонтрагентПартии;
|Статус = Регистр.ПартииТоваров.Статус;
|ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара;
|Себестоимость = Регистр.ПартииТоваров.Себестоимость;
|СебестоимостьНДС = Регистр.ПартииТоваров.СебестоимостьНДС;
|ВалСебестоимость = Регистр.ПартииТоваров.ВалютнаяСебестоимость;
|ВалСебестоимостьНДС = Регистр.ПартииТоваров.ВалютныйСебестоимостьНДС;
|Функция ОстатокТовараФ = КонОст(ОстатокТовара);
|Функция СебестоимостьФ = КонОст(Себестоимость);
|Функция СебестоимостьНДСФ = КонОст(СебестоимостьНДС);
|Функция ВалСебестоимостьФ = КонОст(ВалСебестоимость);
|Функция ВалСебестоимостьНДСФ = КонОст(ВалСебестоимостьНДС);
|Условие (ФирмаР = Фирма);
|Условие (ТоварР в СписокТоваров);
|Условие ((Статус = Перечисление.СтатусПартии.ПринятыйНаРеализацию)ИЛИ(Статус = Перечисление.СтатусПартии.Купленный));
|Группировка ТоварР без групп;
|Группировка ПартияР упорядочить по ПартияР.ДатаДок,ПартияР.ВремяДок;
|Группировка СкладР без групп;
|//}}ЗАПРОС
всегда возвращает остаок равный первоначальному.
Списание делает следующий кусок кода:

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

Может у кого возникнет идея почему товар не списывается.
Заранее спасибо.
 
  Рекламное место пустует
   NS
 
1 - 24.07.04 - 16:18
|Док = Регистр.ПартииТоваров.ТекущийДокумент; 
Что это???
Ты хочешь остаток по нему получить - тогда читай ЖКК...
Если нет - зачем это в запросе?
Запросом остатки получать - не надо - есть метод - рег.выгрузитьИтоги()
   SloTh
 
2 - 24.07.04 - 19:39
Нет, остаток по документу мне не нужен, это код был изначально (в смысле когда эта конфа попала ко мне в руки)
А на счет ВыгрузитьИтоги сейчас буду смотреть, похоже придется переписывать почти всю процедуру проведения документа ...
   SloTh
 
3 - 25.07.04 - 11:15
Вроде все начало проясняться, некорректно выставлялось измерение Контрагент.
Параллельно возник вопрос Контрагент и КонтрагентПартии - что есть что?
   NS
 
4 - 25.07.04 - 12:19
КонтрагентПартии - Это поставщик из документа партия...
А контрагент - это где? В реквизитах регистра?
   SloTh
 
5 - 25.07.04 - 14:33
Нет, в измерениях:
ПартииТовара:
 Измерения
   Фирма
    Товар
    Партия
    Статус
    Склад
    Контрагент
    КонтрагентПартии
  Ресурсы
    ОстатокТОвара
    Себестоимость
    СебестоимостьНДС
    ВалютнаяСебестоимость
    ВалютнаяСебестоимостьНДС

P.S. С этой проблемой я похоже почти разобрался, там при списании указывался в качестве Контрагента Клиент, если я подставляю вместо него Контрагента по партии с которой идет списание, то вроде нормально, сейчас кумекаю где эта моя подстановка еще вылезет :)
Переписывать всю процедуру проведения пока страшновато ...


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