Использование функционала БСП в нетиповых объектах

27.12.24

Разработка - БСП (Библиотека стандартных подсистем)

Расскажу, как использовать полезный функционал - инструментарий разработчика «1С:Библиотека стандартных подсистем» (БСП) в своих объектах метаданных. Статья будет полезна как шпаргалка при написании собственных объектов метаданных.

Содержание

  1. Подключаемые команды
  2. Отчет «Связанные документы»
  3. Команды печати
  4. Добавление функционала проверки даты запрета изменения
  5. Версионирование
  6. Присоединенные файлы

 

Подключаемые команды

Данный функционал позволяет подключать к объектам команды из БСП. Например: отчет «Движения документа», отчет «Связанные документы», команды печати и т.д.

 
1. В форму документа добавляем код:
 
2. Форма списка:

 

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

 

Отчет «Связанные документы»

Для подключения к документу отчета «Связанные документы», кроме действий, выполненных в п.1, необходимо добавить в критерий отбора «СвязанныеДокументы» наш документ:

 

 

На вкладке «Состав» необходимо отметить реквизиты, по которым будет строиться отчет «Связанные документы».

 

Команды печати

Для подключения команд печати необходимо выполнить действия, указанные в п. 1, и добавить следующий код:

 
 1. Модуль менеджера документа

 

2. И самое главное, без этого ничего не заработает: в процедуру общего модуля «УправлениеПечатьюПереопределяемый.ПриОпределенииНастроекПечати» добавить наш документ.

Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт
    
    Настройки.ОбъектыПечати.Добавить(Документы.СвойДокумент);
    
КонецПроцедуры

 

Добавление функционала проверки даты запрета изменения

1. Форма документа:

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    
    // СтандартныеПодсистемы.ДатыЗапретаИзменения
    ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
    // Конец СтандартныеПодсистемы.ДатыЗапретаИзменения
    
КонецПроцедуры

#КонецОбласти
  1.  

2. Добавляем наш документ в список источников подписки на событие «ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента».

3. В процедуре «ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения» общего модуля «ДатыЗапретаИзмененияПереопределяемый» добавим наш документ:

Процедура ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения(ИсточникиДанных) Экспорт
    
    ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных, "Документ.СвойДокумент", "Дата");
    
КонецПроцедуры

 

Версионирование

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // СтандартныеПодсистемы.ВерсионированиеОбъектов
    ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
    
КонецПроцедуры
  1.  

2. В источники подписки на событие «ЗаписатьВерсиюОбъекта» добавить наш документ.

3. Добавить наш документ в определяемый тип «ВерсионируемыеДанные».

 

Присоединенные файлы

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

2. В состав определяемых типов «ПрисоединенныйФайл» и «ПрисоединенныйФайлОбъект» добавить справочник СвойДокументПрисоединенныеФайлы, а в тип «ВладелецПрисоединенныхФайлов» - наш документ.

3. В список источников подписки на событие «ПереопределитьПолучаемуюФормуПрисоединенногоФайла» включить справочник СвойДокументПрисоединенныеФайлы, в список источников подписки «УстановитьПометкуУдаленияПрисоединенныхФайлов» добавить наш документ.

 

Автор: Алексей А.

См. также

БСП (Библиотека стандартных подсистем) Программист Бесплатно (free)

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    4100    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    1098    Iaskeliainen    2    

7

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    3590    milkers    3    

12

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1846    PROSTO-1C    0    

19

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

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

08.10.2024    1439    PROSTO-1C    4    

14

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

04.10.2024    2420    MadRave    11    

26

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    2601    MadRave    5    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ivv1970 29 27.12.24 14:49 Сейчас в теме
Дежа вю какое-то. Как будто перечитываю документацию по БСП на ИТС....
ltfriend; user1428473; rozer; Созинов; +4 Ответить
2. quazare 3871 27.12.24 18:25 Сейчас в теме
ну а че - много кто любит сейчас словить хайп на сокращении БСП !!!

а самое интересное и не написал - "внедрение механизма печати в собственный документ" -

https://infostart.ru/1c/articles/1382297/

вру.... написано - но как-то не заметно тут
3. rpgshnik 3819 28.12.24 05:24 Сейчас в теме
Очень крутая и компактная шпаргалка, люблю такие публикации. А хейтеры просто завидуют простоте подачи, автор пиши ещё! Заберу в блог.
GalKam1; PROSTO-1C; AlexeyChernyev; Dmitrij-2; +4 Ответить
4. webester 26 28.12.24 10:30 Сейчас в теме
(3)Не пишу, не в плюс ни в минус, уже давно в таких статьях(раньше писал). Но хочется ответить на вот это
хейтеры просто завидуют простоте подачи
мне тоже кажется, что часто человек пишет негативный коммент в таких статьях когда вот он сидел разбирался в документации, тратил время и силы, а тут на тебе на блюдечке с голубой каемочкой. Вот он и пишет: "а что документацию уже отменили?" и прочее. Это действительно не к чему. Но такие статьи вредные. По нескольким причинам:
1. Любой фреймворк изменяется. И понадерганные куски кода завтра перестанут работать но продолжать забивать поисковую выдачу. Или будут работать не так как раньше, или их будет недостаточно. В любом случае все устаревает.

2. Документация по БСП достаточно подробная. У разработчика должен быть рефлекс при слове "БСП" в голове должно появляться слово "ИТС". К каждому пункту в этой статье, должна вести ссылка на документацию. Их нет. Ни одной.

3. Я много путался в БСП раньше, разобраться там с наскоку действительно сложно. Но когда разберешься ты сразу идешь в нужное место и знаешь где и как искать. Примеры в статье вредны тем, что позволяют этого избежать. Вставлять готовые куски кода, не включая голову. Это медвежья услуга, с одной стороны экономишь время, с другой стороны везде соломки не подложишь. Учись пользоваться документацией.
user1436515; Viktor_Ermakov; dhurricane; rpgshnik; +4 Ответить
5. dhurricane 28.12.24 13:15 Сейчас в теме
(4) Поддержу и немного дополню. Очень часто в таких шпаргалках допускаются ошибки или неточности в описании совершаемых действий, т.к. сам автор интегрировал в свое время БСП в нетиповые объекты по примерам из конфигурации, а не по документации на ИТС. Ну и самая частое замечание к таким публикациям в комментариях: "Где указание версии БСП?"
PROSTO-1C; +1 Ответить
7. user2116242 01.01.25 20:34 Сейчас в теме
(4) Тогда прошу помочь разобраться в БСП. Допустим, я хочу включить в самописном документе версионирование. Куда мне идти на ИТС? Можно ссылку?
12. dhurricane 02.01.25 21:26 Сейчас в теме
(7) Шаг 1. Определяете версию БСП в вашей конфигурации.
Первый способ сделать это - открыть в режиме предприятия регистр сведений "Версии подсистем" и найти запись для "СтандартныеПодсистемы". Будет что-то вроде "3.1.9.432", нас интересуют первые три числа версии.
Второй способ узнать версию - в конфигураторе открыть общий модуль "ОбновлениеИнформационнойБазыБСП" и в процедуре "ПриДобавленииПодсистемы" глянуть версию.

Шаг 2. Открываете ИТС и переходите к документации к БСП:
Инструкции по разработке на 1С / Библиотека стандартных подсистем / Библиотека стандартных подсистем <Версия>

Шаг 3. Раскрываете главу 3. Здесь описаны шаги, как встраивать подсистемы БСП в свои конфигурации. Важно отметить, что повествование исходит из того, что Вы разрабатываете новую конфигурацию на базе БСП. Поэтому если Вы дорабатываете типовую конфу, то некоторые пункты для Вас будут неактуальны. Например, будут представлены требования по созданию подписок на событие, которые на деле уже будут в Вашей конфигурации. Или будет описание, как разместить настройки всей подсистемы, которые также уже в Вашей типовой конфигурации есть.

Шаг 4. В главе 3 находите нужную Вам подсистему - Версионирование объектов. Читаете параграф "Настройка". Часть рекомендаций для Вас будет неактуальна (см. шаг 3). Вероятнее всего можете начинать читать с абзаца "Принять решение по поводу объектов метаданных конфигурации ссылочного типа...", где пошагово описано, какие доработки необходимо выполнить для Вашего версионируемого объекта конфигурации.

В качестве примера ссылка, актуальная для версии БСП 3.1.9.
Прикрепленные файлы:
tanat74; Mahon83; PROSTO-1C; Torin57; +4 Ответить
13. user2116242 03.01.25 16:06 Сейчас в теме
(12) Супер! Спасибо за помощь!
6. dhurricane 28.12.24 13:49 Сейчас в теме
Расхождения с документацией к БСП 3.1.9:
- Для подключаемых команд в форме списка нет обработчика "ПриАктивизацииСтроки" для таблицы.
- Также для формы списка не описана настройка поля "Ссылка", а именно установка флажка "Использовать всегда".
- Документ, для которого проверяется дата запрета, должна быть включена в подписку "ПроверитьДатуЗапретаИзмененияПередУдалением".
- При описании источника данных для проверки даты запрета не указаны раздел и поле объекта.
- В модуле менеджера версионируемого документа необходимо добавить экспортную процедуру "ПриОпределенииНастроекВерсионированияОбъектов" (в действительности вызов этого метода подавляется блоком попытки-исключения, но стоит ли закладываться на это поведение типовой?).
- Новый справочник с присоединенными файлами необходимо включить в состав плана обмена "ОбновлениеИнформационнойБазы".
Artem-B; Batman; +2 Ответить
8. user2116242 01.01.25 22:25 Сейчас в теме
(6) Автор кратенько рассказал как добавить версионирование в свой документ:

Версионирование
1. В модули формы документа и формы списка добавить код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
КонецПроцедуры
2. В источники подписки на событие «ЗаписатьВерсиюОбъекта» добавить наш документ.
3. Добавить наш документ в определяемый тип «ВерсионируемыеДанные».


Где на диске ИТС мне эту информацию найти?
Мне нужно идти в раздел Главная -> Инструкции по разработке на 1С-> Библиотека стандартных подсистем -> Библиотека стандартных подсистем 3.1.9 -> Глава 3. Настройка и использование подсистем при разработке конфигурации. Правильно? И далее раздел "Версионирование объектов" https://its.1c.ru/db/bsp319doc#content:4:hdoc:issogl1_версионирование_объектов

Вот этой информации, как правило, и не хватает.
Полезная информация для тех у кого нет подписки на ИТС. На ИТС есть тест-драйв https://its.1c.ru/user/activation/testdrive/ Вы туда заходите, регистрируетесь и получаете демо-доступ на неделю. В течение недели можно пользоваться документацией.
Прикрепленные файлы:
10. webester 26 02.01.25 09:15 Сейчас в теме
(8)
Где на диске ИТС мне эту информацию найти?
Мне нужно идти в раздел Главная -> Инструкции по разработке на 1С-> Библиотека стандартных подсистем -> Библиотека стандартных подсистем 3.1.9 -> Глава 3. Настройка и использование подсистем при разработке конфигурации. Правильно? И далее раздел "Версионирование объектов" https://its.1c.ru/db/bsp319doc#content:4:hdoc:issogl1_версионирование_объектов

Да правильно туда идти.
Где на диске ИТС мне эту информацию найти?
Ничего не понимаю в вашем вопросе, прям там и найти эту информацию где вы указали. Какой именно информации не хватает?
Прикрепленные файлы:
11. user2116242 02.01.25 17:05 Сейчас в теме
(10)
Ничего не понимаю в вашем вопросе, прям там и найти эту информацию где вы указали. Какой именно информации не хватает?

Это от неуверенности.
Студент может спросить преподавателя чем гидравлика отличается от пневматики? Но это не потому что студент имбецил. Просто студент неуверен. Это психология.

Я не знаю наверняка что этой информации достаточно. Возможно, есть еще какой-то раздел БСП с актуальной информацией которую я упускаю. Если поискать версионирование на ИТС, то поиск почему-то отправляет в 4 главу, а там ничего интересного. Это наводит на мысль о том что я плохо ориентируюсь в БСП.
Прикрепленные файлы:
9. vitalbasl 154 02.01.25 09:00 Сейчас в теме
14. alexey123perm 22 07.01.25 22:14 Сейчас в теме
Добавил к себе. Хорошая статья. В качестве дополнения предлагаю подключение к "Дополнительным свойствам"

https://infostart.ru/1c/articles/1973921/
15. booksfill 09.01.25 15:47 Сейчас в теме
Кажется, вот это не описано на ИТС, а именно, после
"добавить в критерий отбора «СвязанныеДокументы» наш документ" рискуете на реальной базе получить реструктуризацию базы на несколько часов.
Почему такое и всегда ли будет, не знаю. Просто рекомендую быть осторожней.

Проверено на практике, на УПП.
Оставьте свое сообщение