1с бсп что это
1С:Предприятие 8
Типовая конфигурация
Библиотека стандартных подсистем, редакция 3.0
Версия 3.1.2
Версия 3.1.2 является развитием инструментария «1С:Библиотека стандартных подсистем», который предназначен для разработки конфигураций на платформе «1С:Предприятие» версии 8.3.14 и выше. При этом свойство конфигурации «Режим совместимости» должно быть установлено в «Не использовать» при разработке на версии 8.3.14 или в «Версия 8.3.14» при разработке на более старших версиях.
«1С:Библиотека стандартных подсистем» (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе «1С:Предприятие». С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации. Использование БСП при разработке прикладных решений на платформе 1С:Предприятие позволит также достичь большей стандартизации конфигураций, что уменьшит время на изучение и внедрение прикладных решений за счет их унификации по набору используемых стандартных подсистем.
Исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0) . Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode. Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте. См. также: Ответы на типовые вопросы по лицензированию "1С:Предприятия 8".
Кроме того, для администраторов и специалистов по внедрению прикладных решений в составе БСП поставляются внешние обработки, которые можно использовать автономно без БСП для решения ряда административных и «ремонтных» задач: консоль запросов, групповое изменение объектов, регистрация изменений на узлах планов обмена, скрытие конфиденциальной информации и др.
Порядок перехода с предыдущей версии
Для обновления версий БСП в прикладных решениях рекомендуется использовать специализированные инструменты, входящие в дистрибутив библиотеки:
- ExtFiles \ПервоеВнедрениеБСП.epf – внешняя обработка для упрощения процесса первого внедрения библиотеки в прикладную конфигурацию. Позволяет выбрать подсистемы для внедрения с учетом их зависимостей друг от друга и сохранить настройки для сравнения-объединения с помощью конфигуратора. Также с ее помощью можно выполнить удаление избыточных фрагментов кода подсистем, которые не используются в конфигурации.
- ExtFiles \Инструменты разработчика\ПереходНаВерсию.epf – внешние обработки по автоматизации ряда массовых операций при переводе конфигурации с ранних версий библиотеки, которые указаны в разделе Переход с предыдущих версий файла U pdate SSL.htm . Предусмотрены обработки для перехода на версии 2.4.1, 3.0.1, 3.0.3 и 3.1.2. Обработки запускаются в информационной базе после обновления метаданных библиотеки в прикладной конфигурации. При работе с хранилищем конфигурации обработку рекомендуется запускать на копии информационной базы и затем загружать обратно измененные метаданные конфигурации с помощью сравнения-объединения.
- ExtFiles\ПроверкаВнедренияБСП.erf – внешний отчет, предназначенный для запуска в информационной базе после внедрения или обновления метаданных библиотеки в прикладной конфигурации. Выявляет распространенные проблемы внедрения библиотеки в конфигурации, в частности, проверяет корректность заполнения состава определяемых типов, наличие необходимых вставок кода в модулях.
- ExtFiles \ОбновлениеНаИсправительнуюВерсиюБСП.epf – внешняя обработка для обновления конфигурации на новые исправительные релизы библиотеки. Она позволяет существенно сэкономить время при регулярных (например, еженедельных) обновлениях. Исправительные релизы библиотеки отличаются только четвертой цифрой в полном номере версии, например: 1.1.1. 1 , 1.1.1. 2 , 1.1.1. 10 и т.п. Ее необходимо запускать в информационной базе с конфигурацией, содержащей предыдущий релиз библиотеки. Нажать на кнопку О бновить на исправительную версию , указав файл 1Cv8.cf новой версии библиотеки из комплекта поставки. При этом выполняется автоматическое сравнение/объединение с новой конфигурацией библиотеки согласно настройкам, которые соответствуют документации: будут перенесены все поставляемые объекты библиотеки, а переопределяемые при внедрении – объединены с приоритетом конфигурации поставщика (например, определяемые типы) или пропущены (как например, переопределяемые модули). После сравнения/объединения конфигурация базы данных не будет обновлена автоматически, что позволяет выполнить сравнение с конфигурацией базы данных и внести правки в измененные объекты: переопределяемые модули, различные локальные исправления и доработки. После обновления необходимо дополнительно выполнить инструкции из раздела Переход с тестовых версий или Переход с предыдущих версий документа UpdateSSL.htm , если они указаны. Кроме того, в качестве альтернативного варианта, по кнопке С формировать файл настроек предусмотрена возможность сформировать настройки, которые затем можно загрузить в конфигураторе для ручного сравнения-объединения. Однако при обновлении на новые функциональные релизы (изменение третьей цифры) расстановку флажков в окне сравнения-объединения необходимо выполнять, как и ранее, в конфигураторе, следуя инструкциям в главе 2 документации.
Документация
См. также на портале
Перед началом установки конфигурации ознакомьтесь с важной информацией в файле Readme.txt
Полный дистрибутив конфигурации
Все данные для установки находятся на диске в каталоге \1Cits\EXE\SSL\3.1.2.189\ ( просмотреть каталог )
Конфигурации в 1С пишутся для пользователей и по их «правилам» (клиент всегда прав), поэтому в основном все конфигурации разные, но достаточно часто в них используются одни и те же объекты, которые незначительно отличаются друг от друга. Действительно, сложно представить конфигурацию, где не фигурировали бы такие сущности как номенклатура, контрагенты, пользователи, валюта. И некоторые задачи являются типичными: возможность базового разграничения прав, работа с электронной почтой, задачи пользователям и т.д. Но.
Есть конфигурация, которая облегчает работу разработчика, избавляя его от таких «тривиальных» работ – это «Библиотека стандартных подсистем» (БСП), которая включает в себя набор универсальных функциональных подсистем и фрагменты раздела «Администрирование», предназначенных для использования в прикладных решениях на платформе «1С:Предприятие». Библиотека не является законченным (с предметной точки зрения) прикладным решением, но при этом подсистемы библиотеки могут использоваться в конфигурации-потребителе как все вместе, так и по отдельности. И для этого в БСП входит специальный помощник внедрения, использование которого помогает существенно сэкономить время при разработке новой конфигурации.
Сам помощник выполнен в виде пошагового мастера, с помощью которого разработчик указывает нужные ему подсистемы, а мастер создаст заготовку, с которой можно работать в дальнейшем. По сути дела мы получаем заготовку для будущей конфигурации.
Запустим БСП (у нас редакция 2.3, версия 2.3.3.63), перейдем в раздел «Инструменты разработчика» U94; «Первое внедрение БСП»:
Здесь нам откроется «Помощник внедрения БСП». Сам помощник выглядит как пошаговый помощник, где на первом этапе мы выбираем подсистемы, которые будут нам нужны в разрабатываемой конфигурации. После этого нужно указать файл (в формате xml), в котором сохраним эти настройки.
После чего переходим ко второму этапу: указываем дополнительные параметры для каждой из выбранных подсистем.
После выбора всех параметров система проверит, все ли было корректно выбрано и предложит разные варианты отслеживания ошибок (Таблица внедрения подсистем или Отчет по внедрению БСП).
В статье кратко описана работа с «Помощником внедрения БСП», потому что этот инструмент не очень популярен. Чаще на практике разработчики действуют по такой схеме: на пустую конфигурацию устанавливают необходимые подсистемы БСП (здесь еще может помочь «Помощник внедрения БСП»), но обычно с БСП на новую пустую конфигурацию переносят все подсистемы.
Далее рассмотрим на примере, когда с БСП в «1С:Бухгалтерия предприятия» (БП) нужно перенести некую подсистему.
У нас есть две конфигурации: первая (основная) - со всеми подсистемами БСП, вторая (файла) - БП.
Далее порядок действий следующий:
1. Включить возможность редактирования основной конфигурации.
2. Вызвать меню Конфигурация - Сравнить, объединить с конфигурацией из файла.
3. Выбрать файл с расширением cf конфигурации БП.
4. На предложение постановки на поддержку ответить Да.
5. Далее в окне сравнения - снять все флажки (снять флажок с корневого элемента).
6. Выполнить Действия - Отметить по подсистемам.
7. Отметить подсистемы, которые отсутствуют в нашей основной конфигурации – взять из файла, но подсистемы, которых нет в конфигурации из файла, нужно оставить в основной конфигурации (по умолчания так и будет), далее нажать Установить.
8. Отметить к объединению свойства корневого элемента: Основные роли, Модуль управляемого приложения, Модуль сеанса, Модуль внешнего соединения, Модуль обычного приложения, Режим использования модальности, Режим использования синхронных вызовов расширений платформы и внешних компонент, Режим совместимости интерфейса, Режим совместимости. Нажать Выполнить.
9. В окне Настройка правил поддержки - Ок.
10. Обновить конфигурацию базы данных (F7).
11. Далее, скорее всего, появится следующая ошибка:
«… (объект входит в состав одноименного общего реквизита)» или «… : Использование определяемых типов в режиме совместимости Х.Х.Х. (к примеру, автор) и ниже недопустимо» ; «ОбщаяКартинка: Имя не уникально!»
12. Для объекта, который входит в состав одноименного общего реквизита – снять с поддержки, удалить объект и ссылки на него. Выполнить поиск ссылок на удаляемые объекты – удалить ссылки.
13. Поменяйте режим совместимости выше Х.Х.Х.
14. Обновить конфигурацию базы данных (F7). Далее, если возвращаетесь на пункт 11, выполнить пункти 12 и 13, потом 14.
В принципе это и все – «автоматическая» часть работы закончена. Начинается самый «интересный» этап работ: если Вы уже подумали, что конфигурация «взлетела», то, скорее всего, Вы сильно ошибаетесь.
Для начала проверяйте общие модули, включены ли подсистемы в командный интерфейс и прочее моменты. Когда все «как бы готово», приступайте к отладке.
Находите внедренную подсистему, и далее работаете так: если все хорошо, то Вас можно поздравить, если же нет – возвращаетесь в конфигуратор и удаляете код неиспользуемых подсистем либо добавляйте то, что нужно.
И так выполняете отладку до тех пор, пока не убедитесь в отсутствии ошибок.
1С:Предприятие 8
Стандартная библиотека
Библиотека стандартных подсистем, редакция 3.0
Версия 3.0.3
Версия 3.0.3 является развитием редакции инструментария «1С:Библиотека стандартных подсистем», который предназначен для разработки конфигураций на платформе «1С:Предприятие» версии 8.3.12 и выше. При этом свойство конфигурации «Режим совместимости» должно быть установлено в «Не использовать» при разработке на версии 8.3.12 или в «Версия 8.3.12» при разработке на более старших версиях.
«1С:Библиотека стандартных подсистем» (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе «1С:Предприятие». С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации. Использование БСП при разработке прикладных решений на платформе 1С:Предприятие позволит также достичь большей стандартизации конфигураций, что уменьшит время на изучение и внедрение прикладных решений за счет их унификации по набору используемых стандартных подсистем.
Администрирование пользователей и прав доступа;
Средства администрирования и обслуживания (установка обновлений, резервное копирование, дополнительные отчеты и обработки, оценка производительности и др.);
Сервисные подсистемы (история изменений объектов, заметки и напоминания, печать, полнотекстовый поиск, присоединенные файлы, электронная подпись и др.);
Технологические механизмы и программные интерфейсы (процедуры и функции общего назначения, обновление версии ИБ, работа в модели сервиса и др.);
Нормативно-справочная информация и классификаторы (адресный классификатор, банки, валюты и др.);
Прикладные подсистемы и рабочие места пользователей (анкетирование, бизнес-процессы и задачи, взаимодействия, варианты отчетов и др.).
Кроме того, для администраторов и специалистов по внедрению прикладных решений в составе БСП поставляются внешние обработки, которые можно использовать автономно без БСП для решения ряда административных и «ремонтных» задач: консоль запросов, групповое изменение объектов, регистрация изменений на узлах планов обмена, скрытие конфиденциальной информации и др.
Порядок перехода с предыдущей версии
Весь исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0) . Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode. Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте. См. также: Ответы на типовые вопросы по лицензированию "1С:Предприятия 8".
Для обновления версий БСП в прикладных решениях рекомендуется использовать специализированные инструменты, входящие в дистрибутив библиотеки:
ExtFiles\ПервоеВнедрениеБСП.epf – внешняя обработка для упрощения процесса первого внедрения библиотеки в прикладную конфигурацию. Позволяет выбрать подсистемы для внедрения с учетом их зависимостей друг от друга и сохранить настройки для сравнения-объединения с помощью конфигуратора. Также с ее помощью можно выполнить удаление избыточных фрагментов кода подсистем, которые не используются в конфигурации.
ExtFiles\Инструменты разработчика\ПереходНаВерсию.epf – внешние обработки по автоматизации ряда массовых операций при переводе конфигурации с ранних версий библиотеки, которые указаны в разделе Переход с предыдущих версий файла UpdateSSL.htm . Предусмотрены обработки для перехода на версии 3.0.1 и 3.0.3. Обработки запускаются в информационной базе после обновления метаданных библиотеки в прикладной конфигурации. При работе с хранилищем конфигурации обработку рекомендуется запускать на копии информационной базы и затем загружать обратно измененные метаданные конфигурации с помощью сравнения-объединения.
ExtFiles\ПроверкаВнедренияБСП.erf – внешний отчет, предназначенный для запуска в информационной базе после внедрения или обновления метаданных библиотеки в прикладной конфигурации. Выявляет распространенные проблемы внедрения библиотеки в конфигурации, в частности, проверяет корректность заполнения состава определяемых типов, наличие необходимых вставок кода в модулях.
ExtFiles\ОбновлениеНаИсправительнуюВерсиюБСП.epf – внешняя обработка для обновления конфигурации на новые исправительные релизы библиотеки. Она позволяет существенно сэкономить время при регулярных (например, еженедельных) обновлениях. Исправительные релизы библиотеки отличаются только четвертой цифрой в полном номере версии, например: 2.4.1. 1 , 2.4.1. 2 , 2.4.1. 10 и т.п. Ее необходимо запускать в информационной базе с конфигурацией, содержащей предыдущий релиз библиотеки. Нажать на кнопку Обновить на исправительную версию , указав файл 1Cv8.cf новой версии библиотеки из комплекта поставки. При этом выполняется автоматическое сравнение/объединение с новой конфигурацией библиотеки согласно настройкам, которые соответствуют документации: будут перенесены все поставляемые объекты библиотеки, а переопределяемые при внедрении – объединены с приоритетом конфигурации поставщика (например, определяемые типы) или пропущены (как например, переопределяемые модули). После сравнения/объединения конфигурация базы данных не будет обновлена автоматически, что позволяет выполнить сравнение с конфигурацией базы данных и внести правки в измененные объекты: переопределяемые модули, различные локальные исправления и доработки. После обновления необходимо дополнительно выполнить инструкции из раздела Переход с тестовых версий или Переход с предыдущих версий документа UpdateSSL.htm , если они указаны. Кроме того, в качестве альтернативного варианта, по кнопке Сформировать файл настроек предусмотрена возможность сформировать настройки, которые затем можно загрузить в конфигураторе для ручного сравнения-объединения. Однако при обновлении на новые функциональные релизы (изменение третьей цифры) расстановку флажков в окне сравнения-объединения необходимо выполнять, как и ранее, в конфигураторе, следуя инструкциям в главе 2 документации.
Документация
См. также на портале
Перед началом установки конфигурации ознакомьтесь с важной информацией в файле Readme.txt
Полный дистрибутив конфигурации
Все данные для установки находятся на диске в каталоге \1Cits\EXE\SSL\3.0.3.121\ ( просмотреть каталог )
Давненько я не писал статей на ресурсе ввиду абсолютной нехватки времени. И вот сейчас, решил разобрать вместе с вами некоторые возможности библиотеки стандартных подсистем (БСП) в рамках модулей "стандартные подсистемы". Данную статью я разобью на две части.
В первой части данной статьи я предлагаю рассмотреть удобный функционал получения данных из обработки параметров клиента и использования их на практике. А во второй части - пример режима "диалога" (выбора вопроса) в рамках возможностей библиотеки стандартных подсистем БСП.
Разработка будет вестись (на момент написания статьи - конец марта 2022 г.) в типовой конфигурации Библиотека стандартных подсистем - версия 3.1.6.137. Тестирование примеров - на Платформе 1с 8.3.20.1674 (64 бит).
Как всегда, данные подходы можно использовать в любых типовых конфигурация, в основе которых лежит типовая библиотека БСП.
Итак, переходим к первой части:
Часть 1. Использование возможностей функций "ПараметрыРаботыКлиентаПриЗапуске " и "ПараметрыРаботыКлиента".
Применение данных функций крайне простое, в результате применения - фиксированная структура, содержащая в себе колоссально количество информации (почему-то вспомнилась сразу конфигурация ЗУП 3.1).
Элементарный код использования на клиенте вот такой:
Результат выполнения - это огромная фиксированная структура:
Рис.1. Структура - результат выполнения функции ПараметрыРаботыКлиентаПриЗапуске.
Рис.2. Структура (продолжение) - результат выполнения функции ПараметрыРаботыКлиентаПриЗапуске().
Из данной структуры можно получить информацию как о типе платформы, ее версии и рекомендуемому объему оперативной памяти, так и о параметрах блокировке сеанса, их продолжительности и дате последнего резервного копирования текущей базы, а так же - всех подсистемах конфигурации.
Рис.3. Структура (продолжение) - информация о настройке резервного копирования.
Рис.4. Структура (продолжение) - информация о блокировке сеансов.
Функция ПараметрыРаботыКлиента() возвращает несколько "урезанную" структуру данных:
Рис.5. Структура "урезанная"- результат выполнения функции ПараметрыРаботыКлиента().
Далее, я приведу простой пример использования функции ПараметрыРаботыКлиента(). Вот такой (получаю все подсистемы конфигурации из фиксированного соответствия):
Затем, я могу посмотреть состав необходимой мне подсистемы и права на нее.
Итак, в первой части статьи мы разобрали две интересные функции - ПараметрыРаботыКлиента() и ПараметрыРаботыКлиентаПриЗапуске(), которые возвращают большой массив информации о структуре и настройках базы данных в фиксированной структуре для удобного использования в дальнейшем.
Для справки отмечу, что в данной структуре можно даже "нарыть" СНИЛС Администратора (через привязанное физическое лицо).
Теперь, перейдем ко второй части статьи. В ней мы рассмотрим процедуру диалога выбора (вопроса) пользователю - ПоказатьВопросПользователю().
Часть 2. ПоказатьВопросПользователю() - Процедура диалога выбора (вопроса) и ее основные возможности.
По-факту - это обычный "вопрос пользователю" - ПоказатьВопрос(), но достаточно более продвинутый, имеющий более гибкие настройки.
Сначала отмечу, что код ПоказатьВопросПользователю() в "базовом" использовании мало отличается от ПоказатьВопрос() и данная процедура выглядит вот так:
Типовой результат выполнения процедуры ПоказатьВопросПользователю() будет вот такой (обычный вопрос - "да", "нет", "отмена"):
Рис.6. Диалог ответа на вопрос через процедуру ПоказатьВопросПользователю(). Практически "аналог" показатьВопрос().
Далее, мы получим дополнительные возможности диалога, изменив код, добавив собственные настройки:
Здесь, я запускаю задание, в зависимости от нажатой кнопки. Причем, "Задание 1" - запускается по-умолчанию в течение 10 секунд.
В результате запроса диалога - мы получим вот такую форму:
Рис.7. Настройка диалога пользователя. Задание 1 начнет выполняться через 10 секунд по-умолчанию.
Согласно описанию вводных параметров процедуры в библиотеке стандартных подсистем, они могут быть такие:
Пример работы данной процедуры выглядит вот так:
Рис.8. Демонстрация работы диалога пользователя возможностями Библиотеки стандартных подсистем 3.1.6.
Отмечу еще раз, что данный код может работать в любой типовой конфигурации, в основе которой лежит библиотека стандартных подсистем.
Далее, предлагаю (в рамках данной статьи) - перейти в разделу "Мои материалы по возможностям БСП".
Мои материалы по возможностям Библиотеки стандартных подсистем (БСП)
Спасибо всем, кто прочитал до данного момента.
Также прошу ознакомиться с другими моими статьями по интересному функционалу типовых конфигураций в рамках библиотеки стандартных подсистем и по разделам. Я накопил достаточный объем знаний по данной библиотеки, ниже наиболее интересные статьи по ней.
Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, если у вас есть желание, чтобы данный комплекс статей наполнялся практическими материалы для программистов - я не откажусь от поддержки как данной статьи, так и всего комплекса статей в целом.
Обновленный список материалов по применению БСП на практике, доступных на этом ресурсе:
Возможности администрирования баз и кластера с помощью библиотеки стандартных подсистем:
Запуск длительных операций с помощью библиотеки стандартных подсистем:
Работа со штрихкодами и печатными макетами с помощью библиотеки стандартных подсистем:
Всем привет! Данный материал посвящен дальнейшему описанию возможностей типовой поставляемой конфигурации для разработчиков "Библиотека стандартных подсистем" (БСП). В настоящей статье, я опишу часть "основ" библиотеки - базовый функционал общего назначения, который уже можно использовать (т.е мы ничего не придумываем сами, используем готовые решения и экономим собственное и чужое время) в любых конфигурациях, основанных на БСП.
В данной статье, я буду описывать и приводить примеры функций и процедур модуля общего назначения БСП, которые, на мой взгляд, наиболее полезны для разработчика и я, достаточно часто, применяю их в своей практике программирования.
В качестве платформы я использую 1С:Предприятие 8.3.17.1549 (64 бит) и последнюю конфигурацию Розница 2.3.5.32. В указанную конфигурацию встроена БСП 3.1.2.457 версии (отмечу, что не самая последняя, на момент написания статьи - последняя 3.1.3).
Итак, давайте перейдем к описанию:
Полезные функции и процедуры общего модуля БСП
Работа с данными в базе
Функция 1.1
ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт
Данная серверная функция позволяет получить выбранные реквизиты (Знач Реквизиты) по ссылке - Ссылка. Пример применения данной функции вот такой:
Очень удобно, когда ты можешь получить сразу необходимую структуру по любой ссылке в допустимой степени без использования запросов и дополнительного кода.
Функция 1.2
ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь) Экспорт
Более универсальная функция, повторяющая смысл предыдущей, но в качестве ссылок уже можно передавать массив. Пример такой:
Для "базовых вещей" данные функции очень даже применимы. В БСП есть рекомендация использовать именно эти функции, а не обращаться к реквизитам через точку.
Функция 1.3
ПроверитьПроведенностьДокументов(Знач Документы) Экспорт
Данная функция возвращает массив непроведенных документов. Если документы проведены - массив пустой. Пример использования:
Одна из удобных базовых функций для работы, на мой взгляд. В данном примере мне будет возвращен массив с 2 элементами, т.к. 2 документа из 3-х у меня не проведены.
Функция 1.4
ПровестиДокументы(Документы) Экспорт
Еще одна интересная функция, которая проводит документы, а так же возвращает массив документов с описанием ошибок, если не удалость провести:
Здесь, функция вернула мне массив такого содержания, где видно какой документ не удалось провести и почему:
Рис.1. Элементы массива содержат структуры с описанием ошибки и ссылки.
Функция 1.5
ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь) Экспорт
Данная функция осуществляет простую проверку - есть ли ссылки на объект или нет. Возвращает "истину" или "ложь".
Функция 1.6
МестаИспользования(Знач НаборСсылок, Знач АдресРезультата = "") Экспорт
Данная функция возвращает таблицу значений с указанием, где используется передаваемый объект:
Например, документ "Отчет о розничных продажах" имеет ссылку в документе "Выемка денежных средств из кассы ККМ", что показывает нам результат этот функции:
Рис.2. Строка таблицы значений с результатом использования Ссылки. Ссылка - Данные
Работа с окружением базы
Функция 2.1
ОписанияПодсистем() Экспорт
Данная функция возвращает массив структур, содержащий информацию о системах и стандартных библиотеках, включенных в конфигурацию (то же самое, что содержимое файла Версии библиотек.txt при поставки конфигурации. Например:
Рис.3. В конфигурацию включена подсистема маркировки 10.1.18.
Функция 2.2
ОбщиеПараметрыБазовойФункциональности() Экспорт
Данная функция возвращает структуру с настройками базовой функциональности конфигурации. Интересным содержанием структуры является такие как МинимальнаяВерсияПлатформы и РекомендуемыйОбъемОперативнойПамяти.
Обращение к функции вот так:
Функция 2.3
ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
Определяем является ли информационная база файловой (Истина) или серверной (Ложь).
Функция 2.4
ОперативнаяПамятьДоступнаяКлиентскомуПриложению() Экспорт
Данная функция возвращает объем оперативной памяти, которая доступна приложению (в гигабайтах). Вот у меня в системе доступно 3.9 гб:
Функция 2.5
РедакцияКонфигурации() Экспорт
Данная функция возвращает номер (строка) редакции конфигурации:
Функция 2.6
ЭтоWindowsКлиент() Экспорт
Данная функция возвращает Истина, если пользователь работает по windows на клиенте. Так же есть группа подобных функций, позволяющих определять где работает пользователь: ЭтоWindowsСервер(), ЭтоLinuxКлиент(), ЭтоLinuxСервер(), ЭтоMacOSКлиент(), ЭтоВебКлиент(), ЭтоМобильныйКлиент(), КлиентПодключенЧерезВебСервер(). Все функции работают через привилегированный режим.
Работа с датами
Функция 3.1
ПредставлениеЛокальнойДатыСоСмещением(ЛокальнаяДата) Экспорт
Данная функция возвращает дату со смещением по часовому поясу, в описании по формату "YYYY-MM-DDThh:mm:ssTZD" :
Функция 3.2
ИнтервалВремениСтрокой(ВремяНачала, ВремяОкончания = Неопределено) Экспорт
Полезная функция, возвращающая интервал времени строкой, в пример - вернет "1 день":
Функция 3.3
ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт
Данная функция вернет текущую дату пользователя по его имени:
Заключение
Спасибо за прочтенный материал. Знаю, что в той или иной степени, на ресурсе уже были подобные статьи с описанием подобного функционала. Со своей стороны хочу отметить, что данная статья - это своего рода "моя индивидуальная выжимка собственного опыта", накопленного при работе с типовыми конфигурациями на основе БСП. Предполагаю, что данная статья-шпаргалка будет полезна как и мне (чтобы не забыть возможности), так и вам - "если что-то не знали" - пожалуйста, тут есть что узнать и запомнить.
Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, если у вас есть желание, чтобы данный комплекс статей наполнялся практическими материалы для программистов - я не откажусь от поддержки как данной статьи, так и всего комплекса статей в целом.
Предыдущие материалы
Так же, я прошу посмотреть мои предыдущие статьи, посвященные базовым возможностям типовых конфигураций:
Специальные предложения
ПроверитьПроведенностьДокументов() -возвращает массив непроведенных документов из списка переданных ссылок на документы. Интересно, сколько лет нужно этим кхм. людям чтобы научиться именовать методы и объекты.
firma_unix; dabu-dabu; Jestery; ivanov660; CyberCerber; brr; zqzq; morin; UniversaLL; davdykin; rpgshnik; + 11 – Ответить
По собственному применению БСП, могу сказать что методы в ней последнее время очень быстро устаревают - такая тенденция.
В частности касается работы "длительных операций".
Напишу статью в дальнейшем по применению длительных операций.
После того как "ПолучитьНомерНаПечать" уехал в "НомерНаПечать" стараюсь не использовать как БСП, так и вообще разные типовые процедуры и функции конфигураций, становится себе дороже.
maksa2005; user717534; user1346935; slicem; oninfostart; modestry; ybatiaev; AlkB; Yashazz; Serega-artem; Azamatex; surikateg; morin; zqzq; garik79; + 15 – Ответить
(4) Тут как раз рецепт простой. Любой вызов типового модуля или объекта, нужно оборачивать в свой метод, и если функциональность переедет, то проблем не будет особых
(4)Может выпустить надстройку над БСП (и другими типовыми библиотеками) - где разместить функциональность в небольшом количестве ) модулей (не 1С Совместимых, зато лаконичных) - так, чтобы минимизировать последующие переносы/удаления функций - а если таковые и будут - то делать обратную совместимость (с указанием obsolete и выводом таких вызовов в ж/р (для последующего выявления и исправления в коде), можно и спец инструмент добавить - анализирующий код на предмет вызовов таких obsolete (устаревших) функций).
Именовать модули можно достаточно лаконично и обобщённо. Я бы выделил несколько общих "классов" - и сосредоточил в них функциональность - как-будто это действительно классы-расширения (хелперы - как их ещё называют в других языках). В принципе - подключив расширения IDE и препроцессор можно было бы даже реализовать авто-привязку этих функций прям к исходным обеъктам (например к документу объекту/ссылке или к печатной форме: расширение IDE бы позволяло бы видеть эти функции именно в контексте объектов которым они привязаны (через точку_, ну а далее либо делать сразу подстановку нужного вызова из общего модуля, либо оставлять так как есть - а замену уже будет делать препроцессор - например при передаче из IDE в ИБ через агента-конфигуратора - как это делает EDT, просто тут возникает доп звено трансляции).
И так далее (вообще так модулей может набежать достаточно много - больше сотни - в лёгкую - но все они будут сжатыми представителями общей функциональности, и могут содержать достаточно много процедур - но все они - лишь переадресация в другие модули - где они уже будут иметь реализацию алгоритмов).
Отдельно нужен будет модуль для универсального вызова сервера (с общей функцией универсального вызова (с преобразованием типов при необходимости), в т.ч для удобного вызова на сервере функциональности из обработок).
Отдельно нужен будет модуль для универсального фонового вызова функции (с общей функцией универсального вызова (с преобразованием типов при необходимости), несмотря на то, что есть модуль "ФоновоеЗаданиеМенеджер", в т.ч для удобного вызова в фоне функциональности из обработок).
Отдельно нужен будет модуль для универсального внешнего вызова функции (с общей функцией универсального вызова как COM таки WS соединений, с кешированием соединений, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешниеСоединениеМенеджер").
Отдельно можно сделать модуль для универсального вызова функции внешней компоненты (с общей функцией универсального вызова, с кешированием внешних компонент, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешнияКомпонентаМенеджер", в т.ч для удобного вызова во внешнем контексте функциональности из обработок).
Отдельно нужен будет модуль для универсального кешированного вызова (с общей функцией универсального вызова, с преобразованием типов при необходимости, несмотря на то, что есть модуль "КешированиеМенеджер").
Это всё-чтобы не плодить кучу лишних модулей и сделать работу с данной функциональностью наиболее удобной!
А вот для привилегированных вызовов такой модуль делать не стоит - ибо это уже вопросы безопасности.
Можно всё это разбить даже на несколько отдельных частей - базовые и расширенные (устанавливаемые путём объединения конфигураций)
Внутри можно либо делать поддержку всех БСП (начиная с какой-то опр редакции - просто проверяя текущую редакцию и перенапрравляя вызов в нужный модуль стандартной библиотеки), либо делать скользящую поддержку (то есть для каждой версии БСП отдельно, но скорее тут тоже гибридно выйдет - например выпускать отельные библиотеки для подредакций БСП (3.0, 3.1, 3.2. ), а для релизов - осуществлять уже общую поддержку внутри всех вариантов).
Ну, как написал, это может быть единая библиотека (набор библиотек) не только для БСП но и для других стандартных библиотек. кстати, не обязательно, даже типовых - просто выпускать доп расширения (ставящиеся объединение конфигураций), которые будут соблюдать общий принцип именования пространства имён.
Так же можно делать модули с улучшенным функционалом - если сообщество напишет лучшие алгоритмы, чем будут в стандартных библиотеках - именовать переадресацию на их реализацию можно в таких общих модулях (устанавливаемых отдельно):
СтрокаМенеджерРасширение
СтрукутраМенеджерРасширение
Но это только для пересекающегося функционала.
И ещё - если в процессе эволюции БСП у функции меняется состав аргуменнтов
- то если в сторону расшироения - проблем нет - в переадресации дописываются новые необязательные аргументы
- если в сторону сокращения и/или изменения порядка - нужно стараться сохранить поддержку старого порядка - т.е. нужно будет проверять типы аргументов и перетасовывать их
- А вот если типы будут идентичны - тогда придётся выпускать проверять текущую версию БСП - которую задаст программист при инициализации библиотеки (а не версию из конфигурации) - если программист уже перевёл код на новую версию - то он изменит и эту версию. На переходный период - так же должны быть функции с заданной версией БСП в окончании - сначала можно будет переходить на них, потом их можно будет быстро найти заменить на без окончания-версии, когда версия БСП при инициализации сменится
Вообще тут много чего ещё можно придумать!
Например привнести поддержку элементов АОП - коли не типовые функции будут вызываться вместо типовых в самом низу иерархии вызовов (с последующей переадресацией) - то этими вызовами можно управлять более расширено!
Так же я, настоятельно бы, ввёл модуль
СобытияФормыМенеджер - через который бы осуществлял бы ручную "подписку" (и ручную инициация событий) для различных событий формы (на которые в платформе не возможно обобщённо подписаться).
Ну и вообще добавил ещё и общий модуль
СобытияМенеджер - для всех остальных событий, на которые тоже нельзя универсально подписаться (по сути - просто некоторые встроенные обработчики, но, не только платформенные - тут могут быть и БСП-шные функции)
Но, конечно, чтобы эти события заработали - их нужно будет интернировать в свои метаданные и в типовые модули тоже - для этого нужно будет сделать отдельную интеграционную конфигурацию - вставляющую код в типовой код (или какой-то отельный инструмент - обрабатывающий тексты модулей для такой вставки)
ну, а если уж совсем по-хорошему - то для функций такой библиотеки можно будет создать правильные описания (комментарии) и на их основе сгенерировать справку по использованию (а-ля синтаксиис-помошник) - которой ТАК НЕ ХВАТАЕТ для БСП (и других стандартных библиотек), в которой можно будет делать поиск (и видеть для каких версий платформы и БСП предназначена та или иная функциональность - и делать фильтр по этим версиям, и не только по версия - а например по подсистемам тоже).
Читайте также: