|
Как организовать автоматическое снятие с резерва в УТ 10.2? | ☑ | ||
---|---|---|---|---|
0
program345
26.01.15
✎
15:01
|
Доброго дня!
|
|||
1
program345
26.01.15
✎
15:02
|
планирую написать обработку и создать регламентное задание, может есть вариант проще?
|
|||
2
Челбас
26.01.15
✎
15:03
|
куда проще то?
в задании создавай документ "Закрытие заказов покупателей" |
|||
3
program345
26.01.15
✎
15:06
|
(2) Челбас
2 - 26.01.15 - 15:03 куда проще то? в задании создавай документ "Закрытие заказов покупателей" "в задании" - всмысле в регламентном? |
|||
4
Челбас
26.01.15
✎
15:07
|
(3) именно
|
|||
5
program345
27.01.15
✎
13:55
|
вот решение:
Процедура ПриОткрытии() док=Документы.ЗакрытиеЗаказовПокупателей.СоздатьДокумент(); Запрос = Новый Запрос; Если док.Ссылка.Пустая() Тогда Если День(док.Дата) = День(ТекущаяДата()) Тогда МоментДокумента = Новый МоментВремени(ТекущаяДата(), док.Ссылка); Иначе МоментДокумента = Новый МоментВремени(док.Дата, док.Ссылка); КонецЕсли; Запрос.УстановитьПараметр("МоментДокумента", МоментДокумента); Иначе Запрос.УстановитьПараметр("МоментДокумента", док.МоментВремени()); КонецЕсли; Запрос.УстановитьПараметр("ДатаДокумента", док.Дата); Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Резервы.ДокументРезерва КАК ЗаказПокупателя, | Резервы.ДокументРезерва.ДоговорКонтрагента.ЧислоДнейРезерваБезОплаты КАК ЧислоДнейРезерваБезОплаты, | Резервы.ДокументРезерва.Дата КАК ДатаЗаказаПокупателя |ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&МоментДокумента, ДокументРезерва В (ВЫБРАТЬ ВЫРАЗИТЬ(РасчетыСКонтрагентамиОбороты.Сделка КАК Документ.ЗаказПокупателя) | ИЗ РегистрНакопления.РасчетыСКонтрагентами.Обороты(,&МоментДокумента,, | Сделка В (ВЫБРАТЬ Ссылка ИЗ Документ.ЗаказПокупателя | ГДЕ Документ.ЗаказПокупателя.ДоговорКонтрагента.ДержатьРезервБезОплатыОграниченноеВремя)) КАК РасчетыСКонтрагентамиОбороты | ГДЕ РасчетыСКонтрагентамиОбороты.Сделка ССЫЛКА Документ.ЗаказПокупателя | И РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход = 0 | И РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход > 0 | И РасчетыСКонтрагентамиОбороты.Сделка.ДоговорКонтрагента.ДержатьРезервБезОплатыОграниченноеВремя)) КАК Резервы | |ГДЕ | Резервы.ДокументРезерва ССЫЛКА Документ.ЗаказПокупателя"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ЧислоДнейРезерваБезОплаты = ?(Выборка.ЧислоДнейРезерваБезОплаты = NULL, 0, Выборка.ЧислоДнейРезерваБезОплаты); Если (док.Дата - Выборка.ДатаЗаказаПокупателя)/(24 * 60 * 60) > ЧислоДнейРезерваБезОплаты Тогда НоваяСтрока = док.Заказы.Добавить(); НоваяСтрока.ЗаказПокупателя = Выборка.ЗаказПокупателя; КонецЕсли; КонецЦикла; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = док.Заказы.Добавить(); НоваяСтрока.ЗаказПокупателя = Выборка.ЗаказПокупателя; КонецЦикла; док.Дата = ТекущаяДата(); док.ВидОперации = Перечисления.ВидыОперацийЗакрытиеЗаказовПокупателей.ЗакрытиеЗаказов; док.Записать(РежимЗаписиДокумента.Проведение); ЗавершитьРаботуСистемы(Ложь); КонецПроцедуры + сделал батничек (в след теме) и поставил в планировщик заданий |
|||
6
Maniac
27.01.15
✎
13:56
|
Пиши. Я думаю такое даже можно продавать. и Сразу с УТ10.3 совместимость
|
|||
7
ktvladimir
27.01.15
✎
13:58
|
(6) теперь не забудьте проверить пользователя под которым будет запускаться батничек) есть ли у него права. нужно ли держать сессию открытой или нет. не удалит ли кто вашу обработку по принципу, что это.. хм мусор какойто удалить ))
|
|||
8
Maniac
27.01.15
✎
13:59
|
Только на опыте могу сказать если у тебя менеджеры зависят от продаж, то эти хитрюги всегда потом тупо копируют заказы. чтобы держать резерв для своих клиентов.
Делают даже виртуальные заказы специально. типа оформляют на клиента. чтобы товар был. |
|||
9
Ненавижу 1С
гуру
27.01.15
✎
14:00
|
(8) да, но если товар упадет ночью, то кто первый пришел, того и тапки - опять же стимул не опаздывать
|
|||
10
ktvladimir
27.01.15
✎
14:01
|
и еще. Если док.Ссылка.Пустая() Тогда Зачем? ведь вы создаете новый документ.
также я бы вставил после получения запроса если выборка.Количество() > 0 Тогда док=Документы.ЗакрытиеЗаказовПокупателей.СоздатьДокумент(); иначе ЗавершитьРаботуСистемы(Ложь); КонецЕсли; нафиг создавать документ если в нем ничего нет |
|||
11
Maniac
27.01.15
✎
14:01
|
в УТ10 не хватает механизма запуска по расписанию внешних обработок, который есть в УТ11.
Это тоже может тянуть на платную доработку, которую можно продавать. Итого чтобы лучше продажи сделать а) я бы написал универсальную подсистему для УТ10 для запуска по регл заданию любых настроенных внешних обработок. это уже бы пошло в спрос. б) к ней бы написал автоматическое закрытие резервов как бонусный комплект к а). |
|||
12
program345
27.01.15
✎
14:37
|
(10) верно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |