Проблема переполнения склада из-за того, что инициаторы внутренних заказов вовремя не забирают поступившие товары, является классической для крупных производственных предприятий. В условиях работы с 1С:Управление производственным предприятием 1.3 (УПП), где интерфейс построен на обычных формах, задача предоставления оперативной информации сотрудникам, не имеющим доступа к 1С, требует особого архитектурного подхода. Рассмотрим подробно, как реализовать систему информирования — от простых отчетов до современных веб-сервисов и автоматических уведомлений.
Прежде чем выводить данные на веб-страницу или в рассылку, разберем, откуда их получить в типовой конфигурации УПП 1.3. Основным механизмом связи поступившего товара и конкретного заказчика является резервирование. Когда товар поступает на склад по Внутреннему заказу, он фиксируется в регистре накопления ТоварыВРезервеНаСкладах.
Проанализируем структуру данных: нам необходимо построить запрос к остаткам этого регистра. В качестве разрезов (измерений) нас интересуют Номенклатура, Склад и, самое главное, ДокументРезерва. Именно в документе резерва (которым выступает ВнутреннийЗаказ) указан Ответственный или Инициатор.
Рассмотрим пример запроса для получения списка «залежавшихся» товаров:
ВЫБРАТЬ
Резервы.Номенклатура КАК Товар,
Резервы.ДокументРезерва КАК Заказ,
Резервы.ДокументРезерва.Ответственный КАК Инициатор,
Резервы.КоличествоОстаток КАК Количество,
Резервы.ДокументРезерва.Дата КАК ДатаЗаказа
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК Резервы
ГДЕ
Резервы.КоличествоОстаток > 0
Этот запрос станет фундаментом для любого выбранного способа визуализации.
Если стоит задача сделать «прозрачную» доску позора, доступную с любого компьютера через браузер без использования лицензий 1С, оптимальным решением будет создание HTTP-сервиса. В платформе 8.3 это реализуется достаточно быстро.
Разберем по шагам алгоритм реализации:
HTTP-сервис. Определим шаблон URL, например, /get_sklad_info.ТабличныйДокумент в 1С, оформить его (цвета, шрифты, границы) и сохранить в формате HTML.Пример кода для отдачи HTML-страницы через сервис:
Функция СписокОстатковGet(Запрос)
ТабДок = Новый ТабличныйДокумент;
// Здесь заполняем ТабДок данными из запроса
// ...
ИмяФайла = ПолучитьИмяВременногоФайла("html");
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.HTML);
Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
HTMLТекст = Чтение.Прочитать();
Чтение.Закрыть();
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(HTMLТекст);
Возврат Ответ;
КонецФункции
После этого базу нужно опубликовать на веб-сервере (Apache или IIS). Теперь любой сотрудник, введя адрес сервера в браузере, увидит актуальный список ТМЦ.
Как показывает практика, на веб-страницы пользователи заходят редко. Эффективнее использовать регламентные задания для периодической рассылки уведомлений. Выясним причину задержки, отправляя письма непосредственно инициаторам и их руководителям.
Проанализируем логику работы регламентного задания:
Инициатора формируется персональный список товаров.ФизическиеЛица или Пользователи.Важным моментом является добавление в копию письма начальника отдела. Это резко повышает скорость забора ТМЦ со склада.
Если на предприятии уже есть внутренний портал (например, на Bitrix или другой CMS), не обязательно рисовать страницы в 1С. Можно использовать стандартный интерфейс OData. Рассмотрим подробнее: в настройках публикации на веб-сервере достаточно поставить галочку «Публиковать стандартный интерфейс OData».
После этого внешняя система сможет забирать данные из 1С простыми JSON-запросами. Это позволит веб-разработчикам интегрировать данные о складе прямо в корпоративный портал, используя привычные им инструменты. Пример обращения к данным будет выглядеть как URL-ссылка к конкретной таблице остатков или специально созданному отчету.
Иногда технического информирования недостаточно. Рассмотрим возможность автоматического освобождения склада. В УПП 1.3 можно настроить бизнес-процесс «Закрытие заказов».
Разберем алгоритм «жесткого» управления:
Требование-накладная или Реализация).Закрытие внутренних заказов.Этот метод наиболее эффективен, так как инициатор, придя на склад на шестой день, обнаружит, что его товар уже отдан другому подразделению, и в следующий раз будет более дисциплинирован.
Для любого из выбранных способов (отчет в 1С или веб-страница) крайне рекомендуется использовать условное оформление. Выделим уровни критичности:
В отчетах 1С это настраивается через ПостроительОтчета или Систему компоновки данных (СКД) во вкладке «Условное оформление». Для веб-страницы это реализуется через простые CSS-классы, которые назначаются строкам таблицы в зависимости от разности дат между текущей и датой прихода.
Подведем итог: для новичка в 1С самым простым и надежным первым шагом будет создание регламентной рассылки по почте. Это не требует настройки веб-серверов и глубоких знаний веб-верстки, но дает мгновенный результат в дисциплине сотрудников. Вторым этапом можно внедрить HTTP-сервис для общей визуализации ситуации на складе.