Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка после обновления: Баннер

Ошибка после обновления: Баннер
Я
   aptomilov
 
25.07.20 - 08:23
Описание проблемы
в одной базе счет на оплату печатается а во второй перестал
при попытки напечатать вываливает ошибку.

Все переменные одинаковые куда копать не пойму

Виновник торжества
ГруппаБаннер = Форма.Элементы.Вставить("Баннер", Тип("ГруппаФормы"), , Форма.Элементы.Найти("ГруппаКоманднаяПанель"));

Базы одинаковые, версия 3.0 (3.0.79.14)
Платформа одна, комп один 1С:Предприятие 8.3 (8.3.14.1976)
Обновление накатил в соответствии с требованиями порядка обновления 1С

Ошибка во во второй базе

{ОбщийМодуль.ПерсонализированныеПредложенияСервисов.Модуль(6615)}: Ошибка при вызове метода контекста (Вставить)
    ГруппаБаннер = Форма.Элементы.Вставить("Баннер", Тип("ГруппаФормы"), , Форма.Элементы.Найти("ГруппаКоманднаяПанель"));
по причине:
Недопустимое значение параметров
Недопустимое значение параметров


Процедура в целом

Процедура СоздатьРеквизитыИЭлементыФормыДляРазмещенияБаннера(Форма)
    
    РеквизитыФормыБаннер = Новый Массив;
    РеквизитыФормыБаннер.Добавить(Новый РеквизитФормы("Баннер", Новый ОписаниеТипов()));
    РеквизитыФормыБаннер.Добавить(Новый РеквизитФормы("ТекстБаннера", Новый ОписаниеТипов("ФорматированнаяСтрока")));
    Форма.ИзменитьРеквизиты(РеквизитыФормыБаннер);
    
    ГруппаБаннер = Форма.Элементы.Вставить("Баннер", Тип("ГруппаФормы"), , Форма.Элементы.Найти("ГруппаКоманднаяПанель"));
    ГруппаБаннер.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаБаннер.РастягиватьПоГоризонтали = Истина;
    ГруппаБаннер.Отображение = ОтображениеОбычнойГруппы.Нет;
    
    ГруппаБаннерСФоном = Форма.Элементы.Добавить("БаннерСФоном", Тип("ГруппаФормы"), ГруппаБаннер);
    ГруппаБаннерСФоном.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаБаннерСФоном.РастягиватьПоГоризонтали = Истина;
    ГруппаБаннерСФоном.Отображение = ОтображениеОбычнойГруппы.Нет;
    ГруппаБаннерСФоном.ОтображатьЗаголовок = Ложь;
    
    ГруппаОжидание = Форма.Элементы.Добавить("ГруппаБаннерОжидание", Тип("ГруппаФормы"), ГруппаБаннерСФоном);
    ГруппаОжидание.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаОжидание.Отображение = ОтображениеОбычнойГруппы.Нет;
    ГруппаОжидание.ГоризонтальноеПоложениеПодчиненных = ГоризонтальноеПоложениеЭлемента.Право;
    ГруппаОжидание.ВертикальноеПоложениеПодчиненных = ВертикальноеПоложениеЭлемента.Центр;
    ГруппаОжидание.РастягиватьПоГоризонтали = Ложь;
    ГруппаОжидание.Ширина = 24;
    ГруппаОжидание.ОтображатьЗаголовок = Ложь;
    
    КартинкаОжидание = Форма.Элементы.Добавить("КартинкаОжидание", Тип("ДекорацияФормы"), ГруппаОжидание);
    КартинкаОжидание.Вид = ВидДекорацииФормы.Картинка;
    
    НадписьОжидание = Форма.Элементы.Добавить("НадписьОжидание", Тип("ДекорацияФормы"), ГруппаОжидание);
    НадписьОжидание.Вид = ВидДекорацииФормы.Надпись;
    
    ТекстБаннера = Форма.Элементы.Добавить("ТекстБаннера", Тип("ПолеФормы"), ГруппаБаннерСФоном);
    ТекстБаннера.Вид = ВидПоляФормы.ПолеНадписи;
    ТекстБаннера.ПутьКДанным = "ТекстБаннера";
    ТекстБаннера.Высота = 3;
    ТекстБаннера.РастягиватьПоГоризонтали = Истина;
    ТекстБаннера.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Центр;
    ТекстБаннера.ВертикальноеПоложение = ВертикальноеПоложениеЭлемента.Центр;
    ТекстБаннера.АвтоМаксимальнаяШирина = Ложь;
    ТекстБаннера.МаксимальнаяШирина = 0;
    ТекстБаннера.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
    ТекстБаннера.УстановитьДействие("ОбработкаНавигационнойСсылки", "Подключаемый_ОбработкаНавигационнойСсылки");
    
    КартинкаБаннера = Форма.Элементы.Добавить("КартинкаБаннера", Тип("ДекорацияФормы"), ГруппаБаннерСФоном);
    КартинкаБаннера.Вид = ВидДекорацииФормы.Картинка;
    КартинкаБаннера.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Центр;
    КартинкаБаннера.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
    КартинкаБаннера.Ширина = 26;
    КартинкаБаннера.Высота = 3;
    
    ГруппаКнопкиБаннера = Форма.Элементы.Добавить("ГруппаКнопкиБаннера", Тип("ГруппаФормы"), ГруппаБаннерСФоном);
    ГруппаКнопкиБаннера.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаКнопкиБаннера.РастягиватьПоВертикали = Истина;
    ГруппаКнопкиБаннера.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право;
    ГруппаКнопкиБаннера.ОтображатьЗаголовок = Ложь;
    
    КартинкаЗакрытьБаннер = Форма.Элементы.Добавить("КартинкаЗакрытьБаннер", Тип("ДекорацияФормы"), ГруппаКнопкиБаннера);
    КартинкаЗакрытьБаннер.Вид = ВидДекорацииФормы.Картинка;
    КартинкаЗакрытьБаннер.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право;
    КартинкаЗакрытьБаннер.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Верх;
    КартинкаЗакрытьБаннер.Гиперссылка = Истина;
    КартинкаЗакрытьБаннер.Картинка = БиблиотекаКартинок.Очистить;
    КартинкаЗакрытьБаннер.УстановитьДействие("Нажатие", "Подключаемый_ВыполнитьКоманду");
    
    ГруппаКнопкиПереключенияБаннера = Форма.Элементы.Добавить("ГруппаКнопкиПереключенияБаннера", Тип("ГруппаФормы"), ГруппаКнопкиБаннера);
    ГруппаКнопкиПереключенияБаннера.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаКнопкиПереключенияБаннера.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Низ;
    
    КартинкаПредыдущийБаннер = Форма.Элементы.Добавить("КартинкаПредыдущийБаннер", Тип("ДекорацияФормы"), ГруппаКнопкиПереключенияБаннера);
    КартинкаПредыдущийБаннер.Вид = ВидДекорацииФормы.Картинка;
    КартинкаПредыдущийБаннер.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Низ;
    КартинкаПредыдущийБаннер.Гиперссылка = Истина;
    КартинкаПредыдущийБаннер.Картинка = БиблиотекаКартинок.ПредыдущийБаннер;
    
    КартинкаСледующийБаннер = Форма.Элементы.Добавить("КартинкаСледующийБаннер", Тип("ДекорацияФормы"), ГруппаКнопкиПереключенияБаннера);
    КартинкаСледующийБаннер.Вид = ВидДекорацииФормы.Картинка;
    КартинкаСледующийБаннер.ВертикальноеПоложениеВГруппе = ВертикальноеПоложениеЭлемента.Низ;
    КартинкаСледующийБаннер.Гиперссылка = Истина;
    КартинкаСледующийБаннер.Картинка = БиблиотекаКартинок.СледующийБаннер;
    
КонецПроцедуры
   aptomilov
 
1 - 25.07.20 - 08:34
КЭШ ТОЖЕ ЧИСТИЛ
БАЗУ ПЕРЕКИДЫВАЛ В ДР ПАПКУ НЕ ПОМОГАЕТ
   DJ Anthon
 
2 - 25.07.20 - 09:16
это же рекламные баннеры. отключить их и все дела.
В расширении добавляешь замену стандартной процедуры
&Вместо("ПолучитьБаннер")
Процедура А_ПолучитьБаннер(СтруктураПараметров, АдресХранилища)
    ПоместитьВоВременноеХранилище(Неопределено, АдресХранилища);
    Возврат; 
КонецПроцедуры
   acht
 
3 - 25.07.20 - 09:23
(0) На форме уже присутствует элемент с именем "Баннер". То есть, существуют сценарий работы пользователя, при котором СоздатьРеквизитыИЭлементыФормыДляРазмещенияБаннера вызывается дважды.
   vde69
 
4 - 25.07.20 - 09:25
Элемент формы отсутствует, скорее всего или прав мало, или в коде ранее он не был создан
   aptomilov
 
5 - 25.07.20 - 09:54
(4) Код то типовой базы идентичны
(3) щас проверю отпишусь интересная версия
   aptomilov
 
6 - 25.07.20 - 10:06
Баннера на форме на момент добавления нет 
Права полные
   aptomilov
 
7 - 25.07.20 - 10:07
(3) в первый раз ошибка сразу же
   acht
 
8 - 25.07.20 - 10:12
(7) Проверял установкой точки останова и контролем стека, я надеюсь?
   vde69
 
9 - 25.07.20 - 10:13
У тебя нет вот этой группы
Элементы.ГруппаКоманднаяПанель
   acht
 
10 - 25.07.20 - 10:17
(9) В этом случае "Форма.Элементы.Найти("ГруппаКоманднаяПанель")" вернет Неопределено и свежесозданная группа уедет в конец коллекции.
   aptomilov
 
11 - 25.07.20 - 10:21
(9)(10)  группа есть все нормально
   aptomilov
 
12 - 25.07.20 - 10:24
   acht
 
13 - 25.07.20 - 10:28
И какие элементы есть на форме в этот момент?
   aptomilov
 
14 - 25.07.20 - 10:49
(13)  все нужные есть
http://joxi.ru/Q2KPxoiwzOzyAj
   aptomilov
 
15 - 25.07.20 - 10:55
баннера точно нет
   Serg_1960
 
16 - 25.07.20 - 10:56
Возможно (9) прав. (11) Не надо говорить что она есть - попробуй в табло исполнить Форма.Элементы.Найти("ГруппаКоманднаяПанель"). Проверить будет ли она найдена программно.

(имхо) Не исключаю вероятность демонического обновления, когда видишь не то с чем работает платформа. Глупо, но можно попробовать удалить процедуру и заново вставить скопированный из другой базы текст процедуры и обновить конфигурацию.
   aptomilov
 
17 - 25.07.20 - 11:01
действует
отрабатывает
   aptomilov
 
18 - 25.07.20 - 11:02
(имхо) Не исключаю вероятность демонического обновления, когда видишь не то с чем работает платформа. Глупо, но можно попробовать удалить процедуру и заново вставить скопированный из другой базы текст процедуры и обновить конфигурацию.

ТОЖЕ ЭТА МЫСЛЬ НЕ ПОКИДАЕТ НО ПОСТРОЧНО ВРОДЕ КАК ВСЕ ХОРОШО  
ПРИ ТАКИХ СИМПТОПМАХ ПРОСКАКИВАЕТ ОТЛАДКА
   aptomilov
 
19 - 25.07.20 - 11:07
Все стало еще веселей 
теперь не отрабатывает расширение
http://joxi.ru/zANP5oi6bwvBm9
   vde69
 
20 - 25.07.20 - 11:12
Профиль безопасности по посмотри
   aptomilov
 
21 - 25.07.20 - 11:13
да да точно забываю про него всегда 
но все равно интересно какого хрена в типовых базах такие баги
   aptomilov
 
22 - 25.07.20 - 11:13
что приходится ихголяться
   Serg_1960
 
23 - 25.07.20 - 11:17
(18) Иногда бывает так, что платформа что-то добавляет "от себя", обрабатывает "невидимые" строки - строки, которые отсутствуют в тексте открытого в конфигураторе модуля. Тогда платформу не поймаешь за хвост точками останова.
   aptomilov
 
24 - 25.07.20 - 11:19
Вобщем решение если у кого вылезет такое заодно и рекламу подгасит

&Вместо("СоздатьРеквизитыИЭлементыФормыДляРазмещенияБаннера")
Процедура АНТИРЕКЛАМА_СоздатьРеквизитыИЭлементыФормыДляРазмещенияБаннера(Форма)
// ИБО НЕХЕР РЕКЛАМУ ВЕЗДЕ СУВАТЬ

КонецПроцедуры


&Вместо("УстановитьБаннерНаФорме")
Процедура АНТИРЕКЛАМА_УстановитьБаннерНаФорме(Форма, АдресРезультата)
// ИБО НЕХЕР РЕКЛАМУ ВЕЗДЕ СУВАТЬ

КонецПроцедуры
   DJ Anthon
 
25 - 25.07.20 - 12:53
(24) моё не сработало?
   aptomilov
 
26 - 25.07.20 - 14:21
(25) Так процедура получение баннера то не уберет процедуру мою
и ошибка будет


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