1с внешний отчет не открывается

Обновлено: 07.07.2024

Методика решения проблемы с открытием старой версии внешней обработки

В процессе разработки конфигураций иногда может возникнуть следующая ситуация.

В конфигураторе создается внешняя обработка. В режиме 1С:Предприятие (в режиме отладки или нет) она проверяется. В конфигураторе в обработку вносятся некоторые изменения. В режиме 1С:Предприятие обработка закрывается и открывается заново, для проверки внесенных изменений. Начиная с определенного момента вносимые изменения перестают появляться, то есть в режиме 1С:Предприятие открывается старая версия внешней обработки. Проблема решается только перегрузкой 1С:Предприятия.

Причина возникновения проблемы

Причина возникновения подобной проблемы заключается в самой обработке. Она возникает в том случае, если разработчик допустил возникновение циклических ссылок.

Рассмотрим ситуацию несколько подробнее. В режиме исполнения (1С:Предприятие) объект обработка существует в памяти в качестве реквизита формы обработки. При закрытии формы обработка прекращает свое существование.

Данная схема нарушается в двух случаях. На саму обработку возникла дополнительная ссылка, либо ссылка возникла на форму, в этом случае закрытие окна формы не означает уничтожение объекта - формы. Соответственно, остается в памяти и обработка.

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

Рекомендации по предотвращению возникновения проблемы

В процессе разработки следует учитывать ссылки, возникающие между различными объектами, и избегать прямых или косвенных взаимных ссылок. Например, поскольку форма ссылается на обработку (через реквизит), обработка не должна ссылаться на форму, т.е. форму нельзя помещать в реквизит обработки или нелокальную переменную ее модуля. Разумеется, нельзя допускать и ссылок объекта на самого себя, например поместить форму в ее собственный реквизит или переменную модуля.

Если "обратная связь" между обработкой и формой все же необходима, следует явным образом позаботиться о ее разрыве. Это можно сделать, например, в обработчике закрытия формы.

Методика устранения проблемы

Даже следование всем рекомендациям не может застраховать от возникновения подобной проблемы.

В первую очередь следует проанализировать алгоритм исполнения обработки на предмет циклических ссылок. Иногда источник проблемы не очевиден. Циклы могут носить достаточно сложный характер, да и возникновение проблемы можно заметить не сразу.

В этом случае можно рекомендовать следующую методику. Сначала необходимо определить момент возникновения ошибки. Следует после перегрузки 1С:Предприятия (сразу заметим, что конфигуратор перегружать не надо) открыть обработку и сразу ее закрыть. Внести в конфигураторе видимые изменения в форму и открыть обработку в 1С:Предприятии.

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

Примерно определив место возникновения проблемы, следует блоками комментировать код соответствующих процедур в модуле, и после каждой итерации проверять обработку. Разумеется нельзя забывать, что после каждого возникновения проблемы следует перегружать 1С:Предприятие.

Таким способом конкретное место возникновения обычно удается определить достаточно быстро. После чего причина возникновения цикла, в большинстве случаев, становится очевидной.

(1) Да, в модуле менеджера отчета в составе конфигурации есть вот такой код:

(2+) Как это может влиять на формирование отчета в составе конфигурации, или формирование отчета как внешний?

нашел в инете:
|
Все дело в тексте запроса, он программно изменяется при открытии встроенного отчета. При открытии внешнего отчета событие по изменению текста не срабатывает.

Решение подойдет только для внутреннего отчета.
В модуле "ЗарплатаКадрыОтчетыБазовый", в конце процедуры "НастроитьВариантыОтчетов" и добавить новый отчет в список.
|

(5+) Только как решить эту задачу так и не понял! (
Подскажете?
(6) так бывает, когда ты Ливингстар, ответ тебе уже дали
Подскажите как описать внешний отчет в модуле менеджера, текст которого приведен в (2) ?

(12) не понятно что делать что бы работал внешний отчет!

Я скопировал отчет ОтчетыПоСотрудникам в составе конфигурации. Назвал его ОтчетыПоСотрудникамНовый.
Добавил вот это.

Как к копии отчета ОтчетыПоСотрудникам, названному ОтчетыПоСотрудникамНовый вернуть варианты отчетов?
Мда!
Никто не знает почему сохраненный отчет как внешний не показывает данные в ЗУП 3.1.2.183.
Или почему у созданной копии отчетов теряются варианты настроек .
(14) Наверное нужно сперва понять как регистрируется внешний отчет в БСП. Куча примеров в интернете
Те строчки из (13) тебе врятли нужны, это регистрация варианта встроенного отчета.
(17) Понял.
Но дело не в добавлении отчета в состав конфигурации как внешнего.
А в формировании внешнего отчета. Он не выдает данные.

(17) Я так сделал, как в (13) но отчет открывается без вариантов отчета вообще (((

У меня задача. Сохранить отчет ОтчетыПоСотрудникам как внешний, и использовать его. Что бы он выводит данные. Пока он не формируется.
Зачем мне его регистрировать в БСП? Он же внешний, я его не добавляю во внешние отчеты и обработки.

(19) Отчет имеет 4 макета! Что ты мозг выносишь людям.
Давай начнем с того что как ты хочешь выбирать с каким макетом надо работать?
(21) Я никому не выношу мозг.
Я сделал копию отчета ОтчетыПоСотрудникам внешним
и хочу что бы им работали как копией, что то изменив в ней.
Все макеты и нужно использовать что в типовом отчете.

(23) Ну то есть хотите сказать что, что бы сохранить
отчет на диск ОтчетыПоСотрудникам, изменив его несколько
и использовать как дубль отдельно в ЗуП 3.1.2.183 это
совсем не просто.
Там нужно прямо много много менять типовой код?
Вроде задача то элементарная?

Это можно сделать или нет, тогда такой вопрос?

Или сверх новые технологии 1с сейчас для такой простейшей операции, заставляют очень долго и долго разбираться и трудиться. Что бы сделать такую мелочь?

Пункты (22) и (23) не не понятны мне.
Хочется по факту разговора. Не лишних рассуждений!
Я не знаю как сделать, то что в (0) по этому спросил на форуме в надежде что кто то подскажет, кто знает. Задача элементарная!

(26) Новые технологии подразумевают знание БСП
в твоем случае это "БСП Варианты отчетов".

Либо делай 4 отдельных внешних отчета и пихай в каждый по одному макету.

И в качестве варианта будешь открывать отдельный файлик, удобно правда? ))
(28) Нужно одним отчетом его использовать, как копию измененного типового.
(31) если ты не хочешь его подключать к БСП как внешний отчет, а использовать просто как открываемый файлик . то тогда и пиши весь этот гемор в своем отчете, инициализацию макетов выбор макета и тд и тп.
Еще раз спрашиваю, как 1с должна догадаться какой макет тебе надо скомпоновать и вывести?
(32) На форме отчета есть настройка, варианты отчета. Это и определяет какой макет будет сформирован и с какими данными.
(32) Я хочу сделать как угодно.
Важно что бы это было правильно.
И что бы отчет работал как копия, типового.
Которую можно было бы видо изменить.
Пока я не вижу цели и пути, что и как правильно делать!
(32) Подключение отчета к БСП, это вы имеете ввиду подключение его во внешние отчеты и обработки?
С добавлением соответсвующего кода для этого в модуль объекта?
(34) разницу между макетами и вариантами настроек СКД понимашь?
(37) вижу 8 вариантов отчета СКД и 4 макета
в типовом отчете ОтчетыПоСотрудникам
(38) Ну зачем мне подключение отчета как внешнего во внешние отчеты и обработки? Что мне это даст, если он не формируется?

(41)
Я добавил нужный код в модуль объекта отчета и встроил его во внешние отчеты и обработки. Но он как не выводил жанные так и не выводит.

Вы по сути ничего не сказали.

(42) варианты отчета в другом месте находятся. Ты их не скопировал. Поэтому их и нет.
Может нужно какой регистр сведений заполнить или справочник?
Подскажите пожалуйста.
(43) Нет где? В копии отчета что я сделал в составе конфигурации?
Там нет да.
А во внешнем отчете что я добавил во внешние отчеты и обработки они есть, только он не выводит данные.
в ЗУПе все отчеты получают данные из пару супер-запросов, которые подставляются в схему при инициализации отчета. Запросы где-то в общих модулях лежат, на сколько я помню. Если к ним не обратиться, то получишь пустой отчет.
(46) Но отчет же типовой. Как он может к ним не обратиться?
(47) ну отладчик включи уже и посмотри, как он может к ним не обратиться. Плохо код перенес значит
(48) я вообще ничего не переносил, сделал копию типового отчета и все
никто ничего не знает, вокруг да около каждый бегает

(50) Из-за того что ты не знаешь как работает типовая конфа на БСП, не знаешь как работает БСП, ты не понимаешь как работает СКД, не знаешь как работает отладчик, предполагаю что и не знаешь как правильно сохранять отчеты и обработки в файлы, не хочешь читать что тебе тут уже разжевали, все бегают вокруг да около.
Ждешь что тебе пришлют готовый отчет? ты наверное слез с типовой УТ 10.3 и решил что в новых конфигурациях прокатят те же грабли.

Кроме кучи восклицательных знаков и "Отчет не работает" от тебя никакой информации.

Совет: закрой пофигуратор и вызови специалиста.

(51) Какой готовый отчет?
У меня один внешний другой встроенный во внешние отчеты и обработки.
(51) вся информация у меня изложена
повторюсь, вы бегаете вокруг да около, по делу ничего
поддержка форума, наводящими советами.

(53) Отчет ОтчетыПоСотрудникам
все внятно расписано в ветке что нужно, ну нет ответа и нет, сам найду его.

я один встроил в конфигурацию, прописал его как в (13)

второй сохранен на диск как внешний, при его открытии есть виды вариантов отчета но от не показывает данные, не формирует их

Читайте также: