Регистр накопления не правильно считает сумму остатком и сумму
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 2 из 2
  1. #1
    Гость форума

    Регистрация
    17.12.2018
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Регистр накопления не правильно считает сумму остатком и сумму

    Здравствуйте! Есть задание , вроде себестоимость правильно считается,но остатки списываются нет.
    Задание 1.
    Создать пустую конфигурацию.
    Создать справочники "Номенклатура", "Склады".
    Организовать количественно-суммовой учёт товара в регистре
    "ТоварыНаСкладах". Измерения "Номенклатура" и "Склад" Ресурсы:
    "Сумма", "Количество".

    Создать документ "Приходная накладная" Реквизиты шапки: "Склад"
    Табличная часть: "Товары". Реквизиты табличной части: Номенклатура,
    Количество, Цена, Сумма. Документ делает приход товара в регистр.
    Создать документ "Расходная накладная". Реквизитов в шапке нет.
    Табличная часть "товары" содержит реквизиты: номенклатура, склад,
    количество, цена, сумма. (Склад в табличной части, следовательно
    документом можно продать товары с нескольких складов).
    В конфигурации документах и в регистрах все суммы (сумма и цена)
    имеют измерения [15,2] что означает длина 15, знаков после запятой 2.
    Количество везде имеет измерение [15,3]
    Документ Расхродная накладная списывает товары со складов по
    себестоимости (определяет стоимость товара в регистре и делает
    движение "расход"). Если товара на складе не хватает, документ
    сообщает об этом и не проводится.

    Процедура ОбработкаПроведения(Отказ, Режим)
    // регистр ТоварыНаСкладах Расход
    Движения.ТоварыНаСкладах.З аписывать = Истина;

    МенеджерВТ = Новый МенеджерВременныхТаблиц;

    Запрос = Новый Запрос;

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

    Запрос.УстановитьПараметр( "Ссылка", Ссылка);

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

    Запрос=Новый Запрос;
    Запрос.МенеджерВременныхТ� �блиц = МенеджерВТ;//ТОВАРЫ ОСТАТКИ НЕ ПРАВИЛЬНО ПОЛУЧЕНЫ ГДЕ АПРОС ПО СКЛАДУ? учись получать товары по складам!
    //ПРИМЕР ПОСТАВЬ 200 ТОВАРОВ НА СКЛАД 1
    //СПИШИ По 100 С КАЖДОГО СКЛАДА ОДНИМ ДОКУМЕНТОМ ПРОЖИ
    Запрос.Текст = "ВЫБРАТЬ
    | НоменклатураДокумента.Ном� �нклатура КАК Номенклатура,
    | НоменклатураДокумента.Кол� �чествоВДокументе КАК КоличествоВДокументе,
    | НоменклатураДокумента.Сум� �аВДокументе КАК СуммаВДокументе,
    | НоменклатураДокумента.Скл� �д КАК Склад,
    | ЕСТЬNULL(ТоварыНаСкладахОст� �тки.СуммаОстаток, 0) КАК СуммаОстаток,
    | ЕСТЬNULL(ТоварыНаСкладахОст� �тки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | РасходнаяНакладная.Ссылка КАК Ссылка
    |ИЗ
    | НоменклатураДокумента КАК НоменклатураДокумента
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыН� �Складах.Остатки(, ) КАК ТоварыНаСкладахОстатки
    | ПО (ТоварыНаСкладахОстатки.Ск лад В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ВЫРАЗИТЬ(НоменклатураДоку� �ента.Склад КАК Справочник.Склады)
    | ИЗ
    | Документ.РасходнаяНакладн� �я.Товары КАК РасходнаяНакладная
    | ГДЕ
    | РасходнаяНакладная.Ссылка = &Ссылка
    | И НЕ ВЫРАЗИТЬ(НоменклатураДоку� �ента.Склад КАК Справочник.Склады) ЕСТЬ NULL))
    | И (ТоварыНаСкладахОстатки.Но менклатура В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | НоменклатураДокумента.Ном� �нклатура
    | ИЗ
    | Документ.РасходнаяНакладн� �я.Товары КАК РасходнаяНакладная
    | ГДЕ
    | РасходнаяНакладная.Ссылка = &Ссылка)),
    | Документ.РасходнаяНакладн� �я КАК РасходнаяНакладная";

    Запрос.УстановитьПараметр( "Ссылка", Ссылка);



    Движения.ТоварыНаСкладах.Б локироватьДляИзменения = Истина;
    //////
    Движения.ТоварыНаСкладах.З аписать();
    ////
    РезультатЗапроса = Запрос.Выполнить();

    //ТЗ = РезультатЗапроса.Выгрузит� �();

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

    Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл

    Движение = Движения.ТоварыНаСкладах.Д обавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
    Движение.Период = Дата;
    Движение.Номенклатура =ВыборкаДетальныеЗаписи.Но менклатура;
    Движение.Склад =ВыборкаДетальныеЗаписи.Ск лад;
    Движение.Сумма = (ВыборкаДетальныеЗаписи.Су ммаОстаток/ВыборкаДетальныеЗаписи.Ко� �ичествоОстаток)*ВыборкаДе� �альныеЗаписи.КоличествоВД окументе;
    Движение.Количество = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе;


    КонецЦикла;

    Движения.Записать();

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

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

    ТЗ = РезультатЗапроса.Выгрузит� �();

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

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

    Отказ = Истина;
    //КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры

  2. #2
    Гость форума

    Регистрация
    17.12.2018
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Регистр накопления не правильно считает сумму остатком и сумму

    Процедура ОбработкаПроведения(Отказ, Режим)
    // регистр ТоварыНаСкладах Расход
    Движения.ТоварыНаСкладах.З аписывать = Истина;

    МенеджерВТ = Новый МенеджерВременныхТаблиц;

    Запрос = Новый Запрос;

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

    Запрос.УстановитьПараметр( "Ссылка", Ссылка);

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

    Запрос=Новый Запрос;
    Запрос.МенеджерВременныхТ� �блиц = МенеджерВТ;//ТОВАРЫ ОСТАТКИ НЕ ПРАВИЛЬНО ПОЛУЧЕНЫ ГДЕ АПРОС ПО СКЛАДУ? учись получать товары по складам!
    //ПРИМЕР ПОСТАВЬ 200 ТОВАРОВ НА СКЛАД 1
    //СПИШИ По 100 С КАЖДОГО СКЛАДА ОДНИМ ДОКУМЕНТОМ ПРОЖИ
    Запрос.Текст = "ВЫБРАТЬ
    | НоменклатураДокумента.Ном� �нклатура КАК Номенклатура,
    | НоменклатураДокумента.Кол� �чествоВДокументе КАК КоличествоВДокументе,
    | НоменклатураДокумента.Сум� �аВДокументе КАК СуммаВДокументе,
    | НоменклатураДокумента.Скл� �д КАК Склад,
    | ЕСТЬNULL(ТоварыНаСкладахОст� �тки.СуммаОстаток, 0) КАК СуммаОстаток,
    | ЕСТЬNULL(ТоварыНаСкладахОст� �тки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | РасходнаяНакладная.Ссылка КАК Ссылка
    |ИЗ
    | НоменклатураДокумента КАК НоменклатураДокумента
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыН� �Складах.Остатки(, ) КАК ТоварыНаСкладахОстатки
    | ПО (ТоварыНаСкладахОстатки.Ск лад В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ВЫРАЗИТЬ(НоменклатураДоку� �ента.Склад КАК Справочник.Склады)
    | ИЗ
    | Документ.РасходнаяНакладн� �я.Товары КАК РасходнаяНакладная
    | ГДЕ
    | РасходнаяНакладная.Ссылка = &Ссылка
    | И НЕ ВЫРАЗИТЬ(НоменклатураДоку� �ента.Склад КАК Справочник.Склады) ЕСТЬ NULL))
    | И (ТоварыНаСкладахОстатки.Но менклатура В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | НоменклатураДокумента.Ном� �нклатура
    | ИЗ
    | Документ.РасходнаяНакладн� �я.Товары КАК РасходнаяНакладная
    | ГДЕ
    | РасходнаяНакладная.Ссылка = &Ссылка)),
    | Документ.РасходнаяНакладн� �я КАК РасходнаяНакладная";

    Запрос.УстановитьПараметр( "Ссылка", Ссылка);



    Движения.ТоварыНаСкладах.Б локироватьДляИзменения = Истина;
    //////
    Движения.ТоварыНаСкладах.З аписать();
    ////
    РезультатЗапроса = Запрос.Выполнить();

    //ТЗ = РезультатЗапроса.Выгрузит� �();

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

    Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл

    Движение = Движения.ТоварыНаСкладах.Д обавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
    Движение.Период = Дата;
    Движение.Номенклатура =ВыборкаДетальныеЗаписи.Но менклатура;
    Движение.Склад =ВыборкаДетальныеЗаписи.Ск лад;
    Движение.Сумма = (ВыборкаДетальныеЗаписи.Су ммаОстаток/ВыборкаДетальныеЗаписи.Ко� �ичествоОстаток)*ВыборкаДе� �альныеЗаписи.КоличествоВД окументе;
    Движение.Количество = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе;


    КонецЦикла;

    Движения.Записать();

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

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

    ТЗ = РезультатЗапроса.Выгрузит� �();

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

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

    Отказ = Истина;
    //КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 17.02.2017, 08:21
  2. не ставит выплаченную сумму налога в 2НДФЛ
    от litvit в разделе 1С - Предприятие 7.7
    Ответов: 0
    Последнее сообщение: 29.03.2014, 09:06
  3. Пересчитать сумму НДС
    от Alonix в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 2
    Последнее сообщение: 28.08.2013, 14:39
  4. помогите новечку не могувывести определенную сумму
    от hyst в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 24.01.2013, 21:35

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •