Имя: Пароль:
1C
1С v8
После НГ не заполняется ТЧ документа "Возврат товаров от покупателя"
, ,
0 prosto_proger
 
13.01.12
17:54
Доброго всем времени суток. Подскажите пожалуйста в чем может быть проблема. УТ 10.3 . После НГ не заполняется ТЧ документа "Возврат товаров от покупателя" по нажатию на кнопку "заполнить нереализованными товарами по договору".
1 mikecool
 
13.01.12
17:55
срок действия договора - 11 год?
2 prosto_proger
 
13.01.12
17:57
срок действия договора пусто, значит он бессрочный. Я ведь правильно понимаю?
3 prosto_proger
 
16.01.12
09:00
ап, попробуем счастье сегодня))
4 prosto_proger
 
16.01.12
11:22
есть спецы по УТ в студии? :)
5 rbcvg
 
16.01.12
11:32
в РН ТоварыПереданные есть остаток по этому договору?
6 mikecool
 
16.01.12
11:33
уже бы в отладчике все понял
7 prosto_proger
 
16.01.12
12:56
(5)Остаток по этому договору есть.
(6)Смотрел отладчик еще в пятницу. Отладчик ситуацию не прояснил.
есть такой код

       // Таблица остатков переданных коммисионеру
       ТаблицаПоОстаткам = РезультатЗапроса.Выгрузить();
       Сч = 0;
       Пока Сч < ТаблицаПоОстаткам.Количество() Цикл
           СтрокаТаблицы = ТаблицаПоОстаткам.Получить(Сч);
           Если СтрокаТаблицы.КоличествоОстатокРеализации = 0 Тогда
               ТаблицаПоОстаткам.Удалить(СтрокаТаблицы);
           Иначе
               Сч = Сч + 1;
           КонецЕсли;
       КонецЦикла;

       // Таблица по документам реализации
       ТаблицаПоРеализации = РезультатЗапроса.Выгрузить();
       ТаблицаПоРеализации.Индексы.Добавить("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры");
       Сч = 0;
       Пока Сч < ТаблицаПоРеализации.Количество() Цикл
           СтрокаТаблицы = ТаблицаПоРеализации.Получить(Сч);
           Если СтрокаТаблицы.КоличествоРеализации = 0 Тогда
               ТаблицаПоРеализации.Удалить(СтрокаТаблицы);
           Иначе
               Сч = Сч + 1;
           КонецЕсли;
       КонецЦикла;

       Для каждого СтрокаПоОстаткам ИЗ ТаблицаПоОстаткам Цикл
           ОстатокКоличества = СтрокаПоОстаткам.КоличествоОстатокРеализации;
           ОстатокЦена       = СтрокаПоОстаткам.СуммаВзаиморасчетовОстаток / СтрокаПоОстаткам.КоличествоОстатокРеализации;

           СтруктураПоиска = Новый Структура;
           СтруктураПоиска.Вставить("Номенклатура",               СтрокаПоОстаткам.Номенклатура);
           СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", СтрокаПоОстаткам.ХарактеристикаНоменклатуры);
           СтруктураПоиска.Вставить("СерияНоменклатуры",          СтрокаПоОстаткам.СерияНоменклатуры);
           Если ЕстьКолонкаЗаказ Тогда
               СтруктураПоиска.Вставить("ЗаказПокупателя",          СтрокаПоОстаткам.ЗаказПокупателя);
           КонецЕсли;

           СтрокиРеализации   = ТаблицаПоРеализации.НайтиСтроки(СтруктураПоиска);

           Для Каждого СтрокаРеализации Из СтрокиРеализации Цикл
               Если ОстатокКоличества <= 0 Тогда
                   Продолжить;
               КонецЕсли;
                       И т.д. ......

Так вот после строки "СтрокиРеализации   = ТаблицаПоРеализации.НайтиСтроки(СтруктураПоиска);" возвращается пустой массив. :( Если не сложно, направте на путь истиный.
8 prosto_proger
 
16.01.12
14:05
ап
9 rbcvg
 
16.01.12
14:07
как запрос выглядит?
10 prosto_proger
 
16.01.12
14:11
собственно запрос... кстати типовой...

ВЫБРАТЬ
   Остатки.Номенклатура                КАК Номенклатура,
   Остатки.ХарактеристикаНоменклатуры  КАК ХарактеристикаНоменклатуры,
   Остатки.СерияНоменклатуры           КАК СерияНоменклатуры,
   Остатки.КоличествоОстаток           КАК КоличествоОстатокРеализации,
   Остатки.СуммаВзаиморасчетовОстаток  КАК СуммаВзаиморасчетовОстаток,
   Остатки.Сделка КАК ЗаказПокупателя,
   NULL                                КАК СтавкаНДС,
   NULL                                КАК ЕдиницаИзмерения,
   NULL                                КАК Коэффициент,
   NULL                                КАК КоэффициентХраненияОстатков,
   0                                   КАК КоличествоРеализации,
   NULL                                КАК Цена,
   NULL                                КАК ПроцентСкидкиНаценки,
   NULL                                КАК ВалютаДокумента,
   NULL                                КАК КурсДокумента,
   NULL                                КАК КратностьДокумента,
   NULL                                КАК УчитыватьНДС,
   NULL                                КАК СуммаВключаетНДС,
   NULL                                КАК ДокументПередачи
ИЗ

   РегистрНакопления.ТоварыПереданные.Остатки(,
         ДоговорКонтрагента = &Договор
         
         И СтатусПередачи  = &СтатусПередачи
           ) КАК Остатки

ГДЕ
   Остатки.КоличествоОстаток > 0

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   Док.Номенклатура                КАК Номенклатура,
   Док.ХарактеристикаНоменклатуры  КАК ХарактеристикаНоменклатуры,
   Док.СерияНоменклатуры           КАК СерияНоменклатуры,
   0                               КАК КоличествоОстатокРеализации,
   0                               КАК СуммаВзаиморасчетовОстаток,
    Док.ЗаказПокупателя КАК ЗаказПокупателя,
   Док.СтавкаНДС                   КАК СтавкаНДС,
   Док.ЕдиницаИзмерения            КАК ЕдиницаИзмерения,
   Док.Коэффициент                 КАК Коэффициент,
   Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентХраненияОстатков,
   Док.Количество                  КАК КоличествоРеализации,
   Док.Цена                        КАК Цена,
   Док.ПроцентСкидкиНаценки        КАК ПроцентСкидкиНаценки,
   Док.Ссылка.ВалютаДокумента      КАК ВалютаДокумента,
   ВЫБОР КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов ТОГДА
       Док.Ссылка.КурсВзаиморасчетов
   ИНАЧЕ
       1
   КОНЕЦ                           КАК КурсДокумента,
   ВЫБОР КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов ТОГДА
       Док.Ссылка.КратностьВзаиморасчетов
   ИНАЧЕ
       1
   КОНЕЦ                           КАК КратностьДокумента,
   Док.Ссылка.УчитыватьНДС         КАК УчитыватьНДС,
   Док.Ссылка.СуммаВключаетНДС     КАК СуммаВключаетНДС,
   Док.Ссылка                      КАК ДокументПередачи
ИЗ
   РегистрНакопления.ТоварыПереданные.Остатки(,
         ДоговорКонтрагента = &Договор
         
         И СтатусПередачи   = &СтатусПередачи
           ) КАК Остатки

ЛЕВОЕ СОЕДИНЕНИЕ
   Документ.РеализацияТоваровУслуг.Товары КАК Док
ПО
  Док.Номенклатура                 = Остатки.Номенклатура
  И Док.ХарактеристикаНоменклатуры = Остатки.ХарактеристикаНоменклатуры
  И Док.СерияНоменклатуры          = Остатки.СерияНоменклатуры
  И Док.Ссылка.Проведен
   И Док.ЗаказПокупателя = Остатки.Сделка

ГДЕ
   Остатки.КоличествоОстаток > 0
   И Док.Ссылка.ДоговорКонтрагента = &Договор
   

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   ХарактеристикаНоменклатуры,
   СерияНоменклатуры,
   ДокументПередачи УБЫВ
11 prosto_proger
 
16.01.12
14:40
еще ап
12 MatrosoV AleXXXand_R
 
16.01.12
15:09
1) Посмотреть что подставляется в параметры запроса
2) Скопировать запрос в консоль. Указать в нем те же самые параметры
Дальше - просто методом "убирания" условий и "подгона параметров другими значениями" находим - в чем косяк
13 MatrosoV AleXXXand_R
 
16.01.12
15:10
Может быть даже на самом деле остатков по РН нет
14 MatrosoV AleXXXand_R
 
16.01.12
15:10
или есть, но с другим договором к примеру, отличным от того, который подставляется в параметр
15 prosto_proger
 
16.01.12
15:51
Скажите, а что вы имеете в виду под абривиатурой РН? Расходная Накладная?
16 rbcvg
 
16.01.12
15:57
(15)РегистрНакопления
17 prosto_proger
 
16.01.12
16:26
(15)спасибо. Да, по нему остатки именно по передаваемому в запрос Договору и Контрагенту есть.
18 prosto_proger
 
16.01.12
16:27
(17)->(16)
19 prosto_proger
 
16.01.12
17:01
up