Работа с конструктором запроса в 1С

1. Stanislav1993 21.08.18 09:53 Сейчас в теме
Всем привет!
У меня возник к вам вопрос по работе с конструктором запроса.
У меня имеется документ "Инвентаризация продукции в торговом зале"
Хочется получится остаток продукции в зале на данный момент.
Логика в моей самописной конфигурации такова.
1)Поступление;
2)Передача в торг.зал;
3)Реализация;
4)Инвентаризация;

Документы (1) и (2) имеют один Рег.Накопления.
(1) тип движения - приход; (2) тип движения - расход;
(3) тип движения - расход;
---------------------------------------------------------------------------------------------------------
Создал в документе кнопку по подбору остаткам в зале.
Пока что получил количество проданное.
Как получить мне количество остатка продукции?
Всем заранее спасибо.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ben19791010 21.08.18 09:57 Сейчас в теме
(1)
Как получить мне количество остатка продукции?

обратиться к регистру накопления.Остатки
+
4. Stanislav1993 21.08.18 10:09 Сейчас в теме
(2)Дает отрицательное число и к тому же показывает количество проданной продукции с минусом.
+
6. ben19791010 21.08.18 10:13 Сейчас в теме
(4) Значит Вы не верно пользуетесь регистром накопления ) пересмотрите логику движений в соответствии с реальными движениями документа ()
(1)
(1) тип движения - приход; (2) тип движения - расход;
вот тут косяк - это не совсем расход, а опять же таки в зависимости от измерения (обычно это склад или МОЛ) поэтому это перемещение по факту - т.е. где то расход, а где то Приход
а реализация это 100% Расход
+
7. Stanislav1993 21.08.18 10:25 Сейчас в теме
(6)
1)Поступление
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ПриходПродукции Приход
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = СкладХранения;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры


2)Передача в зал
Движения.ПриходПродукции.Записывать = Истина;
Для Каждого ТекСтрокаСписокПродукции Из СписокПродукции Цикл
Движение = Движения.ПриходПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоХранения;
Движение.Продукция = ТекСтрокаСписокПродукции.Номенклатура;
Движение.ТипПродукции = ТекСтрокаСписокПродукции.ТипПродукции;
Движение.Фирма = ТекСтрокаСписокПродукции.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаСписокПродукции.ЕдИзмерения;
Движение.Цена = ТекСтрокаСписокПродукции.Цена;
Движение.Количество = ТекСтрокаСписокПродукции.Количество;
Движение.Сумма = ТекСтрокаСписокПродукции.Сумма;
КонецЦикла;

3)Реализация
Движения.ПередачаРеализацииПродукции.Записывать = Истина;
Для Каждого ТекСтрокаПрайсЛист Из ПрайсЛист Цикл
Движение = Движения.ПередачаРеализацииПродукции.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Ответственный = Ответственный;
Движение.МестоХранения = МестоРеализации;
Движение.Продукция = ТекСтрокаПрайсЛист.Продукция;
Движение.ТипПродукции = ТекСтрокаПрайсЛист.ТипПродукции;
Движение.Фирма = ТекСтрокаПрайсЛист.Фирма;
Движение.ЕдиницаИзмерения = ТекСтрокаПрайсЛист.ЕдиницаИзмерения;
Движение.Цена = ТекСтрокаПрайсЛист.Цена;
Движение.Количество = ТекСтрокаПрайсЛист.Количество;
Движение.Сумма = ТекСтрокаПрайсЛист.Сумма;
КонецЦикла;
+
8. ben19791010 21.08.18 10:27 Сейчас в теме
(7) И?
Хотите чтобы я у Архитектора 1С забрал весь хлеб?
Код написать?
извините, но на это нет времени - я сказал Вам что сделать, - реализуйте правильно фактическое перемещение в торговую точку(пока у вас это Реализация/Расход/ВыбытиеТовара)
+
11. Stanislav1993 21.08.18 10:30 Сейчас в теме
(8)Я не просил вас писать код. Я лишь продемонстрировал движение товара.
Спасибо за содействие.
+
13. ben19791010 21.08.18 10:34 Сейчас в теме
(11)
Я лишь продемонстрировал движение товара

я понял...в 2) пункт добавьте приход и у Вас не будет отрицательных остатков при действии движений в 3)
+
9. vadim1011985 99 21.08.18 10:29 Сейчас в теме
(7) для реализации : вы делаете движение расход - а где приход ?
+
10. ducks01 21.08.18 10:30 Сейчас в теме
(7)
ПередачаРеализацииПродукции
а где приход на этот регистр ?
+
12. Stanislav1993 21.08.18 10:32 Сейчас в теме
(10)Вы хотите сказать, чтобы передать продукцию в торговый зал, нужно сделать расход регистра накопления ПриходПродукции, и приход для регистра накопления "Реализация продукции"?
+
14. ben19791010 21.08.18 10:36 Сейчас в теме
(12) жесть какая...я даже внимания не обратил, что у Вас отдельный регистр для реализации
+
15. Stanislav1993 21.08.18 10:37 Сейчас в теме
(14)У меня два регистра
1)Приход продукции
2)РеализацияПродукции

То что вы увидели ПередачаРеалазация, то это и есть пункт (2)
+
17. ducks01 21.08.18 10:39 Сейчас в теме
(12) ну хотя бы так, если по логике вам подходит, реализация же не может быть раньше передачи в зал ? просто у вас 2 регистра и если вы со второго что-то списываете то было-бы не плохо туда что-нибудь положить )
+
18. Stanislav1993 21.08.18 10:44 Сейчас в теме
(17)Спасибо за советы. Постараюсь выбраться из путаницы и восстановить логику движений.
+
3. ducks01 21.08.18 10:00 Сейчас в теме
смотрите чтобы вид регистра был Остатки, и в запросе используйте виртуальную таблицу этого регистра Остатки.
+
5. Stanislav1993 21.08.18 10:09 Сейчас в теме
(3)ммм...я пока что не работал с вирт.таблицей..Сейчас поищу как с ней работать. Спасибо!
+
16. ben19791010 21.08.18 10:38 Сейчас в теме
Бесплатно на будущее: не стоит использовать несколько регистров для определения остатков в конечном итоге - лучше 1 и по нему делать уже движения, будет гораздо проще
Ганс; +1
19. KlesAlex 3 22.08.18 10:03 Сейчас в теме
Вам верно написали - сначала пропишите правильную архитектуру. Если смущают "минусы" - дополните проводки списывающих документов контролем остатка.
А уже после просто получайте остаток по регистру накопления.
Если хотите знать количество именно проданного товара - сделайте отдельно регистр оборотов "Продажи" и пропишите движения по нему у документа реализация.
SoLRoN; +1
20. maxPromC 22.08.18 12:52 Сейчас в теме
Конечно остатки вам надо учитывать в одном регистре а не в двух разных. А для учета продаж сделать отдельный регистр. Цена в регистре совершенно ни к чему. Место хранения у вас в приходе одно а в расходе другое, что тоже неверно, куда пришло, оттуда и должно списываться. Посмотрите как делаются движения в любой типовой конфигурации.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот