Состояния заказов клиентов

24.07.20

Задачи пользователя - Монитор заказов

Конфигурация «Управление торговлей, редакция 11 (11.4.11.104)». Регистр сведений «Состояния заказов клиентов». Описание и устройство.

Добрый день! В настоящей публикации результат разбора регистра сведений «Состояния заказов клиентов», его устройства, использования и попытка понимания методологии.

Объект включен в подсистему «Объекты УТ11, КА2, УП2». Должны увидеть его в комплексной и ERP. В аналогичном ли виде — не проверял. Непериодический, регистратору не подчинен. Структура изображена на рисунке №1. Светло-красным выделено измерение. Светло-зеленым ресурсы. Светло-синим, соответственно, реквизиты. Измерение «Заказ» и ресурс «Состояние» имеют составной тип.

 

 

Записи в регистр производятся через процедуру «ОтразитьСостояниеЗаказа» модуля менеджера. Сам метод универсален, рассчитывает состояние заказов и/или заявок. Первым параметром передается массив ссылок. Так что сформирован может быть многострочный набор записей. Инициирующим расчет состояния может выступать один из 42 объектов метаданных. Состав на рисунке №2.

 

 

Вызов метода производится в событиях «ОбработкаПроведения» документов и «ПослеЗагрузкиДанных» планов обмена. Механика такова, что в регистрирующих объектах выполняются операции, изменяющие или возможно изменяющие состояние заказов/заявок. Изменение состояния происходит в разрезе заказа/заявки, расчет выполняется на основании источников данных (рисунок №3). Светло-желтым выделены источники данных. Светло-серым вспомогательные виртуальные таблицы с кратким пояснением состава и назначения. Светло-пурпурным — результирующие виртуальные таблицы, которые будут использоваться в конечном собранном запросе через соединение для расчета состояний заказов/заявок.

 

 

Поэтому расчет состояний может быть выполнен из условно произвольной точки кода через программный интерфейс регистра — упомянутый выше метод «ОтразитьСостояниеЗаказа». В этом вижу простоту и особенность использования данного регистра. К базовому тексту запроса, раскладка которого на рисунке №3, добавляется запрос (методы с текстами находятся в модулях менеджеров) для объекта аналитики. Очевидно, ими выступают:

  • Документ.ЗаказКлиента
  • Документ.ЗаявкаНаВозвратТоваровОтКлиента

В итоге получаем: источники данных + расчет состояний для объекта аналитики (заказа/заявки). Полученный набор в виде таблицы значений пишется в регистр.

Теперь изложу заметки и вопросы, появившиеся у меня «в лоб».

1. Почему регистр не сделали подчиненным регистратору? В конечном счете аналитика ведется в разрезе заказа/заявки. Варианты ответов:
- для возможности отбора по измерению
- для сохранения записей (сделанных-то другими объектами) при отмене проведения заказа/заявки
- сохранение логики, возможности расчета при отсутствии регистратора в принципе, т.к. методически регистратор — выполняющий записи и владеющий ими. При имеющейся схеме записи выполняют другие объекты (не заказ/заявка), но принадлежность отражается к заказу/заявке.

2. Временная таблица «РезультатРасчетов» возможно содержит ошибку. При группировке складываются суммы планируемой кредиторской задолженности. В результате внутреннего соединения суммы включаются повторно. Результат до группировки:

Период ЗаказКлиента КОплатеПриход КОплатеПриход1

КОплатеРасход

08.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 30 797,85 30 797,85 102 659,50
15.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 71 861,65 30 797,85 102 659,50
15.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 71 861,65 71 861,65 102 659,50

 

где «КОплатеПриход1» это поле из таблицы справа, т.е. второго экземпляра «ЭтапыРасчетов». После группировки образуется:

08.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 30 797,85 30 797,85 102 659,50
15.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 143 723,3 102 659,5 102 659,50

            
Соответственно, на это накладывается условие:

ИМЕЮЩИЕ
    СУММА(ЭтапыРасчетов.КОплатеПриход) - ЕСТЬNULL(Оплачено.КОплатеРасход, 0) > 0

В итоге в таблице «РезультатРасчетов» остается вторая запись:

15.04.2017 Заказ клиента ТД00-000005 от 08.04.2017 17:06:53 143 723,3 102 659,5 102 659,50

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

3. Предполагаю, что регистр исключительно аналитический. Предназначен для хранения расчетной сводной информации. Используется ли где-то в конфигурации (в других подсистемах) как источник данных?

Считаю обзор хорошей вводной информацией для изучения. Уточню, настоящая попытка понять методику это первое знакомство с регистром. Возможно предположения и какие-либо выводы не точные или ошибочны. Буду рад дельным поправкам знатоков, прошу комментировать. Благодарю за внимание!

Состояния заказов клиентов

См. также

SALE! 20%

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 22800 руб.

21.04.2017    90173    105    39    

190

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    165960    679    362    

385

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

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

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110322    34    114    

178

Обмен с системой Меркурий через Web + Ветис.API для любых конфигураций (универсальная конфигурация Хамелеон Меркурий)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Конфигурации 1cv8 Сельское хозяйство и рыболовство Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Пищевая промышленность Россия Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная конфигурация Хамелеон Меркурий для взаимодействия с системой Меркурий(тестовый+рабочий+демо контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Основное отличие от других решений - работа через веб-интерфейс и API 2.0(API 2.1). Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом Меркурий, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе Меркурий и наоборот.

104000 руб.

08.11.2017    120855    296    138    

392

Простое ценообразование (установка цен номенклатуры) для 1С 8.3 (УТ 11 / ERP 2 / КА 2 / Розница 2) + (УТ 10.3 / УПП / КА 1 / Розница 1)

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

Есть проблемы с расчетом и установкой цен на товары? Универсальная подсистема для ценообразования в 1С поможет навести порядок с ценами! Механизм позволяет задавать произвольные правила расчета колонок цен для разных групп товаров и легко их изменять. Может автоматически (по расписанию) обновлять цены в 1С и выполнять проверку наличия и корректности цен на все товары.

30000 руб.

13.11.2017    77902    40    11    

46
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1351 27.05.20 13:53 Сейчас в теме
(0) есть такое понятие Олап-куб, это первое
второе, представьте, что нет этого регистра, но вам надо постоянно определять состояние (статус) заказа - оплачен/отгружен, тогда вы начнете строить запрос - запрос станет большим - проблему больших запросов я описал здесь в далеком году Большие запросы: взгляд на проблему
польза от использованного регистра - что управлять и программировать свою функциональность можно в одном месте - очень удобно - об этом вы написали
2. totchaz 139 27.05.20 15:27 Сейчас в теме
(1) Добрый день!
По первому. Говорите ли Вы о том, что данный РС это реализация OLAP аналитики состояний заказа/заявки? Если да, то в регистре хранится только одно состояние, рассчитанное по факту, на основании источников (других регистров и таблиц).
По второму. Верно ли понимаю, подтверждаете мое предположение п.3 о том, что РС исключительно аналитический? Здесь мне на текущий момент неизвестно, используется ли в каких-то других подсистемах УТ этот РС.

Насчет построения больших запросов при необходимости получения производных данных Вас понял. Принимать решение хранить или рассчитывать - задача регулярная.
3. RustIG 1351 27.05.20 16:24 Сейчас в теме
(2) я не понял ваших вопросов :)

Говорите ли Вы о том, что данный РС это реализация OLAP аналитики состояний заказа/заявки?

зачем вам такая точность формулировок?

реализация это или подобие ОЛАП аналитики? может 1с-разрабы не доработали концепцию, и через год появятся еще измерения?

Суть 1с заключается в том, что это конструктор Лего, собрать можете что угодно из типовых!

Вы можете адаптировать этот регистр под свой механизм, добавив измерения, доработав типовой блок записи/чтения данных в /из регистра....
Я к примеру УТ 10.3 перерабатываю достаточно сильно, а вот примеров доработок УТ 11 очень мало - поскольку столкнемся с другими проблемами - чаще лучше не трогать, чем трогать...

(2)
подтверждаете мое предположение п.3 о том, что РС исключительно аналитический


снова, к чему такая точность формулировок? посмотрите мои публикации по спискам заказов - там статусы заказов используются исключительно при работе со списком заказов, то есть по сути только для аналитики.

Кроме аналитических, какие еще бывают сведения? Сам по себе регистр сведений - из названия - подтверждает, что это таблица для хранения сведений... Как его еще можно использовать?
4. malikov_pro 1292 27.05.20 16:54 Сейчас в теме
(3) "Как его еще можно использовать?" - У меня от этого регистра рассылка уведомлений клиентам работает, достаточно удобно.
nekit_rdx; +1 Ответить
5. RustIG 1351 27.05.20 17:29 Сейчас в теме
(4) в контексте вопроса автора
подтверждаете мое предположение п.3 о том, что РС исключительно аналитический

что скажете? у вас аналитическое использование или не аналитическое? :)
6. malikov_pro 1292 27.05.20 17:52 Сейчас в теме
(5) "АНАЛИЗ, -а, м. 1. Метод исследования путем рассмотрения отдельных сторон, свойств, составных частей чего-н.".
В моем случае изменение регистра используется для старта процесса отправки уведомления, соответственно это не относится к анализу.
7. RustIG 1351 27.05.20 19:19 Сейчас в теме
(6) то есть вы всем подряд рассылаете? или все же предварительно анализируете у кого из клиентов какое состояние по заказу, и, исходя из состояния, посылаете письмо-уведомление?
8. Existkun 29.05.20 10:50 Сейчас в теме
(0) Спасибо за публикацию, было позновательно.
Вопрос: где рисовали схемы? Насколько удобно в "рабочем" формате, когда их накидываешь для себя?
12. totchaz 139 24.07.20 16:04 Сейчас в теме
(8) Добрый день! Схемы созданы в LibreOffice Draw. Второй вопрос не совсем понятен. Промежуточных макетов нет, сразу диаграмка/таблички. Если вы об этом.
9. Yashazz 4709 31.05.20 17:00 Сейчас в теме
Концепция статусов вообще изрядно сомнительна и не всегда адекватна, и даже не всегда работоспособна, и идеологически смутная, но в случае с этим уродством в типовых - вообще полный ахтунг и кошмарик. Спасибо за разбор, по своему опыту знаю, что эту погань раскопать - нужно много времени и нервов.
Правда, никому не советую на неё опираться. Редкостно ненадёжный и скользкий механизм.

Вот будь на моём месте кто-то менее занятый, он бы расписал плюсы и минусы вообще статусов (хронологической развёртки состояний и транзакций, переводящих объекты из одного состояния в другое), конкретно предметных областей, где такое применимо и где не особо, изложил бы подводные камни и методики доработки... Но у меня времени нет, посему автору статьи спасибо за разбор, а писателям типовых конфигов - антиреспект.
13. totchaz 139 24.07.20 16:07 Сейчас в теме
(9) Спасибо за оценку! Оч приятно читать такие отзывы. А также, что труд оказался интересен.
18. fixin 4252 21.03.24 15:14 Сейчас в теме
(13) жаль, что сама 1с не пишет такие мануалы.
10. jONES1979 31.05.20 21:24 Сейчас в теме
Отличный формат публикации! Хотелось бы увидеть и про другие интересные регистры
11. triviumfan 92 03.06.20 20:32 Сейчас в теме
Виртуальная таблица «РезультатРасчетов» возможно содержит ошибку

Это что за зверь такой?:)
14. totchaz 139 24.07.20 16:11 Сейчас в теме
(11) Опечатка, исправил. Конечно же, временная таблица. Спасибо за внимательность!
triviumfan; +1 Ответить
15. zhuravlev_as 392 04.08.20 13:05 Сейчас в теме
Инфа полезная. Но стоит разработчикам поменять что-нибудь в коде конфигурации или структуре регистра сведений (а они это с завидным постоянством делают в новых конфигурацих) и эта инфа поетряет свою актуальность. Мне жаль времени автора в случае, если так случиться (а вероятность высока), т.к. проделана хорошая работа.
16. user1014118 01.04.23 11:59 Сейчас в теме
Автору огромное спасибо!!! за схему респект!
17. fixin 4252 21.03.24 15:13 Сейчас в теме
Спасибо. Делюсь кодом по актуализации состояния заказов.

1. Выбираем не закрытые
ВЫБРАТЬ
	СостоянияЗаказовКлиентов.Заказ КАК Заказ,
	СостоянияЗаказовКлиентов.Состояние КАК Состояние
ИЗ
	РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
ГДЕ
	СостоянияЗаказовКлиентов.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт)
Показать


2. Актуализируем состояния:
ТЗ = Результат[0].Выгрузить();
Заказы = Новый Массив();
Для Каждого Строка ИЗ ТЗ Цикл
	Заказы.Добавить(Строка.Заказ);
КонецЦикла;

УдалениеПроведения = Ложь;
Отказ = ложь;
РегистрыСведений.СостоянияЗаказовКлиентов.ОтразитьСостояниеЗаказа(Заказы, Отказ, УдалениеПроведения);
Показать
19. mikecool 5 23.03.24 08:34 Сейчас в теме
(17) Зачем выгружаешь в ТЗ, чтобы обойти ее? Выборки за глаза. Не плоди сущности в памяти
20. fixin 4252 23.03.24 08:37 Сейчас в теме
(19) это у вас перфекционизм взыграл? Я не любитель экономить на спичках
Оставьте свое сообщение