Механизм прогнозирования отрицательных остатков по произвольному регистру

30.05.17

База данных - Инструменты администратора БД

Подключаемый механизм, позволяющий прогнозировать возникновение отрицательных остатков по любому остаточному регистру в любой конфигурации на платформе 1С 8.2 Прогнозирование работает при любом изменении регистра - проведении/отмене проведения документа, изменении проведенного документа.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Конфигурация
.cf 19,44Kb
85
85 Скачать (1 SM) Купить за 1 850 руб.

Итак, механизм, который прогнозирует (или контролирует) возникновение отрицательных остатков при изменении движений по любому остаточному регистру.

В составе:

  1. Справочник настроек контроля (итНастройкиПрогнозированияОтрицательныхОстатков);

  2. Регистр сведений для указания актуальной настройки контроля (итРегистрыДляПрогнозированияОтрицательныхОстатков);

  3. Общий модуль с двумя процедурами (эти процедуры можно включить в любой другой модуль, и подписку тоже свою использовать).

Как настраивать:

  1. В настройке контроля указывается регистр, перечисляются измерения и ресурсы, по которым контролировать (там флажки есть). Бантиков пока мало, имя регистра вписывается руками. Измерения и ресурсы можно заполнять.
    Флажки там не просто так:
    • - по ресурсам понятно - не все их нужно контролировать онлайн
    • - по измерениям - на всякий случай, при работе онлайн бывает, что не требуется полное закрытие в ноль. Например, для заказов поставщикам - измерение цена, можно закрыть потом, все разом.
  2. Там же, в настройке, после п. 2 надо нажать кнопку "Сформировать тексты запросов" - они там же и появятся, в форме. Их можно корректировать (пока).

  3. В регистре сведений нужно еще раз написать имя регистра, указать настройку и поставить флаг.

  4. Не включил в конфигурацию подписку на событие, чтобы к метаданным не привязываться. Подойдет любая подписка для регистра накопления, событие - перед записью. Нужно настроить, чтобы она смотрела на процедуру итПередЗаписьюРегистраПрогнозированиеОтрицательныхОстатковПередЗаписью из общего модуля. Само действие выделено в отдельную процедуру, чтобы замер производительности по процедуре делать.

По настройке - все. Контроль начинает действовать.

Как работает:

  1. Перед записью набора в регистр сравниваются его старый и новый вариант. Сравнение делается одним запросом, который сформировался в настройке контроля (см п.2 настройки, "Текст запроса уменьшения по ресурсам");

  2. Если уменьшения нет, на этом все прекращается. Уменьшение - это когда уменьшается или распроводится приход, либо увеличивается расход.

  3. Если есть уменьшение, то идем дальше. Выполняется второй запрос, который использует временные таблицы первого запроса - осуществляется проверка остатков по регистраторам от даты документа до текущей даты.
    В текущем варианте проверяются как остатки до изменения, так и остатки после изменения, т.к. в результат попадут и отрицательные остатки, в которых мы не виноваты. Это сделано намеренно, задел на будущее. Можно убрать, удалив условие из запроса "Текст запроса выборки регистраторов" в настройке.

  4. На выходе получается таблица с регистраторами и всеми контролируемыми измерениями, а также с остатками до и после изменения. Сейчас пока все, это последняя строка процедуры.

Дальше уже начинаются вариации, как интерпретировать полученную информацию. Думаю добавить регистр с настройками по пользователям, кому можно кому нельзя создавать отрицательные остатки.

Также есть планы добавить функционал:

  1. Отбор, чтобы все подряд контролировать;

  2. Возможность задавать параметры действий в случае обнаружения отрицательных остатков. Хотя бы текст сообщения задать, или вопрос какой-то спросить.

  3. Сделать форму (или обработку), которая будет открываться толковому пользователю, чтобы он увидел всю цепочку и мог, например, на время отключить контроль остатков для себя и привести эту цепочку к требуемому виду.

Также есть мысль расширить поиск отрицательных остатков и на сам проводимый документ, т.е. вместо обычного в таких случаях запроса на наличие остатков делать один запрос текущее + прогнозируемое.

На всякий случай прикладываю cf, вдруг кому интресно. Платформа 8.2.13.219, тестировалось на УПП 1.3.12.1.

P.S. Проводил замер производительности: включил контроль по регистру ТоварыНаСкладах, перепровел складские документы за месяц - получилось 1.5 % времени уходило на весь контроль. Не знаю, много это или мало. Также буду признателен, если кто-нибудь разбирающийся в оптимальности запросов, глянет мои запросы и подскажет, где там есть неоптимальность.

См. также

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7775    55    22    

66

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    38668    28    59    

64

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8844    42    5    

73

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    194950    150    243    

280

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема автоматизированного управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления, хранения и учета на адресном складе. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    6064    21    0    

12

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10431    36    24    

61

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156052    378    378    

513
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Magister 134 04.10.11 15:57 Сейчас в теме
Однозначно плюс за подробное описание и реализацию.
Нужно попробовать внедрить себе :)
1c-intelligence; +1 Ответить
2. artbear 1563 04.10.11 16:13 Сейчас в теме
Интересная идея, нужно обдумать плюсы и минусы.
1c-intelligence; +1 Ответить
3. charushkin 109 05.10.11 07:35 Сейчас в теме
artbear пишет:
плюсы и минусы

Да простит меня автор, но минус могу сходу подсказать :)
На примере 10-й торговли: проводим документ "Резервирование товаров", по логике автора уменьшения нет (ну правильно, мы ведь увеличили количество в резерве), а по логике программы - на свободном остатке может образоваться "минус" - если количество в резерве превысит количество на складе.

Справедливости ради, стоит заметить, что в новых конфигурациях есть отдельный регистр - "Свободные остатки". ПО нему такой контроль вполне сработает :)
4. 1c-intelligence 12849 05.10.11 07:45 Сейчас в теме
(3) hulio,

Это скорее минус УТ 10.

Есть также обходной вариант - если смотрели настройку прогнозирования, то там можно корректировать созданный программно запрос. В данном случае нужно усложнить запрос, скучковав все 4 регистра товаров, как это делается в УТ 10 (товары на складах минус в резерве минус к передаче плюс к получению).

Что скажете?
5. pt_olga 61 07.10.11 22:41 Сейчас в теме
не уловила смысла этого творения, хоть и достаточно внушительного. Зачем заниматься прогнозом отрицательных остатков, если можно их просто не допускать?
6. 1c-intelligence 12849 08.10.11 16:34 Сейчас в теме
(5) pt_olga, в этом и смысл - спрогнозировать возникновение отрицательных остатков и не допустить его. Согласитесь, чтобы не допустить, надо сначала спрогнозировать.
8. pt_olga 61 09.10.11 23:17 Сейчас в теме
zaebunga пишет:

(5) pt_olga, в этом и смысл - спрогнозировать возникновение отрицательных остатков и не допустить его. Согласитесь, чтобы не допустить, надо сначала спрогнозировать.


если "прогноз" заменить на "проверку" возможности списания, то соглашусь.
Дело в том,что специфика моей работы подразумевает постоянную работу по отгрузке дефицитных товаров,
т.е. отделы продаж на перегонки резервируют появившийся на складе товар.
Как таковой прогноз нам не нужен, тут к гадалке не ходи, что через час разметут.))

Оперируем механизмами по недопущению вылета в минус.
7. 1cspecialist 1468 09.10.11 16:32 Сейчас в теме
(0) Идея не нова - в свое время она не раз поднималась в конференции разработчиков 1с (partners.v8.1c.ru). Автор молодец, что попытался ее реализовать. Но как обычно в жизни бывает - есть большое НО.
Подскажите, как решается проблема с перепроведением например документа ПТиУ? Именно с "перепроведением", т.к. именно в этом случае предложенный способ контроля не сработает (для просто "проведения" или "отмены проведения" сработает), или убедите меня в обратном.
Поясню.
Не для кого не секрет, что в случае перезаписи набора записей регистра (например, в случае перепроведения документа) происходит не одна, а две итерации записи. Первая - очищает (удаляет) текущие записи (производится запись пустого набора), вторая записывает новый набор записей в регистр. Я посмотрел код этой разработки. В процедуре "ПередЗаписью" модуля набора записей регистра производится сравнение записываемого набора с текущими записями регистра. Тут-то и произойдет ошибка на первой итерации. Ведь записываемый набор записей придет пустой, что фактически для данного контроля будет означать, что уменьшили приход и соответственно могут быть отрицательные остатки в будущих расходных накладных.
9. ZLENKO 398 22.05.12 18:26 Сейчас в теме
(7) Вот именно что основная фишка этого метода в том чтобы он корректно работал при проведении, отмене проведения и перепроведении.
Особенно учитывая то что в типовых конфигурациях при перепроведении регистры товарных остатков очищаются чтобы обеспечить корректность контроля остатков.
А при применении этого метода штатный контроль остатка уже не нужен, т.е. и очистку существующих движений можно убрать. Таким образом достигается оптимизация записи регистров при перепроведении о которой 1С так много писали, но по факту она в типовых так и не реализована (точнее реализована но не используется). Но при убирании очистки появляются проблемы наличия движений у непроведенных документов (при неудачной попытке проведения и последующей просто записью).
А плюс ко всему этому заказчик для некоторых документов захотел разрешить возникновение минусов и соответственно пришлось разрешить даже если минус есть но это приход и минус ним уменьшается, а если расход и минус увеличивается то запретить. Вот такая вот у меня эпопея с этим методом была.
То что тут у автора к сожалению не смотрел - сейчас мне не актуально.
10. koladen 17 27.06.13 11:45 Сейчас в теме
Оставьте свое сообщение