Если заказы были найдены то по ним резервы снимаются.
Из опыта использования:
те заказы которые установлены в документах оплаты (сумма оплаты не контролируется) — по ним резерв висит, если не снят документом продажи.
товары которые были убраны с "Заказа покупателя", но остались в "Резервирование товаров" висят, т.к. в документе они отсутствуют
Для проверки в режиме 1С:Предприятие, в тексте модуля найдите и приведите к виду строки
Стр 11
ЗакрытиеЗаказовПокупателейФорма.Открыть();//Разкоментируйте для проверки (!!!!!1)
Стр 167
//ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.Закрыть();//Закоментируйте для проверки (!!!!!2)
Для Клиент-серверного варианта работы.
Для Клиент-серверного варианта работы: т.к. обработка использует формы, то регламентным заданием на сервере выполнятся не будет, но можно в процедуру ПриНачалеРаботыСистемы() добавить условие с её выполнением.
1. Добавляем модуль в "Общие модули", со свойствами "Сервер" "Вызов сервера" "Привилегированный"
Вносим процедуру из модуля вложенной внешней обработки "ПроцедураСнятиеРезервов.epf" во вновь созданный модуль.
2. В Модуль обычного приложения
ПриНачалеРаботыСистемы()
в конце
Если РольДоступна("ПолныеПрава") Тогда// Где РольДоступна("ПолныеПрава") - обозначение пользователя
""ВашМодуль"".СнятиеРезервов();
КонецЕсли;
Для Файлового варианта работы.
Для Файлового варианта работы: Для автоматического снятия резервов нужно добавить "Регламентное задание" и "Общий модуль", заводской код при этом править нет необходимости.
1. Добавляем модуль в "Общие модули", со свойствами "Сервер" "Вызов сервера" "Привилегированный"
Вносим процедуру из модуля вложенной внешней обработки "ПроцедураСнятиеРезервов.epf" во вновь созданный модуль.
2. Добавляем задание в "Регламентные задания", со свойствами "Использование" "Предопределенное", а в "Имя метода" выбираем созданный модуль. (Если свойство "Предопределенное" не устанавливать, то задание нужно будет добавлять через обработку КонсольЗаданий.epf)
В "Расписание" задания, в закладке "Общее" — "Повторять каждые" добавляем 1 (Выполнять: каждый день;), в закладке "Дневное" — "Время начала" — "18:00:00" (с 18:00:00 один раз в день)
После проделанного каждый день в конце рабочего дня будет создаваться документ "Закрытие заказов покупателей" с видом операции — снятие резервов и размещений с настройками отбора из последнего изображения. Если такие заказы отсутствуют, то документ не будет создан.
Работает как внешняя обработка, в ручном режиме
Единственное — ищет причину закрытия по ссылке, но закомментированное
//ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПричинаЗакрытия = Справочники.ПричиныЗакрытияЗаказов.ПолучитьСсылку(Новый УникальныйИдентификатор("d11d6223-f487-11e6-b485-0cc47a6c5738"));//881
Спасибо! Все работает.
Пожалуйста.
(2) а где настроить через сколько дней чтобы снимался резерв?
(3)
В модуле обработки
Рабочих или календарных то что в константе
Если используете рабочие то Регламентированный производственный календарь должен быть сформирован.
Дата от которой идёт отсчёт — это «Оплата» в документе Заказ покупателя
(3)
Ищё там же есть
(5) закомментировал, но пока не соображу как проверить,распишите пожалуйста ход действий,хочу очень вникнуть
(6)
После чего форма ОтбораЗаказов будет видна для проверки
(6)
Нужно в форме отбора заказов процедуру Процедура ПолеНастройкиВидЗаполненияПриИзменении(Элемент) сделать Экспортной
а в Процедура СнятиеРезервов()
(8)
После чего форма отбора примет вид файла
(7) понял,я просто не понял где просмотреть это ))) но потом прочитал что открыть обработку
(10)
После этого откройте обработку в режиме предприятия (Фаил — Открыть — СнятиеРезервов.epf)
(11)ссори,не заметил,проверил,всё гуд,работает))) ещё раз извините.
а подскажите как переделать чтобы не по оплате вёлся контроль,а по количеству дней от даты в заказе?
(9)я так понимаю надо часть кода закомментировать?
(12)
а подскажите как переделать чтобы не по оплате вёлся контроль,а по количеству дней от даты в заказе?
В (8) написал
добавте между
и
код
Нужно в форме отбора заказов процедуру Процедура ПолеНастройкиВидЗаполненияПриИзменении(Элемент) сделать Экспортной
(14)
После чего
период заказов участвующих в отборе
(9)проверил,всё работает если открывать отдельно обработку,а вот по времени чё-то не работает,настроил в регламентном задании чтобы через две минуты сделалось к примеру, сейчас на часах 11:50,а поставил выполнять в 11:52,так вот никакой документ не создаётся,а если смотреть через обработку(открывая её и нажимать выполнить) документ закрытия создаётся. что не так делаю в настройках?
(9)
во втором фото там код лежит из обработки.
но не срабатывает по времени которое я указал,из-за чего так может быть?может я не правильно что сделал?
вы меня извините за мою тупость))))
(18)
но не срабатывает по времени которое я указал,из-за чего так может быть?может я не правильно что сделал?
вы меня извините за мою тупость))))
Смотрите через консоль заданий?
А база у вас Файловая или Серверная?
(19)тестирую на файловой,потом закину на серверную)
(19)
И нужно обратно вернуть
(21)это вернул я
попробовал я сейчас запустить КонсольЗаданий, ошибка сразу выскочила,что она может значить?
{ВнешняяОбработка.КонсольЗаданий.Форма.ФормаКонсоли.Форма(59)}: Ошибка при получении значения атрибута контекста (ПоследнееЗадание)
ПоследнееЗадание = Регламентное.ПоследнееЗадание;
по причине:
Менеджер заданий не активен.
На серверной работать не будет. из за работы с формами.
Можно через
Модуль обычного приложения
ПриНачалеРаботыСистемы()
в конце
(23)просто вставить этот код в ПриНачалеРаботыСистемы() и будет работать?
и Регламентное задание и общий модуль тоже оставлять? оно будет брать код из общего модуля Снятие резервов?
(24)
Модуль нужно оставлять
КлиентОбычноеEpartner — название моего модуля.
А вот регламентное нужно удалить, т.к. делалось под файловую базу, и после переноса на сервер выяснялось что не работает. Код в модуле просто повторяет программные нажатие стандартного документа ЗакрытиеЗаказовПокупателей, где перед открытием формы отбора вставляются нужные значения. Можно переделать под сервер, нужно заменить элементы формы на программные переменные, но это долго, да и так работает.
(24)
Будет отрабатывать при входе в систему определённого пользователя, РольДоступна(«ПолныеПрава») можно заменить на
или
Посмотрите ещё вот эти процедуры которые были в УТ10.2
https://infostart.ru/public/70026/
(25)я тебя понял. и на сервере будет работать если напишу вот так?
Показать
(28)
(29) я понял,будет работать когда пользователь зашёл в 1с,а по регламентному заданию никак нельзя сделать ? я меня база на SQL server 2008 лежит
(20)
Вот это в корне не правильный подход. нужно тестировать там где оно и будет крутится, иначе время в пустую.
(30) Смотрел (27)
(32)да смотрел,но у меня уже закончились стартмани))
(33)
Написал в личку
(34)ну,а всё же,вашу разработку,можно будет сделать чтобы она работала на сервере?или это вообще прям беда?
(34) я вот проверил.если подвесить просто на кнопку текст
СнятиеРезервов.СнятиеРезервов();
то оно работает,а если как взять и подвесить чтобы нажималось на эту кнопку по времени??? можно так?
Здравствуйте, купил Вашу обработку, но она не работает в клиент серверном варианте, потому что использует формы, ошибка вываливается на строке ЗакрытиеЗаказовПокупателейФорма = Документы.ЗакрытиеЗаказовПокупателей.ПолучитьФорму(«ФормаДокумента»);
(37) Вы укажите что в случае клиент-серверного перед процедурой нужно указать директиву где исполнять &НаКлиенте и в общем модуле надо ставить галку «клиент», галка «привелигированный» там не нужна.