Имя: Пароль:
1C
1С v8
Снятие с резерва автоматически через месяц в УПП
,
0 Простенький вопросик
 
26.09.13
09:40
Есть ли такой стандартный механизм, который бы убирал с резерва товары, поставленные в резерв месяц назад?
1 Нуф-Нуф
 
26.09.13
09:42
нет
2 Нуф-Нуф
 
26.09.13
09:42
сделаю удаленно. цена вопроса 5000р
3 Нуф-Нуф
 
26.09.13
09:43
Стальное Челябинское Качество гарантировано
4 Простенький вопросик
 
26.09.13
09:54
Ну приблизительно подскажите, куда ткнуть?
5 Jonny_Khomich
 
26.09.13
09:55
(4) регламентные задания
6 Простенький вопросик
 
26.09.13
11:21
А можете хотя бы подсказать, где хранятся данные по резервам в УПП? Ну там в регистре каком то или еще как?
7 ДенисЧ
 
26.09.13
11:21
(6) Ви непоеврите... В регистре Резервы...
8 Галахад
 
гуру
26.09.13
11:23
Документ же есть. Закрытие резервов.
Только его руками надо делать.
9 Турист
 
26.09.13
11:29
(8) "программа все должна делать автоматом" (с)
10 Простенький вопросик
 
26.09.13
11:32
(7)
ТоварыВРезевеНаСкладах - он?
11 ДенисЧ
 
26.09.13
11:33
(10) Умничка :-)
(8) ЗАчем руками? Один раз процедурку написал и в регламенты её...
12 МойКодУныл
 
26.09.13
11:36
(0) Писал руками в УТ по условию "если заказ висит в резерве полностью более 5 дней и не уходит на сборку".
Странно снимать по товарам, а не по "документам", может просто нет всего набора позиций и клиент ждет пока все появится. А ты возьмешь и снимешь резервы=) или в УПП не так все?
13 Простенький вопросик
 
26.09.13
11:36
Кстати в регистре есть плюс и минус. Как правильнее, добавить минус или убрать плюс для закрытия резерва?
14 ДенисЧ
 
26.09.13
11:37
(13) поф.
Делай сторно.
15 МойКодУныл
 
26.09.13
11:37
(13) возьми лучше доработку у (1)
16 Галахад
 
гуру
26.09.13
11:40
(11) Это ж программировать надо!
17 ДенисЧ
 
26.09.13
11:42
(16) Ну зачем... Можно мне заплатить :-)
18 Простенький вопросик
 
26.09.13
11:50
Так киньте ее сюда эту разработку. Скажу спасибо.
19 Галахад
 
гуру
26.09.13
11:54
Кидай сюда 5 Крублей, в кого попадешь, что и кинет "разработку"
20 Простенький вопросик
 
26.09.13
11:55
Ну там же 2-3 строчки по идее, или даже 1. В чем сложность выложить?
21 Простенький вопросик
 
26.09.13
12:09
Ну промежуточный вопрос, как в запросе в виртуальной таблице регистра задать текущую дату в поле периода?
22 МойКодУныл
 
26.09.13
12:15
(21) В смысле в параметрах вирт таблицы? Через &параметр запроса!
Странный вопрос, или я чего не понял.
23 Простенький вопросик
 
26.09.13
12:20
(22)
да, точно, забыл просто
24 Простенький вопросик
 
26.09.13
15:41
Вот кстати такой код получился. Как думаете, он решает мою задачу или нет?

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

    попытка
      НаборЗаписей=РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор);
НаборЗаписей.Прочитать();

НаборЗаписей.Удалить();

исключение
конецпопытки;
    Конеццикла;    
    

КонецПроцедуры
25 Галахад
 
гуру
26.09.13
15:45
Возможно появление минусов.
26 Простенький вопросик
 
26.09.13
15:49
(25)
А какие последствия от минусов? Смогут зарезервировать потом больше товаров, чем есть?
27 ДенисЧ
 
26.09.13
15:50
(25) не решит. Тебе нужны остатки, а не движения.
ПРикинь, если какой-то заказ будет выполнен частично?
28 Csar
 
26.09.13
15:55
(25) откуда минусы могут появиться вследствие удаления записей подобным образом?
29 МойКодУныл
 
26.09.13
16:00
УЖАС, к реальной таблице. Да еще и тереть движения задним числом у регистратора, без поверки остатков. А если документ перепроведут? А если уже списан этот резерв другим документом?
Закажи доработку, в ветке кто-то предлагал почти за тарелку супа(с лопстером).
30 Простенький вопросик
 
26.09.13
16:05
(29)
Если документ перепроведут, резерв возобновится. Но в конце дня он этой обработкой потрется ). Если резерв уже списан, то он пропадет вместо со списыванием )
31 Простенький вопросик
 
26.09.13
16:06
+(30)вместе со списыванием
32 МойКодУныл
 
26.09.13
16:10
(31) это жуть. Если "списывание" было вчера, а резерв встал месяц назад, то еще месяц у тебя будет висеть отрицательный остаток по резервам - следовательно неправильный "свободный остаток" по позиции. Истории резервов не будет вообще, все трется раньше указанной даты.
Ты точно не тролль?
33 Простенький вопросик
 
26.09.13
16:17
(32)
Нет, я даже как-то 5 лет в 8ке кодирую и мне платят. Но все равно всех нюансы в ней некогда учить. Проще разбираться на месте (мисте). Вы подскажите если знаете как правильно.
34 ptiz
 
26.09.13
16:22
Убирать - значит, создавать документ "Закрытие резервов" текущей датой и проводить его.
35 Галахад
 
гуру
26.09.13
16:22
(33) Стандартный документ чем не устроил?
36 Простенький вопросик
 
26.09.13
16:27
(35)
тут с 2010 года резервы не снимались, их контроль просто отключили. Половина регистраторов пропала, в регистрах ссылки битые  по регистраторам в куче позиций. Как в такой ситуации навести порядок через документы?
37 Галахад
 
гуру
26.09.13
16:33
(36) Ну старые проблемы может быть и нормально так лечить.
А зачем такое делать на текущих данных?
38 ptiz
 
26.09.13
16:36
(36) "ссылки битые  по регистраторам " - восстановить.
39 Простенький вопросик
 
26.09.13
16:40
(37)
В моей УПП нет документа "закрытие резервов". Про какой стандартный документ речь?
40 Serg_1960
 
26.09.13
16:42
"Как в такой ситуации навести порядок через документы" - да, пожалуй, никак. Сначала надо навести порядок. Административно. Кто, когда и как делает; кто, когда и как контролирует. Вот согласно этому регламенту и наводи порядок. Иначе хаос вновь будет раньше, чем ты предполагаешь.
41 Галахад
 
гуру
26.09.13
16:45
(39) Возможно, "закрытие заказов покупателей".
42 Serg_1960
 
26.09.13
16:46
(0) Если резервы "под заказ", то закрытие заказов закрывает и резервы в том числе. Висят резервы? Значит и с закрытием заказов у вас непорядок. Закрой заказы - закроются резервы.
43 Trance_1C
 
26.09.13
16:46
давно уже так сделали у себя в УПП.
каждое утро закрываются заказы.
44 neomarat
 
26.09.13
16:48
для пяти лет программирования - не кошерно выгружать в ТЗ результат запроса.
45 МойКодУныл
 
26.09.13
16:50
В УТ документ, которым можно снять резерв, без закрытия заказа - резервирование товаров. В УПП должен тоже подобный быть.
46 Простенький вопросик
 
26.09.13
16:51
(43)
Автоматически или юзерами?
47 Serg_1960
 
26.09.13
16:53
Если автор программист 1С :) - то посмотри в конфигурации, например, ЧислоДнейРезерваБезОплаты - капля в море по навдению порядка. Пользователь? Ну тогда, например, операции что ли в документе закрытие заказов покупателей посмотри...

(45) и в УПП такой же есть. Это ж УПП :) Установить, изменить снять с резерва. Там у него даже есть обработки по заполнению ТЧ документа - то что нужно ТС.
48 Простенький вопросик
 
26.09.13
17:00
(47)
ЧислоДнейРезерваБезОплаты я смотрел уже, оно похоже чисто информационное поле, никакие манипуляции в базе с этим полем не производятся.
49 Михаил Козлов
 
26.09.13
17:11
(45)+.
Делаю регламентным заданием (создается документ Резервирование товаров с нужным видом операции).
50 kubera
 
26.09.13
17:21
Док называется "Закрытие заказов...", вид операции в нем - "снятие резервов".
51 МойКодУныл
 
26.09.13
17:33
(50) Все так делают, но не показывают свой код. Жадные 1С-ники.

Алгоритм:

1. Собрать остатки по резервам ПО ВИРТУАЛЬНОЙ ТАБЛИЦЕ ОСТАТКОВ на текущую дату. Чтобы убедиться, что резерв еще есть.

2. В том же запросе наложить фильтр по необходимому условию, чтобы закрыть только нужные. Например, ДокументРезерва.Дата <&ДатаСреза - это оставит только заказы, созданные до указанной даты, что не совсем корректно.
Условие может быть сложным и потребовать соединений с другими таблицами. Например, у меня задача была другой и я проверял полноту(Остатки по заказу = Остатки по Резервам) резерва заказа: 1)на тек дату и 2) У полностью заререзвированных сейчас - 5 дней назад от тек даты. Если резерв был полным 5 дней назад - значит это "наш клиент".

3.По полученному результату создать документы закрытия резерва на каждый заказ - найти какой. Вполне может оказаться, что подойдет стандартная обработка заполнения или процедура из этих документов. И не придется ничего дописывать самому, только правильно выбрать заказы, которые хочешь закрыть.

Если все-таки хочется закрывать построчно, а не весь заказ, то в запросе тоже нужно выбирать построчно.
52 foxruby
 
26.09.13
17:37
Дайте ему наступить на грабли.
Заплатит потом не 5, а 50 кр.
53 МойКодУныл
 
26.09.13
17:39
(52)(17)(2) ок, извините.