Всем привет!
У меня возник к вам вопрос по работе с конструктором запроса.
У меня имеется документ "Инвентаризация продукции в торговом зале"
Хочется получится остаток продукции в зале на данный момент.
Логика в моей самописной конфигурации такова.
1)Поступление;
2)Передача в торг.зал;
3)Реализация;
4)Инвентаризация;
Документы (1) и (2) имеют один Рег.Накопления.
(1) тип движения - приход; (2) тип движения - расход;
(3) тип движения - расход;
---------------------------------------------------------------------------------------------------------
Создал в документе кнопку по подбору остаткам в зале.
Пока что получил количество проданное.
Как получить мне количество остатка продукции?
Всем заранее спасибо.
У меня возник к вам вопрос по работе с конструктором запроса.
У меня имеется документ "Инвентаризация продукции в торговом зале"
Хочется получится остаток продукции в зале на данный момент.
Логика в моей самописной конфигурации такова.
1)Поступление;
2)Передача в торг.зал;
3)Реализация;
4)Инвентаризация;
Документы (1) и (2) имеют один Рег.Накопления.
(1) тип движения - приход; (2) тип движения - расход;
(3) тип движения - расход;
---------------------------------------------------------------------------------------------------------
Создал в документе кнопку по подбору остаткам в зале.
Пока что получил количество проданное.
Как получить мне количество остатка продукции?
Всем заранее спасибо.
По теме из базы знаний
- Консоль запросов со встроенным Конструктором запросов для 1с8.3 (8.2) своими руками
- Не вполне очевидные приемы в конструкторе запросов
- Работа с Конструктором запроса и с кодом и его выполнение в режиме 1С: Предприятие, с замером времени выполнения (обычные формы)
- 1С и ODBC
- Конструктор запросов для пользователей
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Значит Вы не верно пользуетесь регистром накопления ) пересмотрите логику движений в соответствии с реальными движениями документа ()
(1)
а реализация это 100% Расход
(1)
(1) тип движения - приход; (2) тип движения - расход;
вот тут косяк - это не совсем расход, а опять же таки в зависимости от измерения (обычно это склад или МОЛ) поэтому это перемещение по факту - т.е. где то расход, а где то Приход
а реализация это 100% Расход
(6)
1)Поступление
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ПриходПродукции Приход
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = СкладХранения;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
2)Передача в зал
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаСписокПродукции Из СписокПродукции Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоХранения;
Движение.Продукция = ТекСтрокаСписокПродукции.Номенклатура;
Движение.ТипПродукции = ТекСтрокаСписокПродукции.ТипПродукции;
Движение.Фирма = ТекСтрокаСписокПродукции.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаСписокПродукции.ЕдИзмерения;
Движение.Цена = ТекСтрокаСписокПродукции.Цена;
Движение.Количество = ТекСтрокаСписокПродукции.Количество;
Движение.Сумма = ТекСтрокаСписокПродукции.Сумма;
КонецЦикла;
3)Реализация
Движения.ПередачаРеализацииПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПередачаРеализацииПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоРеализации;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдиницаИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;
1)Поступление
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ПриходПродукции Приход
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = СкладХранения;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
2)Передача в зал
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаСписокПродукции Из СписокПродукции Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоХранения;
Движение.Продукция = ТекСтрокаСписокПродукции.Номенклатура;
Движение.ТипПродукции = ТекСтрокаСписокПродукции.ТипПродукции;
Движение.Фирма = ТекСтрокаСписокПродукции.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаСписокПродукции.ЕдИзмерения;
Движение.Цена = ТекСтрокаСписокПродукции.Цена;
Движение.Количество = ТекСтрокаСписокПродукции.Количество;
Движение.Сумма = ТекСтрокаСписокПродукции.Сумма;
КонецЦикла;
3)Реализация
Движения.ПередачаРеализацииПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПередачаРеализацииПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоРеализации;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдиницаИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;
(7) И?
Хотите чтобы я у Архитектора 1С забрал весь хлеб?
Код написать?
извините, но на это нет времени - я сказал Вам что сделать, - реализуйте правильно фактическое перемещение в торговую точку(пока у вас это Реализация/Расход/ВыбытиеТовара)
Хотите чтобы я у Архитектора 1С забрал весь хлеб?
Код написать?
извините, но на это нет времени - я сказал Вам что сделать, - реализуйте правильно фактическое перемещение в торговую точку(пока у вас это Реализация/Расход/ВыбытиеТовара)
смотрите чтобы вид регистра был Остатки, и в запросе используйте виртуальную таблицу этого регистра Остатки.
Бесплатно на будущее: не стоит использовать несколько регистров для определения остатков в конечном итоге - лучше 1 и по нему делать уже движения, будет гораздо проще
Вам верно написали - сначала пропишите правильную архитектуру. Если смущают "минусы" - дополните проводки списывающих документов контролем остатка.
А уже после просто получайте остаток по регистру накопления.
Если хотите знать количество именно проданного товара - сделайте отдельно регистр оборотов "Продажи" и пропишите движения по нему у документа реализация.
А уже после просто получайте остаток по регистру накопления.
Если хотите знать количество именно проданного товара - сделайте отдельно регистр оборотов "Продажи" и пропишите движения по нему у документа реализация.
Конечно остатки вам надо учитывать в одном регистре а не в двух разных. А для учета продаж сделать отдельный регистр. Цена в регистре совершенно ни к чему. Место хранения у вас в приходе одно а в расходе другое, что тоже неверно, куда пришло, оттуда и должно списываться. Посмотрите как делаются движения в любой типовой конфигурации.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот