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

30.08.21

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

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

Скачать файл

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

08.10.2024    580    PROSTO-1C    3    

8

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

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

04.10.2024    1282    MadRave    11    

19

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

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

10.09.2024    1282    MadRave    1    

16

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    992    n_mezentsev    10    

8

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

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    3724    John_d    10    

52

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    4819    PROSTO-1C    12    

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

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

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

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