Имя: Пароль:
1C
1С v8
Документ проводится 2 раза, где ошибка?
0 Vladius
 
01.10.11
15:53
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
              |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
              |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
              |    МИНИМУМ(РасходнаяНакладнаяСписокНоменклатуры.НомерСтроки) КАК НомерСтроки
              |ПОМЕСТИТЬ ДокТЧ
              |ИЗ
              |    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
              |ГДЕ
              |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
              |
              |СГРУППИРОВАТЬ ПО
              |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ДокТч.Номенклатура,
              |    ДокТч.Количество,
              |    ДокТч.НомерСтроки,
              |    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК КоличествоОстаток
              |ИЗ
              |    ДокТЧ КАК ДокТч
              |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МоментВремени, Номенклатура В(ВЫБРАТЬ Номенклатура
              |        ИЗ ДокТЧ КАК ДокТЧ)) КАК Остатки
              |        ПО ДокТч.Номенклатура = Остатки.Номенклатура
              |ИТОГИ МИНИМУМ(Количество), МИНИМУМ(КоличествоОстаток), МИНИМУМ(НомерСтроки)
              |ПО ДокТЧ.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
//Запрос.УстановитьПараметр("УчетнаяПолитика", УчетнаяПолитика);    

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий()  Цикл
   Если Выборка.Количество > Выборка.КоличествоОстаток Тогда
       Нехватает = Число(Выборка.Количество - Выборка.КоличествоОстаток);
       Сообщение = Новый СообщениеПользователю;
       Сообщение.УстановитьДанные(ЭтотОбъект);
       Сообщение.Текст = "Не хватает товара "+"'"+Выборка.Номенклатура+"'"+" "+"количество " +
                         Нехватает + " в наличии только"+Выборка.КоличествоОстаток;
       Сообщение.Поле = "Товары.["+(Выборка.НомерСтроки-1)+"[.Количество]";
       Сообщение.Сообщить();
       Отказ=Истина;
   КонецЕсли;    
КонецЦикла;

Если Отказ Тогда
   Возврат;
КонецЕсли;


Выборка.Сбросить();

Пока Выборка.Следующий() Цикл
       Движение = Движения.ОстаткиНоменклатуры.Добавить();
       Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
       Движение.Период = Дата;
       Движение.Номенклатура = Выборка.Номенклатура;
       Движение.Количество = Выборка.Количество;
КонецЦикла;
Движения.ОстаткиНоменклатуры.Записывать=Истина;
1 Grusswelle
 
01.10.11
15:53
Платформа 8.2.14?
2 Vladius
 
01.10.11
15:54
8.2.13.219
3 Grusswelle
 
01.10.11
15:55
странно
4 Vladius
 
01.10.11
15:58
Просто интересно почему 2 записи появляется в регистрах, провожу товар кол-во 4, в регистрах показывает что 2 раза расходная провелась по 4
5 Шапокляк
 
01.10.11
15:59
А удаление движений?
6 Vladius
 
01.10.11
16:07
(5) Что удаление?
7 Vladius
 
01.10.11
16:11
Епть, помогло это:

Результат.Выбрать(ОбходРезультатаЗапрос.ПоГруппировкам)
8 Vladius
 
01.10.11
16:11
Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
9 PR
 
01.10.11
16:13
(7) LOL