Решение ошибок "Нет кнопки Создать на основании" или "Задвоились пункты в меню Создать на основании"

30.08.21

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

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

Скачать исходный код

Наименование Файл Версия Размер
Пример на котором решал данную задачу. Расширение "Тендер" для Business Automation Software for small company. PROF (1.6.15.1) она же УНФ!
.rar 226,39Kb
1
.rar 226,39Kb 1 Скачать

Задача: добавить два новые документа в типовую конфигурацию “Bas small business” (УНФ). Причем один из документов должен вводиться на основании другого.

Ошибка №1 В пользовательском режиме кнопка «Создать на основании» не появилась

Ход решения: как оказалось, недостаточно просто определить, какой документ является основанием для другого. Нужно понимать, что все типовые конфигурации используют БСП (Библиотека стандартных подсистем), т.е. готовые программные блоки, общие при создании любой конфигурации. Например, работа и отображение кнопок Печати, Создать на основании и не только являются частью механизма БСП. Помогла мне разобраться в этом подходе статья с ИТС "Подключаемые команды" .

В итоге мне пришлось добавить согласно инструкции процедуры и функции в модуль формы и в модуль менеджера нового документа.

Вот пример модуля менеджера моего нового документа. Привожу этот пример, т.к. поменял процедуру ДобавитьКомандуСоздатьНаОсновании не так, как в инструкции.

После этого, о чудо! Кнопка "Создать на основании" появилась, но тут появилась вторая ошибка №2:

Меню задвоилось! Вспомнил, что подобную ошибку встречал уже в своей практике, но решение сразу не нашел. Тогда решил упереться и докопаться до причины. Оказалось

Общий.Модуль.ПодключаемыеКоманды процедура ВывестиКоманды

В этом месте в таблице значений ВидыКоманд две строки СозданиеНаОсновании!

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

В итоге задача решается двумя вариантами:

1. ОбщийМодуль.СозданиеНаОснованииПереопределяемый  отключаем использование добавления команд ввода на основании в одном из случаев.

Но этот способ может повлиять на работу в других местах программы, где этот механизм нужен. Хотя я проверил документ ЗаказПокупателя (стандартный документ) и убедился, что кнопки Создать на основании остались. Но, на всякий случай, решил задачу вторым вариантом:

2. Там где формируется ТЗ ВидыКоманд таблицу нужно аккуратно свернуть, но для этого нужно поменять две процедуры ОбщийМодуль. ПодключаемыеКомандыПереопределяемый

И ОбщийМодуль.ПодключаемыеКоманды процедура ВидыКоманд()

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

БСП УНФ Создать на основании;

См. также

БСП. Добавляем отчет в меню Отчеты

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

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3128    John_d    10    

89

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1684    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

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

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    784    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

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

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2607    YA_418728146    11    

43

1С:БСП Дополнительные реквизиты и сведения

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

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

19.01.2024    6251    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

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

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

15.01.2024    3883    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Hatson 529 16.11.21 19:18 Сейчас в теме
Этого не достаточно. Нужно прописать объект метаданных в процедуру
СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты);
TerveRus; JIEX@; yaroslavch; +3
2. MaxTolya 16 03.04.23 12:42 Сейчас в теме
Кроме этого (проверено опытным путем на ЕРП), если добавить в эту же процедуру и тот документ, который вводим на основании, а в модуле менеджера этого документа сделать заглушки функций ДобавитьКомандыСозданияНаОсновании и ДобавитьКомандуСоздатьНаОсновании, то задвоения строк не будет.
// Определяет список команд создания на основании.
//
// Параметры:
//   КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
//       См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//   Параметры - Структура - Вспомогательные параметры. Для чтения.
//       См. описание 2 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
КонецПроцедуры

// Добавляет команду создания документа "мо_АктОНепрохождениеВходногоКонтроля".
//
// Параметры:
//   КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
//       См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт

	Возврат Неопределено;
КонецФункции

Показать
dimanich70; +1
Оставьте свое сообщение