Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 02:03

Остатки на конкретную дату и контроль остатков

Автор Max9999, 20 фев 2017, 21:29

0 Пользователей и 1 гость просматривают эту тему.

Max9999

Помогите, пожалуйста, получить остатки на конкретную дату. Также нужно обеспечить контроль остатков. Если остатков не хватает, то выдаётся сообщение. Подскажите, что неправильно в этом коде(выложил только часть кода, где содержатся ошибки). Делаю согласно книге Радченко, но эти моменты там не отражены так, как мне нужно.

Запрос2 = Новый Запрос;   
      Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
      Запрос2.Текст = "ВЫБРАТЬ
                | НоменклатураДокумента.Номенклатура,
                | НоменклатураДокумента.КоличествоВДокументе,
                | ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК Количество
                |ИЗ
                | НоменклатураДокумента КАК НоменклатураДокумента
                | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
                | &ДатаОстатков,
                | Номенклатура В
                | (ВЫБРАТЬ
                | НоменклатураДокумента.Номенклатура
                | ИЗ
                | НоменклатураДокумента)) КАК ОстаткиТоваровОстатки
                | ПО НоменклатураДокумента.Номенклатура = ОстаткиТоваровОстатки.Номенклатура";



      Запрос.УстановитьПараметр("ДатаОстатков", МоментВремени());   
      РезультатЗапроса = Запрос2.Выполнить();

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

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

MuI_I_Ika

МоментВремени() - не установлен момент времени, нужно указывать конкретную дату. А вообще в параметры виртуальной таблицы остатков лучше передавать Границу.

А еще погуглите на тему "новый механизм проведения документов". Если не найдется ничего потом подскажу.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск