0. 88wau24ru 17 08.03.17 22:56 Сейчас в теме

Автоматическое снятие резервов. УТ 10.3 (Для Файлового варианта работы.)

Для автоматического снятия резервов нужно добавить "Регламентное задание" и "Общий модуль", заводской код при этом править нет необходимости. Итак, приступим...

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. 1C82 42 16.01.19 15:55 Сейчас в теме
2. 88wau24ru 17 21.02.19 07:01 Сейчас в теме
3. user817897 14.03.19 13:11 Сейчас в теме
(2) а где настроить через сколько дней чтобы снимался резерв?
4. 88wau24ru 17 14.03.19 13:55 Сейчас в теме
(3)
В модуле обработки
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПросроченоДнейОплаты			= 11;//Число рабочих дней просроченной оплаты

Рабочих или календарных то что в константе
Константы.СпособКонтроляДнейЗадолженности.Получить()

Если используете рабочие то Регламентированный производственный календарь должен быть сформирован.
Дата от которой идёт отсчёт - это "Оплата" в документе Заказ покупателя
5. 88wau24ru 17 14.03.19 14:00 Сейчас в теме
(3)
Ищё там же есть
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.Закрыть();//Закоментируйте для проверки (!!!!!2)
6. user817897 14.03.19 14:43 Сейчас в теме
(5) закомментировал, но пока не соображу как проверить,распишите пожалуйста ход действий,хочу очень вникнуть
7. 88wau24ru 17 15.03.19 06:43 Сейчас в теме
(6)
у как проверить,распишите пожалуйста ход действий,хочу очень вникнуть

В начале
ЗакрытиеЗаказовПокупателейФорма.Открыть();//Разкоментируйте для проверки (!!!!!1)
В конце
//ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.Закрыть();//Закоментируйте для проверки (!!!!!2)

После чего форма ОтбораЗаказов будет видна для проверки
10. user817897 15.03.19 09:56 Сейчас в теме
(7) понял,я просто не понял где просмотреть это ))) но потом прочитал что открыть обработку
11. 88wau24ru 17 15.03.19 10:07 Сейчас в теме
(10)
ЗакрытиеЗаказовПокупателейФорма.Открыть();//Разкоментируйте для проверки (!!!!!1)
//ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.Закрыть();//Закоментируйте для проверки (!!!!!2)

После этого откройте обработку в режиме предприятия (Фаил - Открыть - СнятиеРезервов.epf)
12. user817897 15.03.19 10:27 Сейчас в теме
(11)ссори,не заметил,проверил,всё гуд,работает))) ещё раз извините.
а подскажите как переделать чтобы не по оплате вёлся контроль,а по количеству дней от даты в заказе?
14. 88wau24ru 17 15.03.19 10:45 Сейчас в теме
(12)
(11)ссори,не заметил,проверил,всё гуд,работает))) ещё раз извините.
а подскажите как переделать чтобы не по оплате вёлся контроль,а по количеству дней от даты в заказе?

В (8) написал
добавте между
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ДатаКон                        = НачалоДня(ТекущаяДата())-1;

и
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПросроченоДнейОплаты            = 11;//Число рабочих дней просроченной оплаты

код
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ВидЗаполнения                    = 4;
    ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПолеНастройкиВидЗаполненияПриИзменении(ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ЭлементыФормы.ПолеНастройкиВидЗаполнения);

Нужно в форме отбора заказов процедуру Процедура ПолеНастройкиВидЗаполненияПриИзменении(Элемент) сделать Экспортной
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПолеНастройкиВидЗаполненияПриИзменении() - она должна быть Экспорт
15. 88wau24ru 17 15.03.19 10:48 Сейчас в теме
(14)
После чего
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ДатаНач = ДобавитьМесяц(ТекущаяДата(), -3);
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ДатаКон = НачалоДня(ТекущаяДата())-1;

период заказов участвующих в отборе
8. 88wau24ru 17 15.03.19 07:45 Сейчас в теме
(6)
Нужно в форме отбора заказов процедуру Процедура ПолеНастройкиВидЗаполненияПриИзменении(Элемент) сделать Экспортной
а в Процедура СнятиеРезервов()
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ДатаКон						= НачалоДня(ТекущаяДата())-1;
	ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ВидЗаполнения					= 4;
	ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПолеНастройкиВидЗаполненияПриИзменении(ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ЭлементыФормы.ПолеНастройкиВидЗаполнения);
	ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.ПросроченоДнейОплаты			= 11;//Число рабочих дней просроченной оплаты
9. 88wau24ru 17 15.03.19 07:48 Сейчас в теме
(8)
После чего форма отбора примет вид файла
Прикрепленные файлы:
13. user817897 15.03.19 10:42 Сейчас в теме
(9)я так понимаю надо часть кода закомментировать?
16. user817897 15.03.19 11:51 Сейчас в теме
(9)проверил,всё работает если открывать отдельно обработку,а вот по времени чё-то не работает,настроил в регламентном задании чтобы через две минуты сделалось к примеру, сейчас на часах 11:50,а поставил выполнять в 11:52,так вот никакой документ не создаётся,а если смотреть через обработку(открывая её и нажимать выполнить) документ закрытия создаётся. что не так делаю в настройках?
17. user817897 15.03.19 11:59 Сейчас в теме
18. user817897 15.03.19 12:00 Сейчас в теме
во втором фото там код лежит из обработки.
но не срабатывает по времени которое я указал,из-за чего так может быть?может я не правильно что сделал?
вы меня извините за мою тупость))))
19. 88wau24ru 17 15.03.19 12:13 Сейчас в теме
(18)
во втором фото там код лежит из обработки.
но не срабатывает по времени которое я указал,из-за чего так может быть?может я не правильно что сделал?
вы меня извините за мою тупость))))

Смотрите через консоль заданий?
А база у вас Файловая или Серверная?
Прикрепленные файлы:
КонсольЗаданий.epf
20. user817897 15.03.19 12:15 Сейчас в теме
(19)тестирую на файловой,потом закину на серверную)
31. 88wau24ru 17 15.03.19 13:13 Сейчас в теме
(20)
тестирую на файловой,потом закину на серверную)

Вот это в корне не правильный подход. нужно тестировать там где оно и будет крутится, иначе время в пустую.
21. 88wau24ru 17 15.03.19 12:15 Сейчас в теме
(19)
не срабатывает по времени которое я указал

И нужно обратно вернуть
//ЗакрытиеЗаказовПокупателейФорма.Открыть();//Разкоментируйте для проверки (!!!!!1)
ЗакрытиеЗаказовПокупателейФормаОтбораЗаказов.Закрыть();//Закоментируйте для проверки (!!!!!2)
22. user817897 15.03.19 12:18 Сейчас в теме
(21)это вернул я
попробовал я сейчас запустить КонсольЗаданий, ошибка сразу выскочила,что она может значить?
{ВнешняяОбработка.КонсольЗаданий.Форма.ФормаКонсоли.Форма(59)}: Ошибка при получении значения атрибута контекста (ПоследнееЗадание)
ПоследнееЗадание = Регламентное.ПоследнееЗадание;
по причине:
Менеджер заданий не активен.
23. 88wau24ru 17 15.03.19 12:19 Сейчас в теме
На серверной работать не будет. из за работы с формами.
Можно через
Модуль обычного приложения
ПриНачалеРаботыСистемы()
в конце
Если РольДоступна("ПолныеПрава") Тогда// Где РольДоступна("ПолныеПрава") - обозначение пользователя
	КлиентОбычноеEpartner.СнятиеРезервов();
КонецЕсли;
24. user817897 15.03.19 12:26 Сейчас в теме
(23)просто вставить этот код в ПриНачалеРаботыСистемы() и будет работать?
и Регламентное задание и общий модуль тоже оставлять? оно будет брать код из общего модуля Снятие резервов?
25. 88wau24ru 17 15.03.19 12:41 Сейчас в теме
(24)
бщий модуль тоже оставлять? оно будет брать ко

Модуль нужно оставлять
КлиентОбычноеEpartner.СнятиеРезервов();

КлиентОбычноеEpartner - название моего модуля.
А вот регламентное нужно удалить, т.к. делалось под файловую базу, и после переноса на сервер выяснялось что не работает. Код в модуле просто повторяет программные нажатие стандартного документа ЗакрытиеЗаказовПокупателей, где перед открытием формы отбора вставляются нужные значения. Можно переделать под сервер, нужно заменить элементы формы на программные переменные, но это долго, да и так работает.
28. user817897 15.03.19 12:56 Сейчас в теме
(25)я тебя понял. и на сервере будет работать если напишу вот так?

Процедура ПриНачалеРаботыСистемы()
	
	УправлениеСоединениямиИБКлиент.УстановитьКонтрольРежимаЗавершенияРаботыПользователей();

Если РольДоступна("ПолныеПрава") Тогда   //Тут надо менять что??
    КлиентОбычноеEpartner.СнятиеРезервов(); //у меня модуль называ СнятиеРезервов? или написать СнятиеРезервов.СнятиеРезервов();
КонецЕсли;

КонецПроцедуры
Показать
29. 88wau24ru 17 15.03.19 13:01 Сейчас в теме
(28)
	Если ПараметрыСеанса.ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию("Администратор") Тогда
		СнятиеРезервов.СнятиеРезервов();
	КонецЕсли;
	//88)
КонецПроцедуры // ПриНачалеРаботыСистемы()
30. user817897 15.03.19 13:07 Сейчас в теме
(29) я понял,будет работать когда пользователь зашёл в 1с,а по регламентному заданию никак нельзя сделать ? я меня база на SQL server 2008 лежит
32. 88wau24ru 17 15.03.19 13:19 Сейчас в теме
33. user817897 15.03.19 13:36 Сейчас в теме
(32)да смотрел,но у меня уже закончились стартмани))
34. 88wau24ru 17 15.03.19 13:41 Сейчас в теме
(33)
уже закончились стартмани))

Написал в личку
35. user817897 15.03.19 15:06 Сейчас в теме
(34)ну,а всё же,вашу разработку,можно будет сделать чтобы она работала на сервере?или это вообще прям беда?
36. user817897 15.03.19 15:35 Сейчас в теме
(34) я вот проверил.если подвесить просто на кнопку текст

СнятиеРезервов.СнятиеРезервов();

то оно работает,а если как взять и подвесить чтобы нажималось на эту кнопку по времени??? можно так?
26. 88wau24ru 17 15.03.19 12:43 Сейчас в теме
(24)
ПриНачалеРаботыСистемы() и будет работать?

Будет отрабатывать при входе в систему определённого пользователя, РольДоступна("ПолныеПрава") можно заменить на
Справочники.Пользователи.НайтиПоНаименованию("ОсновнойОтветственный") = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойОтветственный");

или
ПараметрыСеанса.ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию("ТекущийПользователь");
27. 88wau24ru 17 15.03.19 12:55 Сейчас в теме
Посмотрите ещё вот эти процедуры которые были в УТ10.2
https://infostart.ru/public/70026/
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)