Вход | Регистрация
 

Внешняя обработка ЗаполнениеОбъекта без запроса о записи документа?

Внешняя обработка ЗаполнениеОбъекта без запроса о записи документа?
Я
   AlexTimin
 
05.10.21 - 13:46
Всем привет. Нужно заполнить ТЧ документа, перед этим показав пользователю форму с параметрами.
Используется Внешняя обработка с типов ЗаполнениеОбъекта и командой ОткрытиеФормы.
Так вот после нажатия на кнопку заполнения в форме нового документа система просит записать документ, либо Отмена. Как "убрать" типовую проверку на запись объекта?
БСП 3.1.3
   Kassern
 
1 - 05.10.21 - 13:51
(0) а причем тут Внешняя обработка ЗаполнениеОбъекта? Скорее всего при заполнении используете какую нибудь типовую функцию, которая просит записать док перед заполнением. Так как в противном случае не сможет какие нибудь записи в регистры сделать. Если вы тот же код встроите в форму в какую нибудь кнопку, у вас так же будет просить записать новый док. Можете комментировать внутрянку кнопки в форме внешней обработки и увидеть что ничего не просит кнопка при нажатии)
   AlexTimin
 
2 - 05.10.21 - 13:54
(1) да куда там.
Специально закомментил все в процедуре ВыполнитьКоманду на форме, то же самое
   Андроны едут
 
3 - 05.10.21 - 14:01
Модифицированность = Ложь
   AlexTimin
 
4 - 05.10.21 - 14:10
(3) этот вариант поможет только если типовую конфу дорабатывать, а "это не наш метод" (с)
   pechkin
 
5 - 05.10.21 - 14:11
нужно тип обработки верно указывать.
   pechkin
 
6 - 05.10.21 - 14:12
   AlexTimin
 
7 - 05.10.21 - 14:23
(6) Видел, осознал, но в моем случае что то еще.
Что у меня в модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
    
  ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
  
  ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
  ПараметрыРегистрации.Версия = "1.0";
  ПараметрыРегистрации.Наименование = Метаданные().Представление();
  ПараметрыРегистрации.Информация = НСтр("ru = 'Заполнение документов передачи спецодежды");
  ПараметрыРегистрации.БезопасныйРежим = Ложь;
  
  МассивНазначений = Новый Массив;
  МассивНазначений.Добавить("Документ.ЗаказНаВнутреннееПотребление");
  МассивНазначений.Добавить("Документ.ЗаказНаПеремещение");
  ПараметрыРегистрации.Назначение = МассивНазначений;
  
  Команда = ПараметрыРегистрации.Команды.Добавить();
  Команда.Представление = НСтр("ru = 'Заполнение документов передачи спецодежды'");
  Команда.Идентификатор = "НСМ_ЗаполнениеТабличнойЧастиДокументовПередачиСпецодежды";
  Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
  //Команда.РежимЗаписи = "НеЗаписывать";

  //Команда.ПоказыватьОповещение = Ложь;

  
  Возврат ПараметрыРегистрации;
  
КонецФункции

Что в модуле формы:

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

Создаю новый документ заказ на внутр потребление, спрашивает:
Для выполнения операции "Заполнение документов передачи спецодежды" данные будут записаны. Продолжить?
   Мультук
 
8 - 05.10.21 - 14:42
(7) Я делал через
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();


А внутри формы по нажатию кнопки 

&НаКлиенте
Процедура ИмпортДумми()
    //Всякое

     НоваяСтрока = ВладелецФормы.Объект.Зарплата.Добавить();

    //Еще всякое

КонецПроцедуры
   DTX 4th
 
9 - 05.10.21 - 14:44
Натыкался на подобный косяк в БСП. Забил в итоге
   AlexTimin
 
10 - 06.10.21 - 10:53
В модуле ДополнительныеОтчетыИОбработки.ПриОпределенииКомандЗаполненияПодключенныхКОбъекту есть код, в котором строго прописано, что если вариант запуска
Если СтрокаТаблицы.ВариантЗапуска = ЗаполнениеФормы Тогда
   Команда.Обработчик  = "ДополнительныеОтчетыИОбработки.ОбработчикКомандыЗаполнения";
   Команда.РежимЗаписи = "НеЗаписывать";
Иначе
   Команда.Обработчик  = "ДополнительныеОтчетыИОбработкиКлиент.ОбработчикКомандыЗаполнения";
   Команда.РежимЗаписи = "Записывать";
КонецЕсли;

Следовательно при Серверном вызове (заполнениеФормы) отработает без вопроса о записи, в Клиентском с записью.. Пробовал менять это, помогает, работает как я хочу но как это отразится на других обработках и в дальнейшем вообще хз.
   runoff_runoff
 
11 - 06.10.21 - 11:06
(10) универсальное решение - добработки надо делать в расширении.. где в модуле менеджера обработки в процедуре ДобавитьКомандыЗаполнения можно явно указывать режим Записать/Не записать..
   DrZombi
 
12 - 06.10.21 - 11:08
(0) Если надо, что бы человек не мог писать такой документ самостоятельно, то попросту запрети ему запись, установив какой либо параметр в форме "Типо я тут только посмотреть" :)
   DrZombi
 
13 - 06.10.21 - 11:09
+ Прописав строчку в "Перед записью" (на форме документа) ... Условие проверки твоего параметра на Истину :)
   DrZombi
 
14 - 06.10.21 - 11:10
(10) Ересть, человек найдет, как записать :)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.