|
Контроль остатков в регистре накопления | ☑ | ||
---|---|---|---|---|
0
Nolan
24.03.15
✎
16:49
|
Вот в чем суть: При проведении документы "Поступление товаров" и "Реализация товаров" формируют проводки по регистру накопления "Остатки" (это работает). Потом, при списании если у склада установлен флаг "Контроль остатков" то документ не должен проводиться , если количество списания больше чем остатков номенклатуры на данном складе.
Как выполнить данное задание??? |
|||
55
Nolan
25.03.15
✎
12:51
|
(51) не знаю, нужно попробовать поставить до и посмотреть что будет.
А почему он мне сумму не хочет выводить, я вписываю Движение.Сумма = Выборка.Сумма а он пишет поле не найдено( |
|||
56
Nolan
25.03.15
✎
12:54
|
у документа в ТЧ есть реквизит сумма, у регистра тоже есть ресурс сумма
|
|||
57
GROOVY
25.03.15
✎
12:56
|
(54) Совсем не лишнее. Блокировать от чтения остатки то надо.
|
|||
58
fisher
25.03.15
✎
13:00
|
(57) А разве до конца транзакции будет не исключительная блокировка СУБД для строчки таблицы итогов по комбинации измерений? По идее не получится прочитать.
|
|||
59
GROOVY
25.03.15
✎
13:06
|
На запись будет, если нет разделения итогов, на чтение нет.
|
|||
60
Nolan
25.03.15
✎
13:21
|
(55) (56) , кто-нибудь знает почему такое может быть?
|
|||
61
GROOVY
25.03.15
✎
13:23
|
(60) В запросе нет суммы. Ну и собственно сумму из документа в регистр писать, в данном случае, глупо. Это же не себестоимость, а сумма продажи.
|
|||
62
DmitriyDI
25.03.15
✎
13:23
|
(60) знаем, конечно.
|
|||
63
Nolan
25.03.15
✎
13:30
|
(61) У меня в документе "Реализация товаров" уже указывается сумма продажи( имеется в виду цена продажи*на количество продажи), чем это не сумма продажи? это ведь и так не себестоимость, себестоимость то из другого документа бралась бы из "Поступления товаров"
|
|||
64
DmitriyDI
25.03.15
✎
13:33
|
Вот так переделай запрос и будет браться
Запрос.Текст = "ВЫБРАТЬ | РеализацияТовары.Номенклатура, | СУММА(РеализацияТовары.Количество) КАК Количество | СУММА(РеализацияТовары.Сумма) КАК Сумма |ПОМЕСТИТЬ ДокТЧ |ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТовары |ГДЕ | РеализацияТовары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РеализацияТовары.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДокТЧ.Номенклатура, | ДокТЧ.Количество, | ДокТЧ.Сумма |ИЗ | ДокТЧ КАК ДокТЧ"; |
|||
65
GROOVY
25.03.15
✎
13:33
|
(63) А в регистре, что в ресурсе сумма хранится? Плановая сумма продажи, или закупочная стоимость (себестоимость)?
|
|||
66
DmitriyDI
25.03.15
✎
13:33
|
(64) ток | СУММА(РеализацияТовары.Количество) КАК Количество, с запятой
|
|||
67
fisher
25.03.15
✎
13:35
|
(59) Много думал. Не совсем так. На блокировочнике не должно дать прочитать вообще при READ COMMITED в котором работают управляемые блокировки (иначе это было бы "грязное" чтение), а вот на версионнике прочитает старую версию. А это таки косяк с точки зрения проведения. А на новых версиях 1С и с MSSQL работает как с версионником, не говоря уже про postgresql.
Так что ты прав. Не лишнее. |
|||
70
Nolan
25.03.15
✎
13:50
|
(66) Спасибо за помощь!!!) Извини может за глупый вопрос, а вот склад, ведь его тоже нет в запросе, а он выдается в регистре. Почему так? Почему именно для " номенклатуры" "суммы" и "количества" нужно проделывать данную операцию?
|
|||
71
GROOVY
25.03.15
✎
13:54
|
Мда, не удержусь.
Купили ложку за 100р, продали за 302р. В регистре что останется? минус 202р? Это что за цифра? Нафига она в регистре? (70) Склад доступен в контексте объекта. |
|||
72
Nolan
25.03.15
✎
13:54
|
(65) В регистре плановая сумма продажи
|
|||
73
Nolan
25.03.15
✎
13:57
|
(71) я так понимаю, что у меня в регистре пишется просто сумма продажи. купил ложку за 100р записался приход сумма 100, продал ложку за 300 записался расход сумма 300р. Так не правильно делать???
|
|||
74
fisher
25.03.15
✎
13:58
|
(70) Тебе оказали медвежью услугу. Записывать в регистр остатков сумму из документа продажи - глупость и ересь. Если это себестоимость, то она должна приходоваться в регистр из документа поступления товаров а при продаже - считываться из регистра и списываться пропорционально количеству.
(72) Тогда всё равно остаток по ней никогда не будет сходиться. Подобные показатели учитывают на оборотных регистрах. |
|||
75
fisher
25.03.15
✎
14:00
|
Хотя... Если нужно при продаже фиксировать факт расхождения с плановой суммой продажи, тогда может иметь смысл. Но на практике подобная задача с подобной реализацией - тоже ересь какая-то.
|
|||
76
DmitriyDI
25.03.15
✎
14:02
|
(74) неужели вы думаете что он пишет, какую-то рабочую базу, для какой-то фирмы)?
|
|||
77
Nolan
25.03.15
✎
14:03
|
(74) да это логично. ну вот смотри на примере. я купил 3 ложки по 100р, у меня в регистре пишет приход сумма"300р".
а потом я продал 2 по 200р, тогда что у меня должно отображаться в регистре в расходе??? |
|||
78
Nolan
25.03.15
✎
14:03
|
(76) хочется научиться работать правильно.
|
|||
79
Garykom
гуру
25.03.15
✎
14:05
|
Не, не...у вас все неправильно...надо давать проводить документ, потом проверять остатки на минуса...если есть "-" в регистре то отменять проведение...
ЗЫ баян "не мой" |
|||
80
Garykom
гуру
25.03.15
✎
14:05
|
(79)+ почему баян кривой была ветка уже в поиск
|
|||
81
DmitriyDI
25.03.15
✎
14:06
|
(77) вот именно в регистре расхода продаж, а ты пишешь в регистр остатки, который отвечает за что? за оперативный контроль остатков.
|
|||
82
fisher
25.03.15
✎
14:08
|
(76) Здравый смысл хоть какой-то должен быть даже в тестовых задачах.
(77) Классически это решается так. В регистре остатков товаров учитывается его себестоимость. Т.е. спишется 2 шт. по 100 (по закупочной). А сумма продажи отображается по отдельному оборотному регистру продаж (там же можно сразу отразить и обороты по списываемой себестоимости). В итоге ты всегда видишь по чем продал и по чем ты купил то, что продал. Т.е. сколько заработал. Если ты спишешь 2 по 200 в итоге у тебя на остатке будет 1 по -100. И как ты при следующей продаже поймешь, сколько заработал? |
|||
83
GROOVY
25.03.15
✎
14:09
|
(78) Ты сначала подумай зачем в регистре сумма? Ну вот нафига она там?!
|
|||
84
Nolan
25.03.15
✎
14:16
|
(82) все понятно) да тут конечно столько тонкостей) вообщем теперь мне это нужно в коде исправить, чтобы в при списании мне мне выдавалась сумма по себестоимости)
|
|||
85
fisher
25.03.15
✎
14:18
|
В промышленных конфигурациях учет и расчет себестоимости гораздо хитрее и сложнее :)
|
|||
86
Nolan
25.03.15
✎
14:19
|
(85) да понимаю, но тут хотя бы с этим разобраться) а я могу теперь вытащить в своем запросу цену из документа "поступления товаров"?
|
|||
87
GROOVY
25.03.15
✎
14:22
|
(86) Я еще раз обращаю внимание на пост (83).
|
|||
88
Nolan
25.03.15
✎
14:25
|
(87) ну для того чтобы знать сумму списания товаров. так наверное?
|
|||
89
Nolan
25.03.15
✎
14:27
|
(81) а я могу теперь вытащить в своем запросе цену из документа "поступления товаров"?
|
|||
90
GROOVY
25.03.15
✎
14:29
|
(88) А "Количество" - чтобы знать количество списания? Нет.
Сумма, а точнее Стоимость в регистре - это остаток в денежном выражении, равно как Количество - это натуральный остаток. То бишь смотря на свой склад, владелец может не только увидеть дцать ложек, но и сможет узнать сколько эта куча стоит. Регистр, любой, хранит 1 показатель. В примере из (0) показатель в регистре - Остаток товаров, он хранится в натуральном и суммовом выражении. |
|||
91
fisher
25.03.15
✎
14:30
|
(86) Зачем из документа? А зачем же ты её в регистр писал? И как ты вообще себе это представляешь?
Парень, меня смущает не то, что ты новичок. А то, что думать у тебя плохо получается. И работать с информацией тоже. И то и другое плохо сочетается с программированием. Хочется верить, что у тебя получится перестроиться. |
|||
92
GROOVY
25.03.15
✎
14:30
|
(89) Купили ложку первого числа по 100р, и второвго числа по 500р. Продаем ложку третьего числа, какая стоимость должна списаться?
|
|||
93
GROOVY
25.03.15
✎
14:31
|
(91) Вот! Я было уже в других терминах написал, хорошо что не запостил.
|
|||
94
Nolan
25.03.15
✎
14:41
|
(90) Хорошо, допустим так. Я купил 5ть ложек по 100р. Потом продал 3. Регистре должно отобразиться у меня КОЛИЧЕСТВО 3 ЦЕНА 300 , так получается????
|
|||
95
Nolan
25.03.15
✎
14:42
|
(91) все получится)))
|
|||
96
Nolan
25.03.15
✎
14:43
|
(92) наверное 300. Так???
|
|||
97
Nolan
25.03.15
✎
14:45
|
(90) (94) Или должно быть КОЛИЧЕСТВО 2 ЦЕНА 300 ???? как правильно???
|
|||
98
GROOVY
25.03.15
✎
14:45
|
(96) Ну зависит от того как себестоимость считается (а я знаю минимум 5 способов), ответ наводит на мысль, что себестоимость рассчитывается по среднему, и что из документов поступления в таком случае вытаскивать собираешься?
|
|||
99
GROOVY
25.03.15
✎
14:47
|
Слово "Цена" тут совсем не в тему, только сбивает с толку.
Себестоимость 1 штуки 300р, если считать по-среднему. |
|||
100
Nolan
25.03.15
✎
14:49
|
(99) Хорошо. Пусть так
Я купил 5ть ложек по 100р. Потом продал 3. Тогда в регистре должно отобразиться КОЛИЧЕСТВО 3 СУММА 300 ИЛИ КОЛИЧЕСТВО 2 СУММА 200 как правильно? |
|||
101
GROOVY
25.03.15
✎
14:50
|
"Отобразиться" - это что? Движения или остатки?
|
|||
102
Nolan
25.03.15
✎
14:53
|
(101) Ну когда я провожу документ "Реализация товаров" это что? остатки же наверное
|
|||
103
GROOVY
25.03.15
✎
14:55
|
(102) Нет. Это движения. Почитайте книжки, посмотрите бесплатные мультики, самый короткий: http://v8.1c.ru/metod/videotutorial/000000022.html
У Вас каша в голове. |
|||
104
fisher
25.03.15
✎
14:58
|
<рука-лицо>
В движениях регистра при списании "отобразится" 3 шт на сумму 300. Ты же три продаешь, вот три и списываешь. Если после этого прочитать остатки регистра, то на них "отобразится" 2 шт на сумму 200. ЗЫ. Слушай, ну заставь себя поискать и поработать с методическими материалами. Если уже работал, то постарайся при этом больше думать. Складывается ощущение, что ты для себя вынес и понял чуть менее чем ничего. |
|||
105
Nolan
25.03.15
✎
15:02
|
(104) ну вот, теперь понятно))) А как прочитать остатки регистра?
|
|||
106
fisher
25.03.15
✎
15:05
|
Соответствующим способом.
В книжках про это много. И даже в картинках. И даже видео люди трудились, снимали. |
|||
107
fisher
25.03.15
✎
15:07
|
Тебе даже было лень разобрать код, который ты скопипастил? Или это какое-то изощренное издевательство?
|
|||
108
Nolan
25.03.15
✎
15:10
|
(107) да нет, книги тоже смотрю. Может ещё не дошел до того момента. а вот это задание нужно было выполнить, поэтому наверное и такие вопросы возникают. Хотя по Радченко регистры накопления уже прочитал, может упустил... Ладно буду перечитывать)
|
|||
109
fisher
25.03.15
✎
15:11
|
Может, ты просто жертва курсов скорочтения?
|
|||
110
GROOVY
25.03.15
✎
15:15
|
(109) Не похоже, похоже на "обучение по примерам" без разъяснений.
|
|||
111
Nolan
25.03.15
✎
15:15
|
(109) Радченко стр 208 "Регистры накопления" , там вообще ничего про это не рассказано. Даже поля СУММА нет. Только что глянул!
А как прочитать остатки регистра? ответь если не трудно) |
|||
112
iceman2112
25.03.15
✎
15:15
|
Практическое пособие разработчика
|
|||
113
Nolan
25.03.15
✎
15:16
|
(110) похоже на "на выполни задание" выполняй как хочешь!
|
|||
114
1976vas
25.03.15
✎
15:16
|
(108) Проверим. Зачем в регистрах накопления нужны регистры оборотов, если в регистре остатки есть и обороты?
|
|||
115
Nolan
25.03.15
✎
15:18
|
(114) ну получается нужно создать ещё один регистр, только ВИД РЕГИСТРА будет "Обороты"?
|
|||
116
1976vas
25.03.15
✎
15:20
|
(115) Не получится у тебя без теории, методом тыка, ничему научиться.
|
|||
117
Nolan
25.03.15
✎
15:23
|
(116) Ладно это все будет. За 3 недели все выучить не получится. Теперь мне нужно что у меня в поле сумма выдавалась цена себестоимости*количество.
|
|||
118
Nolan
25.03.15
✎
15:27
|
Когда научусь программировать и получу работу, скину вам друзья по 1000 рублей за помощь)))
|
|||
119
1976vas
25.03.15
✎
15:28
|
(117) А где у тебя себестоимость хранится?
|
|||
120
1976vas
25.03.15
✎
15:36
|
Себестоимость рассчитывается, а исходя из чего?
|
|||
121
fisher
25.03.15
✎
15:38
|
(118) Я прям прослезился. Когда-то точно также во франч устраивался, с абсолютного нуля. И тоже было три недели на решение сертификационных задач.
Но т.к. я смог вытянуть самостоятельно, то от меня сочувствия не жди. В современных условиях при наличии интернета, доступности методических материалов и бездны готовых решений - это тупая проверка на адекватность и сообразительность. |
|||
122
fisher
25.03.15
✎
15:42
|
Или две недели? Давно это было. Помню отпуск специально брал на старой работе...
|
|||
123
Nolan
25.03.15
✎
16:02
|
(119) себестоимость я сам вписываю, в документ "Поступление товаров". а потом когда его провожу эта цена отображается в регистре накопления "Остатки".
|
|||
124
Nolan
25.03.15
✎
16:03
|
(122) сейчас тоже во франче работаешь?
|
|||
125
Nolan
25.03.15
✎
16:13
|
(120) в документ "Поступление товаров" в реквизите табличной части "Цена" -это и есть моя себестоимость
|
|||
126
fisher
25.03.15
✎
16:13
|
(124) Нет.
|
|||
127
Nolan
25.03.15
✎
16:14
|
(126) почему, франч не самое лучшее место для работы?
|
|||
128
fisher
25.03.15
✎
16:20
|
(127) Так уж сложилось. Но свой франч - тоже неплохо.
|
|||
129
mTema32
25.03.15
✎
16:20
|
(127)ооооох. Вот так вброс)
|
|||
130
Nolan
25.03.15
✎
16:25
|
(128) ясно. ну подскажи как мне сделать, чтобы у меня в поле сумма выдавалась цена себестоимости*количество, где цена себестоимости берется из документ "Поступление товаров" в реквизите табличной части "Цена"?
|
|||
131
GROOVY
25.03.15
✎
16:29
|
(130) Продавать по себестоимости будешь?
|
|||
132
Nolan
25.03.15
✎
16:36
|
(131) нет! при проведении документа "Реализация товаров" в регистре накопления "Остатки" в поле "СУММА" должно записываться цена себестоимости*количество, где цена себестоимости берется из документ "Поступление товаров" в реквизите табличной части "Цена"
|
|||
133
GROOVY
25.03.15
✎
16:37
|
Не, все, я сдаюсь. Это *издец.
|
|||
134
1976vas
25.03.15
✎
16:38
|
(132) Ты просто пишешь, что в Поле Сумма, в этом поле у тебя ЦенаПродажи, наверное.
|
|||
135
supremum
25.03.15
✎
16:40
|
(132) Почем нынче фунт себестоимости?
|
|||
136
Nolan
25.03.15
✎
16:44
|
(134) В Поле Сумма у меня должно быть цена покупки*количество! Это регистр "Остатки". Это не регистр "Обороты"
|
|||
137
Nolan
25.03.15
✎
16:45
|
(134) В этом поле у меня должна быть цена списания может так понятней будет!
|
|||
138
1976vas
25.03.15
✎
16:49
|
(137) Получай себестоимость из регистра, потом при проведении документа списывай количество и сумму. И урок 11 посмотри Павла Чистова.
|
|||
139
fisher
25.03.15
✎
16:50
|
(137) Мне кажется, что ты растрачиваешь таланты в неправильном направлении. Плюнь на 1С. Потом еще спасибо скажешь.
|
|||
140
Nolan
25.03.15
✎
16:52
|
(138) это мне нужно новый запрос делать и использовать соединение, чтобы получить себестоимость из регистра?
|
|||
141
1976vas
25.03.15
✎
16:54
|
(140) посмотри Урок, там за час все разъясняется. Уже бы давно сделал ))
|
|||
142
GROOVY
25.03.15
✎
16:55
|
(141) Нет, он будет неделю на форуме все выяснять.
|
|||
143
1976vas
25.03.15
✎
16:55
|
(142) Ну общения, наверное, хочется ))
|
|||
144
Nolan
25.03.15
✎
16:55
|
(141) ладно посмотрю! просто в библиотеке ютуб не работает(
|
|||
145
1976vas
25.03.15
✎
16:57
|
(144) Ищи кафэшку какую-нибудь )
|
|||
146
fisher
25.03.15
✎
16:57
|
Потому что тишина должна быть в библиотеке!
|
|||
147
Nolan
25.03.15
✎
16:58
|
(145) хорошо, всем спасибо за советы! я пошел тогда)
|
|||
148
fisher
25.03.15
✎
17:01
|
Только ненадолго! Мы будем волноваться!
|
|||
149
Nolan
25.03.15
✎
22:56
|
В общем наконец доделал. Спасибо Чистову) воттак теперь выглядит код
Процедура ОбработкаПроведения(Отказ, Режим) Движения.Остатки.Записывать=Истина; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТокТаЧ.Номенклатура, | МАКСИМУМ(ТокТаЧ.Количество) КАК Количество, | СУММА(ЕСТЬNULL(Остатки.КоличествоОстаток, 0)) КАК КоличествоОстаток, | МАКСИМУМ(ЕСТЬNULL(Остатки.СуммаОстаток, 0)) КАК СуммаОстаток |ИЗ | Документ.РеализацияТоваров.Товары КАК ТокТаЧ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки(&МоментВремени, ) КАК Остатки | ПО ТокТаЧ.Номенклатура = Остатки.Номенклатура |ГДЕ | ТокТаЧ.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ТокТаЧ.Номенклатура"; Запрос.УстановитьПараметр("МоментВремени", МоментВремени() ); Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Количество > Выборка.КоличествоОстаток Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает товара""" + Выборка.Номенклатура + """, из необходимых " + Выборка.Количество + " в наличии осталось только " + Выборка.КоличествоОстаток; Сообщение.Сообщить(); Отказ=Истина; Движения.Остатки.Записывать=Ложь; КонецЕсли; Если Отказ Тогда Продолжить; КонецЕсли; Движение = Движения.Остатки.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.Склад = Склад; Движение.Количество = Выборка.Количество; Движение.Сумма = Выборка.Количество/Выборка.КоличествоОстаток*Выборка.СуммаОстаток; КонецЦикла; КонецПроцедуры вопрос как теперь здесь осуществлять контроль по тому есть ли в складе Контроль по остаткам. Вот этот код подойдет? и куда именно его вписать? Если не Склад.КонтрольОстатков тогда Возврат; |
|||
150
Nolan
25.03.15
✎
23:48
|
попробовал так
|ГДЕ | ТокТаЧ.Ссылка = &Ссылка И ТокТаЧ.Ссылка.Склад.КонтрольОстатков документ проводиться, только когда его провожу нет проводки в регистре( |
|||
151
DmitriyDI
26.03.15
✎
10:01
|
(150) Если Выборка.Количество > Выборка.КоличествоОстаток и Склад.КонтролироватьОстатки Тогда , можно тут но тогда пользователь не узнает что провел в минус, не будет сообщения.
можно так Отказ=Склад.КонтролироватьОстатки; Движения.Остатки.Записывать=не Склад.КонтролироватьОстатки; |
|||
152
sFAQer
26.03.15
✎
11:29
|
Блин, ОП ты не мог до пятницы подождать?
|
|||
153
fisher
26.03.15
✎
11:33
|
Не мешайте ТС изучать язык запросов методом научного тыка.
|
|||
154
alex_shkut
26.03.15
✎
12:11
|
Возьми коробку с кубиками и поиграйся в поступление и списание.
Намек ;) коробка - это твой регистр. Или лучше со спичками, их можно на части ломать :). Может так понимание придет? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |