gifts2017

Устранение ошибки "При открытии формы регламентированного отчета произошла ошибка." при открытии регламентированной отчётности в Бухгалтерии 3

Опубликовал Владислав Лисовенко (VladC#) в раздел Программирование - Ошибки в отраслевых решениях

Устраняем ошибку "При открытии формы регламентированного отчета произошла ошибка.", релиз 3.0.44.124.

Выполним всего 2 шага:

1. В модуле формы Отчет.РегламентированныйОтчетБухОтчетность.ФормаОтчета2011Кв4, процедура ОбновитьСоставДополнительныхСтрокИзСохраненныхДанных, в ней есть строки:
Для Каждого СтрокаУровня1 Из СохраненныйСоставДопстрокБаланса.Строки Цикл
	Для Каждого СтрокаУровня2 Из СтрокаУровня1.Строки Цикл
		ИмяОбластиДопСтроки = СтрокаУровня2.ИмяОбластиДопСтроки;
		НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(ЭтаФорма[СоставДополнительныхСтрок.СтруктураСоставов.Баланс].ПолучитьЭлементы(), "ИмяОбластиДопСтроки", ИмяОбластиДопСтроки);
		Если НайденнаяСтрока <> Неопределено Тогда
			НайденнаяСтрока.ВключатьВОтчет = СтрокаУровня2.ВключатьВОтчет;
		КонецЕсли;
	КонецЦикла;
КонецЦикла;

нужно заменить:

НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(ЭтаФорма[СоставДополнительныхСтрок.СтруктураСоставов.Баланс].ПолучитьЭлементы(), "ИмяОбластиДопСтроки", ИмяОбластиДопСтроки);

на

НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(ДеревоНастроекБаланс.Строки, "ИмяОбластиДопСтроки", ИмяОбластиДопСтроки);

2. В общем модуле РегламентированнаяОтчетностьКлиентСервер, функция НайтиЭлементВДанныхФормыДерево, в ней строки

Если ЭлементДерева.ПолучитьЭлементы().Количество() > 0 Тогда
			
	РезультатПоиска = НайтиЭлементВДанныхФормыДерево(ЭлементДерева.ПолучитьЭлементы(), ИмяКолонки, ИскомоеЗначение);
	
	Если НЕ РезультатПоиска = Неопределено Тогда
		Возврат РезультатПоиска;
	КонецЕсли;
	
КонецЕсли;

заменить на

Если ТипЗнч(ЭлементДерева) = Тип("СтрокаДереваЗначений") Тогда
	
	
	Если ЭлементДерева.Строки.Количество() > 0 Тогда
		
		РезультатПоиска = НайтиЭлементВДанныхФормыДерево(ЭлементДерева.Строки, ИмяКолонки, ИскомоеЗначение);
		
		Если НЕ РезультатПоиска = Неопределено Тогда
			Возврат РезультатПоиска;
		КонецЕсли;
		
	КонецЕсли;
	
Иначе

	Если ЭлементДерева.ПолучитьЭлементы().Количество() > 0 Тогда
		
		РезультатПоиска = НайтиЭлементВДанныхФормыДерево(ЭлементДерева.ПолучитьЭлементы(), ИмяКолонки, ИскомоеЗначение);
		
		Если НЕ РезультатПоиска = Неопределено Тогда
			Возврат РезультатПоиска;
		КонецЕсли;
		
	КонецЕсли;
	
КонецЕсли;

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр (МимохожийОднако) 05.10.16 08:05
Стесняюсь спросить, как устранить подобную ошибку, если она возникла в базовой версии?
2. Владислав Лисовенко (VladC#) 06.10.16 07:00
(1) МимохожийОднако, боюсь что в базовой это не возможно, здесь один вариант - ждать обновления с исправлениями от 1С.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа