Как из модуля объекта вызвать внешнюю обработку
Добрый день. Подскажите пожалуйста, только учусь. Как из модуля объекта вызвать внешнюю обработку? Есть внешняя обработка которая перезаписывает документ в запрещенном периоде. Но если есть связанные документы, то программа не дает перезаписать документ основание. Я зашла в модуль объекта и в этом связанном документе ПропустилаПроверкуЗапретаИзменения. Всё работает. Но мне нужно, что бы эта проверкаЗапрета срабатывала только при условии, если документ перезаписывается именно из внешней обработки. Как получить эту внешнюю обработку?
По теме из базы знаний
- Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов
- Асинхронное программирование в 1с77 без внешних компонент. Обратные вызовы.
- Диадок. Подключаемый модуль. Отладка
- Выполнение внешней обработки по расписанию для управляемого и обычного приложения
- Работа с внешними обработками на управляемых формах
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Я написала в Модуле объекта документа
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать()
Но мне нужно, что бы это работало не для всех документов, а только при условии, когда запускается внешняя обработка.
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать()
Но мне нужно, что бы это работало не для всех документов, а только при условии, когда запускается внешняя обработка.
(6) Я во внешней обработке выбираю документы которые мне нужно перезаписать, там же его перезаписываю.
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать(),
Но если есть связанные документы (сч.фактуры), то их тоже нужно перезаписать. Для этого через отладчик, я нашла модуль в котором проходит запись документа и в нем прописала:
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектСФ.Записать(). У меня как бы всё работает.
Но я хочу написать условие, что
ВОТ ЭТО работает,
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
только если через внешнюю обработку делают вот ЭТО
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать(),
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать(),
Но если есть связанные документы (сч.фактуры), то их тоже нужно перезаписать. Для этого через отладчик, я нашла модуль в котором проходит запись документа и в нем прописала:
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектСФ.Записать(). У меня как бы всё работает.
Но я хочу написать условие, что
ВОТ ЭТО работает,
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
только если через внешнюю обработку делают вот ЭТО
ДокументОбъект. ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ОбъектДокумент.Записать(),
(9) Простите пожалуйста, но я не поняла.:(
Мой код во внешней обработке:
Для каждого СтрокаТЧ Из Объект.СписокЗначенийТЧ Цикл
Если СтрокаТЧ.Выбран Тогда
ОбъектДокумент = СтрокаТЧ.ВыбранныеДокументы.ПолучитьОбъект();
ОбъектДокумент.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения",Истина);
ОбъектДокумент.Записать();
КонецЕсли;
КонецЦикла
Т.е. я дополняю свой код и пишу во внешней обработке.
ОбъектДокумент.ДополнительныеСвойства.Вставить("ЭтоВнешняяОбработка", Истина)
Затем иду в модуль объекта и пишу,
Если ЭтоВнешняяОбработка = Истина Тогда
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина)
КонецЕсли;
Так не получается, потому что ЭтоВнешняяОбработка переменная не определена.
Мой код во внешней обработке:
Для каждого СтрокаТЧ Из Объект.СписокЗначенийТЧ Цикл
Если СтрокаТЧ.Выбран Тогда
ОбъектДокумент = СтрокаТЧ.ВыбранныеДокументы.ПолучитьОбъект();
ОбъектДокумент.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения",Истина);
ОбъектДокумент.Записать();
КонецЕсли;
КонецЦикла
Т.е. я дополняю свой код и пишу во внешней обработке.
ОбъектДокумент.ДополнительныеСвойства.Вставить("ЭтоВнешняяОбработка", Истина)
Затем иду в модуль объекта и пишу,
Если ЭтоВнешняяОбработка = Истина Тогда
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина)
КонецЕсли;
Так не получается, потому что ЭтоВнешняяОбработка переменная не определена.
(18)может быть я чего-то не понимаю, но:
Вы создали свою/воспользовались чьей-то обработкой, которая сформировала список нужных документов и их перепроводит.
Ваша задача сделать так, чтобы дата запрета изменения отключалась для документов, обрабатываемых(перепроводимых) данной обработкой, так?
Если все так, то в коде обработки вы добавляете нужное свойство, а в модуле объекта вы должны получить это свойство.
Сама обработка вам не нужна абсолютно.
В коде обработки вы делаете:
В модуле документа вы делаете:
Вы создали свою/воспользовались чьей-то обработкой, которая сформировала список нужных документов и их перепроводит.
Ваша задача сделать так, чтобы дата запрета изменения отключалась для документов, обрабатываемых(перепроводимых) данной обработкой, так?
Если все так, то в коде обработки вы добавляете нужное свойство, а в модуле объекта вы должны получить это свойство.
Сама обработка вам не нужна абсолютно.
В коде обработки вы делаете:
......
ОбъектДокумент = СтрокаТЧ.ВыбранныеДокументы.ПолучитьОбъект();
ОбъектДокумент.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения",Истина);
ОбъектДокумент.Записать();
В модуле документа вы делаете:
....
ПропуститьПроверкуЗапретаИзменения = Неопределено;
ДополнительныеСвойства.Свойство("ПропуститьПроверкуЗапретаИзменения",ПропуститьПроверкуЗапретаИзменения);
Если ПропуститьПроверкуЗапретаИзменения = Истина Тогда
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", ПропуститьПроверкуЗапретаИзменения)
КонецЕсли;
(19) В коде внешней обработки у меня именно это и есть
И мне нужно было, что бы только, при использовании внешней обработки срабатывал код в модуле объекта
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина)
ни в каких других случаях этот код на снятие запрета работать не должен.
......
ОбъектДокумент = СтрокаТЧ.ВыбранныеДокументы.ПолучитьОбъект();
ОбъектДокумент.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения",Истина);
ОбъектДокумент.Записать();
И мне нужно было, что бы только, при использовании внешней обработки срабатывал код в модуле объекта
ДокуменСФ .ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина)
ни в каких других случаях этот код на снятие запрета работать не должен.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот