Последние сообщения

#51
7.7 / Re: Обсуждение накопленного
Последний ответ от Харлампий Дымба - 01 ноября 2025, 13:45
Баг «Не показывается колонка общего реквизита в журналах» aka «Исчез автор в общем журнале»
Описание: В непонятное время по непонятным причинам у пользователей перестаёт отоборажаться колонка с общим реквизитом, в конфигураторе – всё чётко.
Лечение: Удалить проблемную колонку – Закрыть форму списка (ЭТО ВАЖНО) – Сохранить – Добавить колонку.
Код для проверки наличия проблемы (программно открываем и закрываем все журналы и смотрим: есть/нет?):
СписокДляПроверки = СоздатьОбъект("СписокЗначений");
Для СчЖурналов = 1 По Метаданные.Журнал() Цикл
    МетаЖурнал = Метаданные.Журнал(СчЖурналов);
    ИдЖурнала = МетаЖурнал.Идентификатор;
    Для СчФорм = 1 По МетаЖурнал.ФормаСписка() Цикл
        ИдФормы = МетаЖурнал.ФормаСписка(СчФорм).Идентификатор;
        СписокДляПроверки.УдалитьВсе();
        Для СчОбщихРеквизитов = 1 По Метаданные.ОбщийРеквизитДокумента() Цикл
            СписокДляПроверки.ДобавитьЗначение(Метаданные.ОбщийРеквизитДокумента(СчОбщихРеквизитов).Идентификатор);
        КонецЦикла;    
        Для СчГраф = 1 По МетаЖурнал.Графа() Цикл
            СписокДляПроверки.ДобавитьЗначение(МетаЖурнал.Графа(СчГраф).Идентификатор);
        КонецЦикла;    
        Конт = "";
        ОткрытьФорму("Журнал."+ИдЖурнала+"."+ИдФормы+"#",Конт);
        Если ТипЗначения(Конт) = 100 Тогда
            Для Сч = 1 По СписокДляПроверки.РазмерСписка() Цикл
                ИмяКолонки = СписокДляПроверки.ПолучитьЗначение(Сч);
                Попытка
                    Конт.Форма.ПолучитьАтрибут(ИмяКолонки);
                Исключение
                    Продолжить;
                КонецПопытки;
                Конт.Форма.ПолучитьАтрибут(ИмяКолонки).Видимость(1);
                Конт.Активизировать(ИмяКолонки,1);
                Если Конт.Форма.ТекущаяКолонка() <> ИмяКолонки Тогда
                    Сообщить("Проблема отображения: "+"Журнал."+ИдЖурнала+"."+ИдФормы+"."+ИмяКолонки);
                КонецЕсли;
            КонецЦикла;
            Конт.Форма.Закрыть(0);
            Конт="";
        КонецЕсли;    
    КонецЦикла;
КонецЦикла;
Сообщить("Проверка завершена.");   

Пространно: заморочка с этим глюком в том, что он появлялся как бы из ниоткуда и в неизвестный момент времени. Юзеры не знают, что в журнале должен быть этот столбец, а программист не знает, что его там не стало. Первый раз, когда столкнулся, списал на рудимент от 7.5, потому что конфа была типовая комплексная 3, в которой осталось 4 журнала, перекочевавших, видимо, через преобразование из 7.5 из первого релиза Комплексной. А недавно, с удивлением, обнаружил этот глюк в своей нетленке. Поэтому, взяв ежедневные бэкапы баз за 23 года, установил день, когда исчез столбец, и проанализировав два соседних мдшника, понял механизм возникновения глюка.
Исходная конфигурация (ИК), два параллельных прямых потомка (П1 и П2). В П1 добавляем любой объект. В П2 добавляем общий реквизит и выводим его в форму списка журнала. Загружаем в П1 через объединение конфигурации. Готово: в П1 битый журнал. В форме списка журнала в конфигураторе столбец виден, а в режиме «1С: Предприятие» не показывается.
Тестовый стенд в пустой пробной: создать документ, журнал, форму списка журнала, разделить на 2 потомка, в первом создать константу, во втором - общий реквизит документов и добавить его в форму списка журнала, накатить мдшник на первый потомок через объединение - баг проявился.
Если разложить проблемный мдшник, то в столбце в значении ИдентификаторМетаданных будет содержать мусорный id (а если «повезёт», то существующий, но от другого объекта).
С какого-то релиза разработчики о глюке узнали, но механизм его возникновения не поняли, и в момент открытия журнала стали просто делать проблемный столбец невидимым. А может и поняли, но по сумме характеристик, решили, что проще так, чем исправлять.
Возникновение глюка вполне укладывается в распространённый механизм обновления типовых, когда свои изменения (и в их числе, например, общий реквизит «Автор», которого так не хватало в типовой бухии) переносишь в новый релиз типовой через объединение, а потом накатываешь на рабочую базу.
То есть причина - в некорректной работе объедения конфигурации: когда замещаешь форму списка журнала документа, то ИдентификаторМетаданных не изменяется вслед за изменением Идентификатора исходного объекта (например, общего реквизита «Автор»), а остаётся как был в накатываемой конфигурации.
Лечение историческое: добрый Ёпрст gcompом(?) менял страждущим ИдентификаторМетаданных на правильный;
Лечение хирургическое: убрать столбец вообще: «вам это не надо»;
Лечение паллиативное: делать такие столбцы текстовыми;
Лечение правильное: в шапке. Но – зараза – если форму списка после удаления не закрыть, то столбец 1С вставит обратно проблемный - из кэша. Обо что многие и спотыкались. И это ещё одна, другая, багофича.
#52
7.7 / Re: Обсуждение накопленного
Последний ответ от Харлампий Дымба - 31 октября 2025, 12:20
GComp. Может открою Америку, но как-то с легкой руки Фёдора всегда считал, что Container.Profile - лишний мусор в мдшнике,  ну типа формы элемента для справочников, редактируемого только "в списке".
Оказалось, что это установки по работе с таблицей из диалоговой формы отчета/обработки (ну и пароли при необходимости) и бездумно удалять их не надо.

Состав Container.Profile:
Действия - Свойства формы
MoxelName (Использовать таблицу):
Пустую - "␁Blank"
Для ввода данных - Имя таблицы
MoxelPos (Положение):
0 - во всё окно (по умолчанию)
2 - снизу
3 - сверху
4 - справа
5 - слева
MoxelNextMode (Для ввода данных - Переход по строкам):
0 - нет
1 - по строкам (по умолчанию)
2 - по столбцам
Действия - Установить пароль
UUID:
"D41D8CD98F00B204E9800998ECF8427E" - пароль не установлен
Любые другие значения - хэш пароля?
Entry (Запрашивать пароль при исполнении):
0 - не запрашивать
1 - запрашивать (по умолчанию)

#53
Глюки форума / Re: Спамеры
Последний ответ от АЛьФ - 31 октября 2025, 09:09
Цитата: Харлампий Дымба от 30 октября 2025, 12:48Отлично!
Ещё бы от подобных "торговцев спреями" избавиться:
https://forum.dorex.pro/index.php?action=profile;u=109
https://forum.dorex.pro/index.php?action=profile;u=125


Спасибо. Сейчас я удаляю всех новых со ссылками, но старые еще могу оставаться.
#54
FormEx / Re: Услышим ли мы НТЦ..? 199 п...
Последний ответ от АЛьФ - 31 октября 2025, 09:07
Цитата: GSoft от 30 октября 2025, 17:58
Цитата: АЛьФ от 16 января 2025, 12:10Когда-нибудь в этом году обязательно
Альф, а ждать ли в этом году новую сборку Formex
последняя датирована 6 октября прошлого года
Ух... Мне самому очень хотелось бы, но пока не получается.
#55
FormEx / Re: Услышим ли мы НТЦ..? 199 п...
Последний ответ от GSoft - 30 октября 2025, 17:58
Цитата: АЛьФ от 16 января 2025, 12:10Когда-нибудь в этом году обязательно
Альф, а ждать ли в этом году новую сборку Formex
последняя датирована 6 октября прошлого года
#56
Дружественные проекты / Re: DialMail новая версия
Последний ответ от swa - 30 октября 2025, 17:06
SWA собака list.ru
Жду
#57
Дружественные проекты / Re: DialMail новая версия
Последний ответ от mic22 - 30 октября 2025, 13:04
Доброго времени!
Есть косяк. Все виснет при попытке СохранитьПрисоединенныйФайл. Версия 2.7.6.16 сохраняет без проблем
Куда отправить косячное письмо для примера?
#58
Глюки форума / Re: Спамеры
Последний ответ от Харлампий Дымба - 30 октября 2025, 12:48
Отлично!
Ещё бы от подобных "торговцев спреями" избавиться:
https://forum.dorex.pro/index.php?action=profile;u=109
https://forum.dorex.pro/index.php?action=profile;u=125
#59
7.7 / Re: v7: ActiveX элемент управл...
Последний ответ от item - 30 октября 2025, 12:25
А кто-нибудь регистрировал bmp_1c.ocx под win7x64 ?
Вроде как regsvr32 отрабатывает норм,
но в списке OLE при вставке в таблицу объект bmp_1c отсутствует.
#60
Глюки форума / Re: Спамеры
Последний ответ от АЛьФ - 30 октября 2025, 10:10
Подкрутил настройки форума. Если вдруг возникнут сложности, пишите мне на alf@dorex.pro