0. ids79 2185 23.11.18 17:44 Сейчас в теме

Использование подсистемы БСП "Заполнение объектов"

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. killovolt 314 24.11.18 19:12 Сейчас в теме
Хорошее описание, писал аналогичную статью про заполнение объектов через вызов клиентского метода. Ваше бы описание на тот момент сильно упростило мне реализацию.
2. ids79 2185 04.12.18 10:05 Сейчас в теме
(1) Спасибо. Хотел раньше написать статью, но вот, только сейчас собрался.
3. AnderWonder 23 15.01.19 14:11 Сейчас в теме
В БСП ветки 2.4.5 есть баг, который не позволяет подключить подсистему к регистрам сведений. Нужно поправить функцию ЗарегистрироватьИсточник в модуле ПодключаемыеКоманды:

//Исправление бага БСП - не учитывались регистры сведений
//Источник.ТипСсылкиДанных = Тип(Источник.Вид + "Ссылка." + ОбъектМетаданных.Имя);
Если СтрНайти(Источник.Вид, "РЕГИСТРСВЕДЕНИЙ") Тогда 
     Источник.ТипСсылкиДанных = Тип(Источник.Вид + "НаборЗаписей." + ОбъектМетаданных.
Иначе
    Источник.ТипСсылкиДанных = Тип(Источник.Вид + "Ссылка." + ОбъектМетаданных.Имя);
КонецЕсли;
// Исправление бага БСП
Поручик; +1 Ответить
4. ids79 2185 15.01.19 16:11 Сейчас в теме
(3)Спасибо за дополнение.
5. PLAstic 213 21.05.19 19:13 Сейчас в теме
Хотел бы добавить, что нет ни одного примера команды из формы документа. Там есть нюанс.
Команду мы вызываем из уже открытой формы, но по алгоритму создаётся ещё одна форма и в ней вызывается обработчик команды (если у команды значится, что он в модуле формы). Так вот, этой форме в качестве владельца передаётся наша открытая форма.
Мне требовалось выбрать интерактивно некий документ и передать управление обработчику оповещения. Я указал, что он находится не в модуле формы (ЭтаФорма), а в модуле её владельца (ЭтаФорма.Владелец). Тогда по завершении выбора управление перешло в мою открытую форму в процедуру обработки оповещения.
6. ids79 2185 21.05.19 21:12 Сейчас в теме
(5)
Хотел бы добавить, что нет ни одного примера команды из формы документа

Почему же, первая команда "Команда из формы обработки" как раз такого вида.
Конечно, нужно учитывать, что она выполняется не в контексте формы, из которой вызывается.
7. PLAstic 213 22.05.19 10:23 Сейчас в теме
(6) Сверим код?

	Команда = КомандыЗаполнения.Добавить();
	Команда.Идентификатор = "ЗаполнитьИзУстановкиГСМ";
	Команда.Представление = "Заполнить по расходу ГСМ";
	Команда.Важность = "Важное";
	Команда.ВидимостьВФормах = "ФормаДокументаУпр";  // здесь "ФормаЭлемента" из твоего примера не проходит, это документ
	Команда.МножественныйВыбор = Ложь;
	Команда.РежимЗаписи = "НеЗаписывать";
	Команда.ИзменяетВыбранныеОбъекты = Истина;  // обязательно указание, чтобы блокировать команду без прав. (см.документацию)
	Команда.ИмяФормы = "Форма.ФормаДокументаУпр";  // у меня несколько форм документа - обычная и две управляемые
	Команда.Обработчик = "КомандаЗаполнитьИзУстановкиГСМ";
Показать


Присутствуют неочевидные параметры, которые в примере не были раскрыты. Выяснил отладкой и чтением документации БСП.
Спасибо, что дал стартовый код.
8. ids79 2185 22.05.19 11:21 Сейчас в теме
(7)Параметры "ВидимостьВФормах" и "ИзменяетВыбранныеОбъекты" - описаны в статье. Параметр "ИмяФормы" обязательно указывать только если не указан параметр "Обработчик". Или, если у документа есть обычные формы выдается ошибка?
9. PLAstic 213 22.05.19 11:51 Сейчас в теме
(8) Я предлагаю сравнить с примером из статьи и признать, что это пример не для документа, а для обработки (или даже справочника, раз там "ФормаЭлемента") и добавить в статью пример для документа с описанием всех ваших дополнений. Например, закомментарить параметр "ВидимостьВФормах ", раз он не всегда обязателен, и дать корректное значение в случае, когда он нужен (вместо явно некорректного "ФормаЭлемента").
Ещё неплохо дать бы ссылку на ИТС. Например, https://its.1c.ru/db/bsp302doc#content:35:1:issogl2_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%­BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4_%D0%B7%D0%B0%D­0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F
10. ids79 2185 22.05.19 12:58 Сейчас в теме
(9)Название формы - это мелочь, естественно оно должно быть разным при разных вариантах использования. Не думаю, что имеет смысл делать разные варианты с разными названиями форм. В примерах я постарался покрыть большинство различных вариантов использования. Конечно же это не все.

В предыдущем посте я не много напутал. Параметр "ИмяФормы" - это имя формы обработки заполнения, а не имя формы объекта назначения. Можно не заполнять, если форма в обработке одна и указан параметр "Обработчик".

Ссылка в тему, спасибо.
11. inf012 13.06.19 07:35 Сейчас в теме
Здравствуйте. А можно использовать этот механизм для переопределения команды заполнения, а не для создания новой кнопки и команды?
Надо, чтобы выполнилась типовая процедура заполнения и после нее необходим ряд "косметических" действий с ТЧ.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день