Работа с конструктором запроса в 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 Сейчас в теме
Вам верно написали - сначала пропишите правильную архитектуру. Если смущают "минусы" - дополните проводки списывающих документов контролем остатка.
А уже после просто получайте остаток по регистру накопления.
Если хотите знать количество именно проданного товара - сделайте отдельно регистр оборотов "Продажи" и пропишите движения по нему у документа реализация.
20. maxPromC 22.08.18 12:52 Сейчас в теме
Конечно остатки вам надо учитывать в одном регистре а не в двух разных. А для учета продаж сделать отдельный регистр. Цена в регистре совершенно ни к чему. Место хранения у вас в приходе одно а в расходе другое, что тоже неверно, куда пришло, оттуда и должно списываться. Посмотрите как делаются движения в любой типовой конфигурации.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)