Доброго времени суток. Есть типовая конфигурация на основе БСП . Нужно добавить нетиповую ТЧ в типовой справочник и что бы пользователь мог её заполнять. Для этого в справочник добавил свою ТЧ и создал свою форму элемента, на которой разместил свою ТЧ. Что бы не трогать типовую форму элемента справочника создал общую команду с таким содержимым :

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ОткрытьФорму("Справочник.Номенклатура.Форма.Нетиповая_ФормаЭлемента", ПараметрКоманды);

    КонецПроцедуры
```

И разместил команду на форме элемента справочника. В режиме предприятия открываю нужный элемент справочника, открываю свою форму с тч, заполняю, сохраняю. Теперь когда сохраняю сам элемент справочника появляется сообщение "Данные были изменены или удалены другим пользователем".
В своей форме разместил следующий код:

```1c
    &НаСервере
    Процедура ОбработкаОповещенияНаСервере()
    ЗначениеВРеквизитФормы(Объект.Ссылка.ПолучитьОбъект(),"Объект");
    КонецПроцедуры
```

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
 ОбработкаОповещенияНаСервере();
КонецПроцедуры

Не помогло... Может подсказать как избавить от этого сообщения? Я правильно понимаю что нужно обновить основную форму элемента справочника?
---
Если хотите по простому, то при открытие своей формы, просто закройте стандартную. А потом после записи в своей форме, откройте стандартную, а свою закройте.
---
вы открыли элемент, форму, потом по команде открыли новую форму того же самого элемента, изменили-записали
вот тут то и возникает конфликт, т.к. прежняя, исходная, форма осталась без изменений

смысл в том, что необходимо открыть одну форму элемента, тогда конфликта не будет
варианты есть, по сложности реализации
1. разделить открытие форм по правам пользователей
2. выполнить доработку через расширение
3. назначить вашу новую форму основной
---
вот тут то и возникает конфликт, т.к. прежняя, исходная, форма осталась без изменений

Можно ли исходную форму которая осталась без изменений, оповестить от том что произошли изменения? Без доработки основной типовой формы?
---
Если хотите по простому, то при открытие своей формы, просто закройте стандартную. А потом после записи в своей форме, откройте стандартную, а свою закройте.
---
Благодарю, попробую.
А можете огласить сложный способ?
---
Программно вывести на стандартную форму. Тогда ни каких конфликтов не будет, так как все будет в основной форме. И при этом стандартная форма не меняется, так как все элементы будут выведены программно.
---
Сначала я пробовал обойтись вообще без общей команды.
Т.е: вывести кнопку и привязанную к ней команду на форму программно.
Т.к. конфа на БСП проблем вывести кнопку на форму программно без изменений не составило труда (код описал в общем модуле). Однако команду так и не смог привязать к ней. Везде пишут что команда обязательно должна находиться на форме. Или это не так? Можете привести пример?
В форме нашёл процедуру кажется подходящую для этого (думаю через неё можно вывести программно:

"ПодключаемыеКомандыКлиент.ВыполнитьКоманду"
---
Не нужны ни какие команды и прочее, просто в конце стандартной процедуры ПриОткрытие Вызовите свою процедуру и в ней на сформированной форме, нарисуйте свою табличную часть.
Остается Вам разобраться как программно выводить реквизиты и таблицы на форму. Статей на данную тему хватает.
---
просто в конце стандартной процедуры ПриОткрытие Вызовите свою процедуру

Т.е. нужно типовую форму дорабатывать?
---
По сути да. Но только программно.
---
Это как? :)
Сидит себе пользователь, никого не трогает, редактирует элемент справочника, тут вдруг ни с того ни с сего форма элемента закрывается, спустя какое-то время опять открывается? :)

Или как понимать "при открытие своей формы, просто закройте стандартную. А потом после записи в своей форме, откройте стандартную, а свою закройте"?
---
Не выдумывайте. Пользователь открывает стандартную форму и из нее открывает не стандартную. Когда открывается не стандартная форма, стандартная закрывается программно. После записи не в стандартной форме, открывается стандартная форма.
Если в этот момент другой пользователь открыл форму, то у него ничего не произойдет, кроме как ошибка при записи. Но это проблема совместной работы при работе с одним элементом, решается проверками открытия формы у пользователей.
---
Я и не придумываю, судя по вашим же словам

Пользователь открывает стандартную форму и из нее открывает не стандартную. Когда открывается не стандартная форма, стандартная закрывается программно. После записи не в стандартной форме, открывается стандартная форма.

Если пользователь внес изменения в типовой форме и потом открывает нестандартную форму, то типовая закроется и чтобы открыть нестандартную форму нужно обязательно записать элемент в базу? а если этого делать не нужно по каким-то причинам, то не стандартную форму не открыть никак? или как вы себе представляете работу в предложенных вами условиях?
---
Тут все зависит от автора поста. Вариант простой, но ни кто не говорил что удобный. Также нам неизвестно, возможно нужно вносить изменения только в не типовую табличную часть. Ведь как часто редактируется карточка номенклатуры после создания?

Вариант сохранять изменения или нет, можно оставить пользователю, это все детали.
А все остальное полемика, мы с Вами так можем весь день спорить.
---
Если не хотите размещать громоздкий год в форме, то можно это все вывести в свой общий модуль. А в форме простой вызов с передачей формы.
---
решил пойти по сложному пути. Попробовал ещё раз разместить кнопку с командой полностью программно.

В типовой форме, в событии "ПриСозданииНаСервере" нашёл процедуру

"ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);"

В ней в самом конце добавил такой код:

```1c
    Команда = Форма.Команды.Добавить("ДействияМояКоманда");
    Команда.Действие = "Свой_ОбщийМодуль.КомандаПрограммно";

    Кнопка = Форма.Элементы.Добавить("МояКоманда", Тип("КнопкаФормы"), Форма.Элементы.ФормаКоманднаяПанель);
    Кнопка.Заголовок = "МояКоманда";
    Кнопка.ИмяКоманды = "ДействияМояКоманда";
```

В "Свой_ОбщийМодуль" разместил свою процедуру. В результате кнопка на форме отображается, но при нажатии ничего не происходит. Можете подсказать в чем ошибка?
---
Для начало проверьте, вызывается ли вообще Ваша процедура при нажатие команды.
---
Нет, не вызывается. Не могу привязать к программной созданной кнопке, команду из общего модуля
---
Как тест, попробуйте создать процедуру в форме и вызвать её. Не проверял, но скорее всего, просто нельзя вызвать процедуру общего модуля кнопкой.
Необходимо вызвать процедуру в форме, а из нее вызвать общий модуль.
---
Хорошо, спасибо. Буду пробовать. Для начала воспользуюсь вашим советом (открыть свою форму, закрыть стандартную). По поводу программного добавления на форму думаю создам отдельную тему.