|
Как попасть отладчиком во внешнюю печатную форму? | ☑ | ||
---|---|---|---|---|
0
Мисти
16.03.24
✎
15:11
|
Всегда делаю ее с возможностью запуска прямо из обработки, там всё работает, а подключаю как внешнюю - нет. Как было бы удобно понять, где ломается... Галку "фоновые задания" поставила... Вроде, какой-то параметр задать при запуске? или нет?
|
|||
1
Garykom
гуру
16.03.24
✎
15:17
|
(0) Простейше это сохранить ее по пути доступному и с сервера и с клиента
|
|||
2
Aleksey
16.03.24
✎
15:29
|
||||
3
СвинТуз
17.03.24
✎
19:38
|
(0)
Обработка запускается при наличии уже подключенной в списке внешних обработок с такими же параметрами регистрации? Причем загруженная в конфу обработка активна? |
|||
4
СвинТуз
17.03.24
✎
19:40
|
(0)
Хороший тон это когда хотя бы пишут тип платформы? Вы не на 7.7 пишите? Если на 7.7 то там бывает так что с диска текст обработки грузится. |
|||
5
Aleksey
17.03.24
✎
19:54
|
(4) некромантов тут мало, тем более ВР же сказал "закопать стюардессу". К тому же Галка "фоновые задания" как бы намекает.
|
|||
6
Волшебник
17.03.24
✎
21:14
|
(5) Спасибо, что помните и транслируете. Да, семёрку надо убить. Эта стюардесса должна быть закопана навсегда.
|
|||
7
СвинТуз
18.03.24
✎
00:30
|
(5)
Согласен. Понятно не 7.7. |
|||
8
СвинТуз
18.03.24
✎
00:31
|
(5)
И даже понятно, что после 12 лет программирования можно задавать подобные вопросы. Все люди. |
|||
9
DrZombi
гуру
18.03.24
✎
09:28
|
(0) Что бы попасть в обработку, вам придется её вызвать дедовским способом, как в УПП, через файлик.
Т.е. вклиниться в общий модуль БСП и переназначить путь ко внешней обработке. И ваши догадки правильны, вам раскроется больший перечень возможностей в корректировке работы механизмов БСП во внешних обработках :) |
|||
10
DrZombi
гуру
18.03.24
✎
09:19
|
+(0) Все живет тут общий модуль "ДополнительныеОтчетыИОбработки"
Код надо примерно такой. У меня просто реквизитики добавлены, через расширение. Но в вашем случаи, можно и разово прописать в коде :) Код из ЗУП 3.1.28.84, у вас может немножко будет другой вид, но смысл не теряется от релиза к релизу. Подробности&Вместо("ПодключитьВнешнююОбработку") Функция СОГ_ПодключитьВнешнююОбработку(Ссылка) Экспорт //Проверка версии кода... доработки, он меняется!!! //Хлебные крошки //РасшА_ДопФункции.ПроверитьВерсиюИсполняемогоКода("3.1.28.84"); //---- СтандартнаяОбработка = Истина; Результат = Неопределено; ИнтеграцияПодсистемБСП.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); Если Не СтандартнаяОбработка Тогда Возврат Результат; КонецЕсли; // Проверка корректности переданных параметров. Если ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Или Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка() Тогда Возврат Неопределено; КонецЕсли; // Подключение #Если ТолстыйКлиентОбычноеПриложение Тогда ИмяОбработки = ПолучитьИмяВременногоФайла(); ХранилищеОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ХранилищеОбработки"); ДвоичныеДанные = ХранилищеОбработки.Получить(); ДвоичныеДанные.Записать(ИмяОбработки); Возврат ИмяОбработки; #КонецЕсли Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид"); Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет Или Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда Менеджер = ВнешниеОтчеты; Иначе Менеджер = ВнешниеОбработки; КонецЕсли; //+ТУТ менялось Попытка Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "БезопасныйРежим, ХранилищеОбработки, СОГ_ПолныйПутьДляОтладки, СОГ_ИспользоватьОтладку"); Если ПараметрыЗапуска.СОГ_ИспользоватьОтладку = Истина и НЕ ПустаяСтрока(ПараметрыЗапуска.СОГ_ПолныйПутьДляОтладки) Тогда АдресВоВременномХранилище = СокрЛП(ПараметрыЗапуска.СОГ_ПолныйПутьДляОтладки); //Указывать сетевой путь, т.к. обработка запускается с Сервера... пФайл = Новый Файл(АдресВоВременномХранилище); Если НЕ (пФайл.Существует() и пФайл.ЭтоФайл()) Тогда //Нет файла, либо не доступен... АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить()); КонецЕсли; Иначе АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить()); КонецЕсли; //-ТУТ менялось Иначе ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "БезопасныйРежим, ХранилищеОбработки"); АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить()); КонецЕсли; Исключение //Если ошибка, то типовой код... ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "БезопасныйРежим, ХранилищеОбработки"); АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить()); КонецПопытки; //........... Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); ИспользуютсяПрофилиБезопасности = МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности(); Иначе ИспользуютсяПрофилиБезопасности = Ложь; КонецЕсли; Если ИспользуютсяПрофилиБезопасности Тогда МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный"); БезопасныйРежим = МодульРаботаВБезопасномРежимеСлужебный.РежимПодключенияВнешнегоМодуля(Ссылка); Если БезопасныйРежим = Неопределено Тогда БезопасныйРежим = Истина; КонецЕсли; Иначе БезопасныйРежим = ПолучитьФункциональнуюОпцию("СтандартныеПодсистемыВМоделиСервиса") Или ПараметрыЗапуска.БезопасныйРежим; Если БезопасныйРежим Тогда ЗапросРазрешений = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 1 | ДополнительныеОтчетыИОбработкиРазрешения.НомерСтроки, | ДополнительныеОтчетыИОбработкиРазрешения.ВидРазрешения |ИЗ | Справочник.ДополнительныеОтчетыИОбработки.Разрешения КАК ДополнительныеОтчетыИОбработкиРазрешения |ГДЕ | ДополнительныеОтчетыИОбработкиРазрешения.Ссылка = &Ссылка"); ЗапросРазрешений.УстановитьПараметр("Ссылка", Ссылка); ЕстьРазрешений = Не ЗапросРазрешений.Выполнить().Пустой(); РежимСовместимости = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "РежимСовместимостиРазрешений"); Если РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2 И ЕстьРазрешений Тогда БезопасныйРежим = Ложь; КонецЕсли; КонецЕсли; КонецЕсли; ЗаписатьПримечание(Ссылка, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подключение, %1 = ""%2"".'"), "БезопасныйРежим", БезопасныйРежим)); //+ТУТ менялось Если Не ПустаяСтрока(АдресВоВременномХранилище) и Не ЭтоАдресВременногоХранилища(АдресВоВременномХранилище) Тогда ИмяОбработки = Менеджер.Создать(АдресВоВременномХранилище,Ложь); ИмяОбработки = ИмяОбработки.Метаданные().Имя; //-ТУТ менялось ИначеЕсли ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()); Иначе ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим); КонецЕсли; Возврат ИмяОбработки; КонецФункции |
|||
11
Мисти
18.03.24
✎
23:05
|
#Если ВнешнееСоединение Тогда
ВыполнитьБезФоновогоЗадания = ИнформационнаяБазаФайловая Или ОбщегоНазначения.РежимОтладки() Или ПараметрыВыполнения.ЗапуститьНеВФоне Или (ЕстьФоновыеЗаданияВФайловойИБ() И Не ПараметрыВыполнения.ЗапуститьВФоне) Или Не ВозможноВыполнитьВФоне(ИмяПроцедуры); #Иначе ВыполнитьБезФоновогоЗадания = Не ПараметрыВыполнения.БезРасширений И Не ПараметрыВыполнения.СРасширениямиБазыДанных И (ОбщегоНазначения.РежимОтладки() Или ПараметрыВыполнения.ЗапуститьНеВФоне Или (ЕстьФоновыеЗаданияВФайловойИБ() И Не ПараметрыВыполнения.ЗапуститьВФоне) Или Не ВозможноВыполнитьВФоне(ИмяПроцедуры)); #КонецЕсли // Выполнить в основном потоке. Если ВыполнитьБезФоновогоЗадания Тогда Попытка Если ПараметрыВыполнения.Свойство("ЭтоФункция") И ПараметрыВыполнения.ЭтоФункция Тогда ВызватьФункцию(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения); Иначе ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения); |
|||
12
Мисти
18.03.24
✎
23:07
|
куда-то туда попадаю. Если бы как-то без фонового задания и без длительной операции. Раньше я ловко вставала на вызов функции из общего модуля и потом попадала во внешнюю форму оттуда, а сейчас всё заканчивается длительными операциями
|
|||
13
DrZombi
гуру
19.03.24
✎
06:08
|
(12) Выставить РежимОтладка
https://itsale.ru/info/articles/nastroyka-konfiguratora-1s-pod-sebya/parametr-zapuska-rezhimotladki/ И все фоновое превращается во все обычное :) |
|||
14
Altone
19.03.24
✎
08:33
|
яндексом ТС так и не научился пользоваться ? эта тема 100500 раз уже по полочкам разложена.
а всё просят разжевать и в клювик засунуть. |
|||
15
Gucci76
19.03.24
✎
09:33
|
Не знаю есть ли в ссылках этот способ:
https://www.youtube.com/watch?v=XcXIoLNCwRg&t=101s но мне он показался самым простым и удобным и обязательно (13) |
|||
16
Буковка
19.03.24
✎
10:41
|
(0) пользуюсь этой обработкой
https://ironskills.by/tpost/vr9ypy76d1-otladka-dopolnitelnih-obrabotok-1s |
|||
17
Одинист
19.03.24
✎
10:45
|
(0) а что уже «сообщить(“ не работает?
|
|||
18
Волшебник
19.03.24
✎
10:47
|
(17) на сервере? куда-то там сообщает
|
|||
19
Одинист
19.03.24
✎
10:52
|
(18) и? Это же не регламетное задание, а печатная форма. Вполне сообщает.
|
|||
20
Волшебник
19.03.24
✎
10:54
|
(19) можно ещё делать ЗаписьЖурналаРегистрации
|
|||
21
Одинист
19.03.24
✎
10:57
|
(20) зачем? тем более журнал долго открывается.
Тупо навставлять …. Сообщит("х1"); … Сообщит("х2"); … Сообщит("х5-3"); … Сообщить("ж1"); Поставить минут убрать минуту |
|||
22
evorle145
19.03.24
✎
11:03
|
(0) уже лет 5 пользуюсь этим:
https://infostart.ru/1c/tools/916110/ ниразу не подводила. Очень удобно. |
|||
23
Garykom
гуру
19.03.24
✎
11:18
|
(21) Издеваешься?
Хотя бы процедуру/функцию общего модуля своего вставить по типу Лог() А уже внутри ее что надо, например Сообщить Тогда легко это дело убрать или отключить |
|||
24
Одинист
19.03.24
✎
11:49
|
(23) ошибка на уровне общего модуля или во внешней обработке?
|
|||
25
DrZombi
гуру
20.03.24
✎
06:04
|
(17) (20) Легких путей не ищете :)
|
|||
26
DrZombi
гуру
20.03.24
✎
06:05
|
(16) (22) Т.е. способ один, просто подменить вызов обработки из макета, вызовом из файлика :DDD
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |