0. aximo 987 17.10.19 22:12 Сейчас в теме

Методика независимой системы "Подписки на события"

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. chg 18.10.19 08:09 Сейчас в теме
Плюсану, тема полезная, так же жду пока реализуют поддержку подписок на уровне расширений.
3. aximo 987 18.10.19 08:41 Сейчас в теме
(1) я предполагаю, что это войдет в "тираж" не ранее весны.
2. MVK80 18.10.19 08:33 Сейчас в теме
(0), что-нибудь новое по сравнению с https://infostart.ru/public/236252/ в этой методике есть?
4. aximo 987 18.10.19 08:44 Сейчас в теме
(2) сейчас посмотрел, разумеется, в ссылке сделано через "справочник", что я считаю избыточным. я предлагаю основной объект - регистр сведений "ПодпискиДокументов".
28. Rustig 1208 26.10.19 11:33 Сейчас в теме
(2) идейно похоже,
но могу засвидетельствовать , что похожие друг на друга разработки на ИС найти не получается перед тем, как выкладываешь.
А когда выложишь, то там, то тут появляются ассоциативные ссылки. И через месяц другой находишь похожие...
5. buganov 59 18.10.19 09:48 Сейчас в теме
А что если было бы лучше раздробить УПП на более мелкие конфигурации, например, на связку УТ-БП-ЗУП-Бюджетирование-МСФО-WMS? Тогда обновлять было бы не так больно, быстродействие было бы лучше, возможность фикса ошибок выше. Правда, издержки на сопровождение зоопарка выше, но это решается квалифицированными специалистами.
Ни в коем случае не лезу с советами, просто интересно мнение сообщества и подискутировать, что лучше, буза УПП, например на 1Тб + парой сотен душ и столько же роботов или все-же раздробить ее на более мелкие куски?
27. Rustig 1208 26.10.19 11:28 Сейчас в теме
(5) в моей практике рабочий вариант, когда ЗУП и БП для бухгалтеров как регламентированный учет, УПП и КА - как управленческий учет для менеджеров, кладовщиков, производства.
6. ZergKRSK 125 18.10.19 11:30 Сейчас в теме
ЭлементыФормы.ОбъектМетаданных.СписокВыбора = МодульДополнительныхУсловий.ПолучитьСписокИменДокументов();

Однако в тексте нигде не упоминается модуль "МодульДополнительныхУсловий"...
7. aximo 987 18.10.19 11:35 Сейчас в теме
(7) это "МодульПодписокДокументов"
8. ZergKRSK 125 18.10.19 11:51 Сейчас в теме
Переменная не определена (ПостроительОтчета)
Если НЕ УстановитьОтборыПостроителяНовый(<<?>>ПостроительОтчета, ИнициализироватьПостроительДляПодписок(ИмяДокумента), ДопУсловие.УсловиеХранилище.Получить()) Тогда (Проверка: Толстый клиент (обычное приложение))


Это Процедура ВыполнитьОбработкуПодписки
9. aximo 987 18.10.19 12:01 Сейчас в теме
(8) код написан для обычных форм. Установлен ли у вас реквизит формы - ПостроительОтчетов???
10. ZergKRSK 125 18.10.19 12:03 Сейчас в теме
(9) у меня обычные формы. Процедура ВыполнитьОбработкуПодписки находится в ОБЩЕМ модуле, откуда там форма?
11. aximo 987 18.10.19 12:18 Сейчас в теме
(10) отловите ошибку отладчиком. работы на 5 минут. метод описан в статье - его реализацию - на ваше усмотрение
12. ZergKRSK 125 18.10.19 12:25 Сейчас в теме
(11) эта ошибка отладчиком не отловится. У Вас процедура задействована в общем модуле и откуда-то там возник Построитель.

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

При условии что не ясно откуда взялся злосчастный Построитель так вообще прихожу к выводу что это сырая публикация с кучей ошибок.
15. aximo 987 18.10.19 15:25 Сейчас в теме
(12) ладно, так и быть чуть позже я выложу конфигурацию с этой рабочей «системой» - она у меня есть, раз у нас методики воспринимаются иногда на уровне «копи-паст».
16. Yashazz 2889 18.10.19 16:58 Сейчас в теме
(15) На ИС сейчас всё хотят не только чтоб разжевали, а ещё в рот положили и минимум трудозатрат. Увы.
22. ZergKRSK 125 21.10.19 04:14 Сейчас в теме
(15) если уж вы к методике прикладываете код то имхо он должен быть без ошибок.
13. dsdred 1242 18.10.19 14:54 Сейчас в теме
В дальнейшем, попробую реализовать этот функционал как расширение конфигурации, начиная с версии 8.3.17 вроде бы обещали вывести "подписки"

От куда информация?
14. aximo 987 18.10.19 15:22 Сейчас в теме
(13) на партнерском говорили о развитии механизмов расширений в последующих версиях
19. pm74 134 18.10.19 18:57 Сейчас в теме
(14) в расширении , (почти) подписку можно организовать через "ДобавитьОбработчик"
PLAstic; aximo; +2 Ответить
20. dsdred 1242 19.10.19 13:24 Сейчас в теме
(14)хм... Буду ждать )) А то из-за подписки многие универсальные идеи у меня в стопе.
А про внешнии источники данных в расширение планы не озвучивали?
21. aximo 987 19.10.19 13:36 Сейчас в теме
(20) нет, про внешние источники не говорили, была информация о поддержке.... смайлов.....
17. acanta 74 18.10.19 17:12 Сейчас в теме
Спасибо автору за подробное изложение материала.
Имхо, ЛПР, принимающие решение о переводе предприятия с типовой конфигурации на замке на конфигурацию с произвольно встраиваемым кодом в режиме предприятия недостаточно ознакомились с аксаптой и устройством слоев в ней.
Мы так же надеемся, что разработчики платформы не оставят попытки как нибудь прикрутить самый крутой оптимизатор в мире к файловой базе.
18. aximo 987 18.10.19 17:55 Сейчас в теме
(17) Всем спасибо, кто написал одобрительные комментарии, есть у меня еще пара небольших "вынужденных" рабочих алгоритмов-идей, для работы с большими высоконагруженными производственными базами.

Продолжу изложение материала.
23. Pawlick 9 21.10.19 15:10 Сейчас в теме
Сами используем такую (подобную) подсистему в своей УПП.
Хотел написать сам статью, но не стал: случайно наткнулся на подобный функционал в конфигурациях от Раруса, (например), понял что все это уже было, ничего в этом нового нет, и не стал заморачиваться...

И кстати, использование построителя отчетов для наложения отборов при выполнении подписки - удобно... Для юзера, а не для программиста.
Вы не задумывались о производительности? Особенно в высоконагруженной базе???
Создание построителя занимает определенное время, а в Вашем исполнении он будет создан столько раз, сколько видов событий у документа.
Да и не нужен он там: вы всегда можете поставить нужный отбор в коде, который сами указываете для обработчика...

Например:

Если Источник.ПометкаУдаления Тогда 
  Возврат;
КонецЕсли;
...
//Код обработчика
24. aximo 987 21.10.19 15:49 Сейчас в теме
(23) проблем с производительностью не наблюдалось. вы можете посмотреть полную версию вот здесь https://infostart.ru/public/1142017/

на самом деле - в статье описаны примитивные вещи так-то - просто нужен как раз скилл работы с построителем)
25. PLAstic 218 24.10.19 09:04 Сейчас в теме
Если конфигурация допиливалась, то почему новая функциональность не разрабатывалась в управляемом интерфейсе? И тогда на неё вешались бы расширения для оперативного изменения или фоновой модификации без необходимости завершения сеансов.
И не вижу вообще места для построителя. Он там не нужен.
26. Terve!R 24.10.19 17:13 Сейчас в теме
Конец 2019 года, а скриншоты из 1с 8.0.
Кому сейчас нужен код для обычных форм?
29. user925427 56 31.10.19 15:58 Сейчас в теме
Тема интересная как попытка создать более общий инструмент при решении частной задачи.
Идея понятна, а реализация вызывает вопросы.
Объясните мне, может, я что-то упустил, что выдаст Ваш запрос к регистру сведений
Запрос.Текст = "ВЫБРАТЬ
| ПодпискиДокументов.ОтборПредставление,
| ПодпискиДокументов.ХранилищеИсполняемогоКода,
| ПодпискиДокументов.ХранилищеОтбора
|ИЗ
| РегистрСведений.ПодпискиДокументов КАК ПодпискиДокументов
|ГДЕ
| ПодпискиДокументов.ВидСобытия = &ВидСобытия
| И ПодпискиДокументов.ТипОбъектаМетаданных = &ТипОбъектаМетаданных";
если его структура такова, как описано выше:
"Измерения:
- ОбъектМетаданных (Строка, 255)
- Событие (Перечисление.ВидыСобытийДокумента)
- УсловияВыполнения (Строка, 255)
Ресурсы:
- УсловиеХранилище (ХранилищеЗначения)
- КодХранилище (ХранилищеЗначения)
Реквизиты:
- ПредставлениеОбъектаМетаданных (Строка, 0)
"
Где тут "ВидСобытия" и "ТипОбъектаМетаданных", устанавливаемые в качестве отбора в
измерениях и откуда возьмутся выбираемые поля?

Если даже запрос неведомым мне образом сработает и выдаст результат из 3 полей,
в переменную ДопУсловие = РезультатЗапроса.Выбрать(); то как представляется выполнение
следующих строк кода:
ДопУсловие.УсловиеХранилище.Получить();
Выполнить(ДопУсловие.КодХранилище.Получить()); ?
Это же выборка из регистра сведений, а не из справочника, как Вы утверждаете в 4).

Не знаю, что Вы там выкладываете в продолжении статьи, но этот код вызвал вопросы.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день