• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Перестают Отображаться Документы

  • Автор темы Dewa1s
  • Дата начала
D

Dewa1s

День добрый уважаемые.
Несколько месяцев назад немного изменили форму документа (буквально добавили 1 поле с юнид документа и кнопку, которая открывает документ с соответствующим юнид).
После этого начало происходить прекрасное:
В представлении отображаются документы и ответные доки к ним.
В 6 утра отрабатывает агент, который проходит по рабочим заданиям и проверяет, сколько им осталось до конца, в поле "дней до окончания" уменьшает цифру на 1, сохраняет изменения и рассылает авторам отчеты. Агент работает с 2008 года и нареканий к нему небыло. С новым полем не взаимодействует ни как.
После пересохранения документов этим агентом все ответные документы, которые он обработал, пропадают из представления. Они остаются в базе, они видны в других представлениях, в них можно зайти, но как ответные доки они отображаться перестают везде. Поле $Ref присутствует и не изменяется.
Особенности:
1)Пропадают только документы, созданные день назад. Тобишь сегодня не отображаются вчерашние, завтра не будут отображаться сегодняшние.
2)Если ответные документы пересохранить - они начинают везде отображаться. Путем научного тыка было установлено, что при пересохранении к документам добавляется поле $Links, грешил на него, но в иерархии много ответных документов, у которых этого поля нет и которые нормально отображаются
3)А вот это из колеи выбивает окончательно: Если создать дубль этого представления(банальное ctrl+c & ctrl+v), и затем зайти в него - все документы видны нормально, однако завтра сегодняшние документы пропадут в обоих представлениях.

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

А, и еще пункт - пересохранение в ручную помогает 100%, однако пересохранение агентом - через раз. Бывает нужно 3-4 раза его запустить, прежде чем начнут отображаться все документы. Это дикий велосипед, жрущий тучу времени, однако пока что других решений данной проблемы не найдено...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
компьютед би форм не делается перед сохранением
может кто-то изменил форму с основного на респонс на респонс?
 
H

hosm

Еще добавлю:В представлении в формуле отбора не используются манипуляции с полем $Ref?
Поле $RefOptions есть в документах или на форме?
 
D

Dewa1s

Спасибо, что откликнулись.
ToxaRat, если вы имеете ввиду ComputeWithForm - изначально в агенте его небыло, после появления ошибки я пробовал добавить - не помогло, только агент начал в несколько раз медленнее выполняться.
OKEN, нет, формула отбора предельно простая - SELECT (form="firstdoc" | form="task" | form="outdoc" | form="secdoc")&delivereddate="", никаких хитрых манипуляций нет.
Есть несколько подобных шаблонов (разница буквально в несколько полей\столбцов в представлениях, под нужды разных дочерних предприятий делали), там абсолютно аналогичные формулы отбора и прочее - у них все нормально, проблема именно в базах, работающих на шаблоне с новой кнопкой.

Хотя когда я сейчас озвучил это все и сам же прочитал, вроде как становится очевидно, что свет клином именно на этой злополучной кнопке сходится. Мож конфликт какой, мож еще фигня какая-нить неведомая... Думаю, прежде чем доставать окружающих, все таки стоит сперва отправиться на поклон к начальству и попытаться их убедить хотя бы на денек разрешить мне её снести и попытаться восстановить все, как было.
Спасибо еще раз, порою выговориться бывает полезно, посмотрим, что получится...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
индекс видов не вынесен на отдельный диск, там есть место, он не покоцан?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
вьюшка обычная?
 
D

Dewa1s

индекс видов не вынесен на отдельный диск, там есть место, он не покоцан?
только сегодня хотел отписаться :lovecodeby:
Проблема в данном случае действительно оказалась с индексами, вчера с утреца сам до этого допетрил, шифт+F9 и аналогичное действие на сервер-сайде помогает 100%, но только на сутки опять же.
Сегодня будем более тотально искать причину тупняка, но это уже хоть что-то.
Хотя все равно непонятно, почему тупят только базы с новым шаблоном, причем даже после того, как их откатили на старый шаблон... при этом если в другие базы внести изменения точь в точь как в новом шаблоне в ручную - тупняка нет, но если обновить по шаблону - тупняк есть и он останется, даже если шаблон откатить обратно на более старый.
 
D

Dewa1s

Простите, наврал походу. Сейчас при мне сносили индексы у представления, базы и вообще все на сервере(sic!), включая полнотекстовые, и создавали заново - доки не появились.
Shift+F9 из клиента - все доки отобразились у всех клиентов.
Может просто у меня уже ум за разум заходит и я не туда свои ручки тяну? Какой самый кошерный способ выполнить аналог Shift+F9 для представления на стороне сервера?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Ну... есть еще Ctrl + Shift + F9, если не путаю. Обновление всех вьюх, но с клиента.
А на сервере.. Задача UpdateAll кажется.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
пришла мысля - мобуть там формула отбора на время завязана
 
D

Dewa1s

вот еще забавный факт из жизни нашего городка: Shift+F9 обновляет индексы и все нормально, а вот Ctrl+Shift+F9 эффекта никакого не дает вообще.
Давайте попробую подробнее расписать, как все выглядит - мож у меня глаз замылился и я чего не вижу...
Вот так выглядит база после перестройки представления:
original.JPG
Это, можно сказать, эталон, в котором отображаются все ответные доки.
А вот скрин из реплики этой же базы, в котором Шифт+Ф9 не запускался
replica.JPG
Пропали все ответные документы одного типа. остались только информашки, разница между ними и пропавшими - поле punkttype, которое является набором переключателей.
Теперь следим за руками - если зайти в дизайнер, открыть в нем это представление из реплики -
replica_editor.JPG
эта дрянь отображает все документы как надо.
При этом, не смотря на то, что на основной базе документы уже отображаются, на реплике они отображаться не будут в этом представлении ни завтра, ни послезавтра.
Теперь о представлении подробнее:
Последнее изменение представления датировано 2011 годом, формула отбора документов:
SELECT (form="firstdoc" | form="task" | form="outdoc" | form="secdoc")&delivereddate=""
Первый столбец, отвечающий за иконки:
@If(form="firstdoc"|form="secdoc"& express="1";124;form="task";@If(punkttype="1";37;punkttype="2";150;11);"")
- тоже ничего особо интересного
Второй столбец, отвечающий за ответные документы:
Код:
ttext1:=("КИ "+"; Автор: "+tasksigner+"; контрольный срок: "+@Text(@Date(dateto))+" ("+@Text(dayover)+")"):("Исполнитель: "+@If(otvisp!="";@Implode(otvisp:isp;",");@Implode(isp;","))):("Задание: "+subject):(@If(state="2";"ИСПОЛНЕН: "+@Text(@Date(completedate));"НА ИСПОЛНЕНИИ"));
ttext2:=("КИ "+"; Автор: "+tasksigner+" Дата: "+@Text(punktdate)):("Адресат: "+(@Implode(infoadresat;";"))):("Содержание: "+subject);
@If(form="task";@If(punkttype="3";ttext2;ttext1);("Док. №"+" "+docregnum+" от "+@Text(docregdate)):("Автор/(Адресат): "+@Implode(authorfio;";")+" ("+@Implode(adrfio;";")+")"):("Тема: "+subject))
Для справки - пробовал менять этот код на отображение одного поля без всякой логики - эффекта нуль.
Не уверен, что есть смысл показывать остальные столбцы - там вообще ничего интересного.
Обновили по шаблону 2 базы на разных серверах, создали эти злосчастные документы - на следующий день они не пропали. Разница между базами с пропадающими и непропадающими документами - в пропадающих создается много таких документов, в наших свежеобновленных же по 4-5 документов в день такого типа. Сегодня отработаем версию о связи пропадания документов с количеством подобных в базе - сделаем копию базы с пропадающими документами и копию нормальной, скопируем в них документы из косячной и создадим штук 5-10 новых. Посмотрим, чего получится...
 

vited

Green Team
17.11.2010
51
1
BIT
0
Может вам пасхальное яйцо заложили с проверкой на изменение дизайна. Кто разработчик приложения?
На форме есть Readers поля? Какие у них значения? Посмотрите внимательно, что меняет агент. Смотрите все строки где есть = или ReplaceItemValue, AppendValue, New NotesItem
У вас случаем не два одноименных представления в базе?
 
D

Dewa1s

В общем.
В среду снесли все индексы и создали заново - никакой реакции небыло.
В четверг я разразился постом выше, а начиная с пятницы проблема исчезла, хотя в четверг я кроме шифт+ф9 и ктрл+шифт+ф9 нихрена не жамкал. Хотя эти комбинации использовал и раньше и они не особо помогали.
Возможно рецептом исправления сей порнографии было удаление индексов + обновление всех представлений... еще пару дней надо понаблюдать, чтобы сказать точно...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!