Универсальная подсистема ДМ

25.08.20

Разработка - Универсальные функции

ДМ — дополнительные модули Это не альтернатива или дополнение БСП. Данная подсистема призвана быстро получить множество нужных функций в любой конфигурации. Для использования подсистемы изменения в конфигурацию вносить не надо. Обычные формы поддерживаются частично, т.к. с каждым годом таких конфигураций попадается всё реже. Разработка ведётся с 2009 года, но именно этот релиз был подготовлен на платформе 8.3.16.1063 и применяется на 8.3.15 с включенной совместимостью 8.2

Скачать файл

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

Наименование По подписке [?] Купить один файл
Универсальная подсистема ДМ:
.cf 1,86Mb
6
6 Скачать (1 SM) Купить за 1 850 руб.

ДМ — Дополнительные модули

 

Данная подсистема является основной для всех самописных конфигураций, которые пишу сам. Так же данная подсистема является почти независимой и поэтому её можно вставлять в любую конфигурацию, не боясь, что при обновлении что-то поломается. Она разрабатывается и перерабатывается с 2009 года и используется во всех конфигурациях, с которыми я работаю. Раньше в этой подсистеме была поддержка и обычных форм и управляемых, но после 2017 года я отказался от первого варианта, т. к. сейчас нет проектов по старым конфигурациям 1С.

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

 

Состав подсистемы:

 

Автообмен КД, ПД и РИБ

 

Настройка разных вариантов автообменов производится в обработке «Автообмен АРМ»):

Закладка «Настройка» - Указываются настройки автообмена. Так же тут отмечены отлюченные элементы.

На закладках «Виды документов» и «Виды справочников» указываются какие виды участвуют в автообмене по КД.

«Обмен без проведения» слишком частный случай, поэтому его не рассматриваю.

«Дополнительно» - Обязательно указать сигнальную строку, нажатием на кнопку открытия. Если сигнальная строка будет отличаться от строки запуска базы, то обмен производиться не будет. Это своего рода выключатель обмена, когда делается копия базы.

Протоколирование не использовал несколько лет, поэтому не могу ручаться, что он работает.

В настройках указываются варианты ои настройки самого обмена, где:

Закладка «Общее»

«Загрузка» - Если установлена, тогда эта настройка является для загрузки данных. Для РИБ не актуально.

«Отключена» - Если установлена, тогда настройка не работает.

«Вариант обмена»:

КД — Конвертация данных 2.х

ПД — Перенос данных. Т.к. реальных проектов не было для этого обмена, выкладывать данную разработку не буду, в виду её необкатанности.

РИБ — обмен средствами РИБ.

Закладка «КД». Здесь надо указать какой план обмена будет использоваться. При чём фильтрация будет осуществляться и указанными фильтрами в предыдущей обработке. Т.к. на больших объёмах может происходить «захлёбывание» передачи данных, можно использовать «Папка обратной связи», через которую будет производиться обратный отчёт по принятым объектам. К сожалению досконально механизм не испытан (проект завершён), поэтому возможны ошибки.

«Повторная выгрузка», это сколько минут ждать для повторной выгрузки, если ответ не получен. В общем тонкая настройка.

 

Закладка «ПД». Как уже отметил, технология не отработана, поэтому её пропускаю. Отмечу только то, что задумка позволяет осуществлять обмен только отдельными объектами, которые могут порождать запросы на дополнительные объекты. Каждый объект передаётся отдельным файлом. Точно реализован перенос справочников и документов. Скорее всего регистры сведений тоже туда «прикручу», потому что описывать алгоритм вручную тяжело и глупо.

Закладка «РИБ». Тут надо указать план обмена, по которому будет производиться обмен. Фильтров никаких нет, потому что обмен нужен для передачи данных один в один. Папка обмена, это как раз через которую осуществлять этот самый обмен. Я для транспорта использую дропбокс и уже много лет всё прекрасно работает.

Если установить признак «Префиксация объектов», тогда при записи нового справочника или документа, будет искаться основной элемент плана обмена и там реквизит «Префикс». Да, надо было привязать префикс в эту настройку, но по некоторым причинам пока реализован только такой механизм.

«Элементов в транзакции» - указание какими порциями производить отправку данных.

Остальные элементы не отработаны нормально, поэтому описывать нет смысла.

 

Алгоритмы

    Набор произвольных алгоритмов. Например, иногда надо описывать произвольным алгоритмом какие-то действия и эта ветка как раз предназначена для таких случаев. Она состоит из двух подветок:

    «Обработчики событий». Основная форма, это обработка «Алгоритмы (ДМ)», где на каждой закладке можно добавлять алгоритмы. Формат алгоритмов можно посмотреть в помощи (F1), поэтому отмечу только то, что данным инструментом подменяю проводки «на лету». Например, в ЗУП-е 3.1 часто подставляется уволенный сотрудник в документы, т. к. основой используется «физическое лицо», а сущность «сотрудник» как второстепенная и если человек уволен и опять принят, то выбирается часто уволенный. Так вот в подмене проводок уволенный сотрудник заменяется на работающего. Или, например, контроль за изменением документов прописываю на закладке «Перед записью». Кодом описываю любые условия анализа и если на вызоде ЗапретРедактирования=Истина, тогда объект не будет записан.

Если нажать на кнопку «Отладка», тогда появится поле выбора обработки. Формат процедур отладки описан в помощи. Идея в том, что код алгоритма копируется в обработку, производится запись нужного документа или справочника и управление передаётся в обработку отладки, где можно спокойно писать код. При любом изменении алгоритмов пользователей выгонять не надо и ничего закрывать не требуется. Отладка срабатывает только для пользователя, которому доступна роль «дм_ПолныеПрава».

    Особенно стоит отметить закладку «Интерфейсные обработчики», которая работает совместно с комплексом ЦУБД (центр управления базами данных). Идея в том, что при помощи ЦУБД проставляются вызовы в глобальные обработчики формы и на этой закладке можно, например, описывать прорисовку реквизитов и элементов формы без изменения конфигурации. Но из-за того, что ЦУБД оказалась тупиковой, пришлось её исключить из своей среды, поэтому либо вызовы прописывать при помощи расширения вручную, либо ждать новую версию, в которой будет разделена архивация баз и правка кода.

 

 

 

    Для ОФ активированы только алгоритмы «Подмена проводок» и «Перед записью». Дополнительно добавлен функционал сохранения алгоритмов в файл с последующим восстановлением

 

 

Сложные алгоритмы

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

Формы СА нарисованы только для ОФ. Логики на формах очень мало, всё вынесено в модули объектов и в общие модули.

Используемые метаданные:

Справочник «дм_са_ЗаголовкиСА»

Справочник «дм_са_ПакетыАлгоритмов»

Справочник «дм_АлгоритмыОбщие»

Дополнительные справочники «дм_СпискиДанных» и «дм_СтруктурыДанных»

Обработка «дм_АРМ_СложныеАлгоритмы»

 

 

 

Дополнительные реквизиты

    Всегда их реализовывал в каждой конфигурации с нуля. Теперь решил перенести это всё в ДМ. Испытаний не было, поэтому работоспособность гарантировать не могу. В рабочих базах работает много лет.

Основная идея в том, что когда рисуются произвольные реквизиты и элементы формы, надо хранить данные где-то. Для этого и предназначена данная ветка.

Смотреть идею по пути

дм_Срв.др_ЧтениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеПоУмолчанию) Экспорт

дм_Срв.др_СохранениеДанных(Ссылка, ИмяРеквизита, ЗначениеРеквизита) Экспорт

Там же есть зачатки по работе с ТЧ, но вроде как есть пробелы, т. к. в бой данную ветку ещё не пускал.

 

ЖИ — Журнал изменений

    Данный блок фиксирует все изменения справочников и документов. В РС просто записываются какие реквизиты были изменены и когда это было. Настройка производится в обработке «АРМ (ЖИ)».

    На закладке «Фоновая обработка» надо установить степень сжатия (9 макс) и это будет указываться при помещении данных в хранилище значений. В поле «объектов за раз» я ставлю 100 и это указывает какими порциями обрабатывать данные в фоне.

На закладке «Основная работа» можно указать, что запись данных будет делаться в транзакции. При этом можно указать для каждого пользователя отдельный вариант поведения. Как показала практика, запись в транзакции приводит к потере данных при сильных нагрузках, поэтому никогда не включаю данную опцию.

Закладка «Обслуживание»:

Кнопка «Старт обслуживания» позволяет запустить внеплановую конвертацию данных ЖИ. Остальные кнопки появились эволюционно, при изменении структуры, т. е. Сейчас они не актуальны.

«Обрезание журнала по дате» - Удаляет все записи до указанной даты

«Обрезание журнала по размеру» - Обрезает журнал по записям, размер которых выше указанного. Актуально только для хранения в несжатом формате.

«Исключать хранилища значений» - Подразумевает пропуск реквизитов с типом «Хранилище значений». Всё равно там не понятно, что изменилось, поэтому можно и исключать данный вид данных.

«Исключаемые виды» - Указываются метаданные, которые не надо фиксировать.

 

    Смотреть результаты надо в отчёте «Журнал изменений», где указав выборочные фильтры, можно посмотреть все изменения, например, сделанные пользователем или по конкретному объекту. Обязательно отметить «Новые» и «Изменённые», а иначе ничего выведено не будет. «Контроль времени» скорее всего не понадобится, т. к. эта часть предназначена для организаций, где производится корректировка дат документов.

    Важно отметить, что для указания анализируемого объекта достаточно указать сам объект системы или его уникальный идентификатор (в формате 32 или 36 символов)

 

 

- Добавлен отбор по реквизитам.

- Добавлены формы для вынесения кнопок на формы отдельных документов

- Добавлена фиксация изменений бизнес-процессов и задач

- Добавлена файловая выгрузка и файловый анализ

 

Проверена работа на базах с очень высокой нагрузкой

 

Источники данных

Данная ветка состоит из «Источников данных» (реализовано) и «сборщиков данных» (не реализовано). Для локальной работы достаточно только наличие источников данных и сборщики можно не использовать. Эта разработка уже используется в напоминаниях. Идея такая же как и в алгоритмах, но медологические назначение данной сущности в том, что бы просто собирать какие-то данные и формировать их по определённому формату. На выходе должна быть какая-то структура, которая описывается в вызывающей стороне, данные которой потом можно использовать дальше. Например, при помощи ИД реализовано информационное сопровождение изменения данных о запретах. Или, например, производится сбор информации о том, кому пора менять паспорт в течении месяца. В общем применять данную идею можно где угодно и как угодно.

В этой идее так же присутствует возможность отладки алгоритмов. По правильному надо было соединить источники данных и алгоритмов, но так получилось, что алгоритмы родились позже, поэтому пока их совмещение не предусмотрено.

 

 

Менеджер сообщений

Очень простая разработка, предназначенная для фиксации каких-либо событий с уровнем важности. Программный вызов фиксации сообщения находится в общем модуле «дм_МодульСообщений_срв». Посмотреть зафиксированные события можно в отчёте «дм_ОтчётПоСообщениям». Многие модули используют этот менеджер для фиксации служебных сообщений. Так же там предусмотрена возможность фиксации сообщения в стандартном журнале регистрации.

 

Напоминания

Данная подсистема позволяет формировать напоминания. К сожалению для её работы необходимо при старте системы вызвать открытие формы

 

Процедура ПриНачалеРаботыСистемы()

// Отладочный запуск напоминалок

дм_Напоминания_кл.СтартФоновойРаботы();

КонецПроцедуры

 

В рабочих конфигурациях я это делаю в расширении и таким образом никакого самописного кода в модулях нет.

Сами напоминания работают совместно с источниками данных и прописываются в справочнике «дм_пп_НастройкаНапоминаний». В этом же справочнике есть описание параметров (F1). Основной формат работы такой:

1. Создаётся элемент настройки в справочнике

2. Создаётся ИД, где прописывается произвольный код, согласно информации из справочника.

3. Созданный ИД прописывается в справочнике.

4. В регистре сведений «дм_пн_Адресация» указывается адресация, для кого предназначено напоминание.

Если будет ошибка, то она зафиксируется в менеджере сообщений.

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

 

 

Отложенное проведение

Данная разработка позволяет при переносе данных осуществлять проведение через какое-то время, что бы не перегружать сервер. К сожалению при больших объёмах данный пункт оказался очень нужным. Помещать ссылку в отложенное проведение при помощи «дм_Срв.ПостановкаВОчередь(ПомещаемыйДокумент)». После этого он будет перепроведён при срабатывании соответствующего рег.задания

 

Промежутки времени

Отдельная разработка по управлению промежутками времени. Можно указывать интервал времени и средставми этой подсистемы можно рассчитывать, когда наступит следующий. Настройка промежутка производится в справочнике «дм_РасписаниеПромежутков», а контроль наступления следующего промежутка производится вызовом

«дм_ВременныеПромежутки.ОпределениеСледующейТочкиСобытияСКонтролем(СсНаОб, ПоследняяТочка=Неопределено, ДатаН=Неопределено, ДатаО=Неопределено)»

Этот механизм используется, например, в подсистеме управления фоновыми заданиями.

 

Регистрация действий пользователей

Это частный механизм, предназначенный за анализом открытия форм пользователями. Далее можно все действия посмотреть в отчёте «дм_рдп_ОтчётПоДействиям». Для настройки данного блока, достаточно включить работу в обработке «дм_ОбщиеНастройки» на закладке «Открытие форм».

 

Управление фоновыми заданиями

Эта подсистема позволяет создавать произвольные вызовы фоновых заданий. Настройка производится в обработке «дм_АРМ_УправлениеФоновымиЗаданиями». В качестве параметров можно передавать любые ссылки на закладке «Параметры» справочника настройки. Временных промежутков тоже можно настраивать несколько.

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

 

 

Хранилище настроек

Хранилище настроек предназначено для сохранения различных настроек. Например, для отчётов. Данная разработка имеет возможность выбора версии (обработка «дм_ОбработкаНастроек»). В БСП более совершенный вариант и поэтому её применяю там, где никак не получается использовать блоки БСП.

 

 

Дополнительно

 

Так же там есть документ «пример_ДобавлениеРеквизитов» в котором реализованы почти все возможные варианты программного добавления реквизитов. Эдакая шпаргалка.

Имеется набор процедур и функций, предназначенных для работы с уникальными идентификаторами (36 и 32 форматы)

 

 

Обновление конфигураций

 

Для обновления конфигурации без долго переноса всех изменений рекомендуется:

1. Скачать стандартную конфигурацию, которую планируется «накатить» на рабочую.

2. Обновить скачанную конфигурацию подсистемой «Дополнительные модули». Для этого необходимо:

а. Сравнить с ЦФ-кой, в которой есть подсистема

б. Снять все галки сравнения.

в. Снизу кнопка «действия» (кажется) и выбрать пункт «отметить по подсистемам файла».

г. Выбрать подсистему «Дополнительные модули».

е. Обновить.

3. Полученная конфигурация готова для того, чтобы её Цфкой можно было безбоязненно обновлять рабочую.

Примечание: для платформы версии 8.3.8 и выше кнопка из пункта (в) перенесена верхний левый угол.

 

Универсальная Подсистема

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

21.05.2024    20122    dimanich70    81    

144

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4091    3    John_d    11    

57

Универсальные функции Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    18058    atdonya    24    

56

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

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

30.11.2023    5502    ke.92@mail.ru    16    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    14729    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3580    56    progmaster    8    

4

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

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18478    171    sapervodichka    112    

135
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2507 22.10.19 11:38 Сейчас в теме
Только что в соседней ветке спросил - не оно ?
4. strange2007 144 22.10.19 14:28 Сейчас в теме
(1) Исключено. Это личные наработки и просто решил поделиться с народом
2. RustIG 1747 22.10.19 12:34 Сейчас в теме
(0) для каких программ разрабатывали ? какие функции реализовали?
5. strange2007 144 22.10.19 14:31 Сейчас в теме
(2) Для любых конфигураций 1С. Изначально (и сейчас тоже) идея была в том, что бы приходя на новое предприятие, сразу внедрил что-то такое, что перекрывало бы большинство типичных проблем в методологии ведения учёта. Так и получилась данная подсистема, которую разрабатывал с 2009 года. На каждом предприятии что-то добавлялось, что-то видоизменялось, что-то удалялось. Но в целом костяк остался. Единственное то, от чего отказался совсем, это от обычных форм.
3. chg 22.10.19 13:10 Сейчас в теме
интересно интересно, нужно будет затестить
6. strange2007 144 22.10.19 14:32 Сейчас в теме
(3) Обратите внимание на реализацию алгоритмов. Без отладочных модулей, увы, ценность их нулевая
7. RustIG 1747 22.10.19 15:02 Сейчас в теме
8. chg 23.10.19 05:40 Сейчас в теме
(6)вы про доп модули которые указаны на последнем скриншоте?
9. strange2007 144 23.10.19 10:56 Сейчас в теме
(8) Нет, это подветки "Алгоритмы" и "Источники данных"."
10. strange2007 144 18.11.19 08:21 Сейчас в теме
Хранилище файлов является слишком сложным по функционалу, а значит ненужным. Для предприятий написал отдельную ветку файлового хранилища, которая простая и стройная. Пока выкладывать не буду, т.к. только запускаю в работу. Мелочи исправятся и тогда уже предоставлю тут.
Оставьте свое сообщение