Обновление статусов внутренних заказов
Задачи пользователя - Монитор заказов
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В версии ERP 2.5.7.402 мы начали сталкиваться с тем, что автоматически не обновлялись статусы внутренних заказов, искать корень проблемы пока не стали, т.к. непонятен точный порядок действия пользователей. Была быстренько сделана обработка, которая просто собирает массив документов, у которых статус не "Закрыт", и выполняет типовой метод "РегистрыСведений.СостоянияВнутреннихЗаказов.ОтразитьСостояниеЗаказа(МассивЗаказов);"
Как пример, хоть и весь товар отгружен и оприходован:

Перед выполнением обработки:

После выполнения обработки:

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