|
1С ведет себя как квантовая частица | ☑ | ||
---|---|---|---|---|
0
mrCreator
26.11.20
✎
14:27
|
Всем привет!
Столкнулся сегодня с очень странной проблемой. Доработанный код работает если подключена отладка на сервере и не работает если отладка отключена, раньше такого не видел. Если подключена отладка только на клиенте, то тоже не работает. Не каких процессорных директив НаСервере и НаКлиенете в данном участке кода нет. Режим запуска тонкий клиент, версия платформы 8.3.16. Кэш чистить пробовал, перезапускать службу сервера и даже перезагружать весь сервер целиком пробовал. Вообще нет мыслей, что это вообще может быть и как с этим бороться. Гугл на данный запрос предлагает только способы настройки отладки на сервере, ну либо я не могу сформулировать для него суть проблемы. Подскажите плиз куда копать? |
|||
1
Cyberhawk
26.11.20
✎
14:28
|
Почисти таблицу Config от лишних записей
|
|||
2
mrCreator
26.11.20
✎
14:30
|
прошу прощения опечатался, про директивы. Хотел написать не каких кроме НаСервере и НаКлиенете
|
|||
3
ZDenis
26.11.20
✎
14:32
|
(0) У тебя точка останова не останавливается или как ты определяешь, что код не работает? Когда отладка на сервере отключена, то ты просто не увидишь (через отладчик) выполнение серверных процедур
|
|||
4
Жан Пердежон
26.11.20
✎
14:32
|
что за код?
|
|||
5
ДенисЧ
26.11.20
✎
14:33
|
В табло переменных что написано?
|
|||
6
mrCreator
26.11.20
✎
14:34
|
Результат работы кода отображается на форме. Отладка подключена - результат есть, Отладка отключена - результата нет.
|
|||
7
mrCreator
26.11.20
✎
14:37
|
(1) Как это сделать безопасно? Нельзя же просто взять и очистить таблицу? Как определить какие записи лишние?
|
|||
8
timurhv
26.11.20
✎
14:39
|
(7) обновить конфигурацию монопольно
|
|||
9
Жан Пердежон
26.11.20
✎
14:40
|
конфу еще раз обновить, кэш на сервере почистить...
может и сам код кривой, хотя где-то несколько месяцев назад уже видел уже, что только при включенной отладке что-то работает |
|||
10
mrCreator
26.11.20
✎
14:43
|
(9) Это уже все опробовано и код рабочий. В режиме отладки на сервере же он работает...
|
|||
11
mrCreator
26.11.20
✎
14:47
|
(8) и (1) предложения звучат разумно. Но вот прям сейчас обновить монопольно нет возможности, вечером можно будет попробовать. А вот как безопасно почистить конфиги пока не разобрался. В SQL Есть 2 таблицы конфиг. Насколько я понял одна Это конфигурация БД, вторая основная Конфигурация. Вероятно где то они между собой конфликтуют.... Кто может подсказать где можно почитать на тему как их ручками синхронизировать?
|
|||
12
Garykom
гуру
26.11.20
✎
14:52
|
Точно дело в отладке а не в режиме запуска (Тонкий/Толстый)
|
|||
13
Garykom
гуру
26.11.20
✎
14:52
|
(12)+ ?
|
|||
14
mrCreator
26.11.20
✎
14:54
|
Точно. Более того Захожу в конфигуратор, оттуда запускаю отладку, проверяю, все работает. Не закрывая сеанса, отсоединяю отладку проверяю снова - не работает.
Вообще Режим запуска это первое на что подумал, после кэша. |
|||
15
Волшебник
26.11.20
✎
14:58
|
Гейзенбаг (англ. heisenbug) — жаргонный термин, используемый в программировании для описания программной ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения.
|
|||
16
Garykom
гуру
26.11.20
✎
14:58
|
Ну я бы проверил на другом компе/сервере
|
|||
17
Cyberhawk
26.11.20
✎
14:58
|
(14) Покажи код, который не работает
|
|||
18
mrCreator
26.11.20
✎
15:06
|
(15) Прикольно. Новый для меня термин, буду знать :)
(16) На другом компе поведение такое же. (17) Не знаю как это поможет но всё же: Строка где написано РасчитатьИЗаполнитьПремиальныеДляСборщиков не работает без отладки и работает с отладкой &НаКлиенте Процедура РасчетСдельныхПремий(Команда) //Вызовим типовую команду заполнения документа Заполнить(Команда); //Расчет ЗП РасчитатьИЗаполнитьПремиальныеДляСборщиков(); //Типовая команда после ввода данных в строках РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактированияСотрудников(ЭтаФорма, ОписаниеТаблицыНачислений(ЭтаФорма)); КонецПроцедуры |
|||
19
Kassern
26.11.20
✎
15:15
|
(18) ох уж эти динамические обновления...В свое время горя хапнул с ними, при таком обновлении у части пользователей все работает, у других, пока кэш клиентский не почистишь, работает по старому. Поэтому лучше в отведенные часы проводить обновление монопольно и будет вам счастье. Кэш сами удаляли из папок Local и Roaming, или ключом запуска?
|
|||
20
Жан Пердежон
26.11.20
✎
15:19
|
то есть в (0) было динамическое обновление?
|
|||
21
Kassern
26.11.20
✎
15:22
|
(20) Очень похоже на это
|
|||
22
Вафель
26.11.20
✎
15:24
|
попробуй сообщить в разных местах
|
|||
23
Garykom
гуру
26.11.20
✎
16:14
|
(18) >На другом компе поведение такое же.
Очень странно Используй (22) внутри РасчитатьИЗаполнитьПремиальныеДляСборщиков() |
|||
24
Garykom
гуру
26.11.20
✎
16:15
|
(23)+ Еще лучше пиши в файл лога вместо Сообщить
|
|||
25
Garykom
гуру
26.11.20
✎
16:15
|
(24)+ В 1С есть ЖР, но мне неудобно его как лог
|
|||
26
Йохохо
26.11.20
✎
16:17
|
(22)(23) был опыт? у меня в 8.3.10 похожий барабашка
|
|||
27
mrCreator
27.11.20
✎
14:04
|
И так отчитываюсь о проделанной работе.
Вечером всех выгнал из базы, удалил кнопки и процедуры, добавил все заново, для чистоты эксперимента кнопки и процедуры обозвал другими именами, что бы наверняка. В монопольном режиме все обновил. И о чудо проверяю без отладки, все работает. Но музыка играла не долго. Пришел бухгалтер, начал проверять и у него на компьютере все как и было. Первым делом чищу кэш. Не помогает. Пробую зайти под своим пользователем, не помогает. Пробуем проверить на компьютере, где эта процедура вообще не когда не вызывалась, не помогает. Возвращаюсь на сервер проверить еще раз и оп. на сервере теперь тоже не работает. Как такое вообще может быть? На сервере я документ на котором проверю даже не закрывал. Просто еще раз нажал для проверки в уже открытом документе и у меня на ходу то что работало перестало работать. |
|||
28
Kassern
27.11.20
✎
14:39
|
(27) это все фиксики виноваты, пока вы бегали к буху, они ваше обновление отменили. Скорее всего в сговоре с бухгалтером(
А если серьезно, у меня что-то подобное было при динамическом обновлении и PostgreSQL в далеком 2014г. На мелкомягком скуле такой проблемы не замечал. Попробуйте на бекапе поиграться. Выгрузить/загрузить в отдельную базу копию рабочей. В этой копии сделать эти же изменения и проверить под бухом будет ли в копии работать. Для очистки кэша я обычно удаляю полностью все папки с гуидами из папок Local и Roaming, чтобы наверняка. |
|||
29
Kassern
27.11.20
✎
14:40
|
(28) на крайняк попробовать еще версию платформы сменить
|
|||
30
Garykom
гуру
27.11.20
✎
14:43
|
(29) + и бухгалтера
|
|||
31
Волшебник
27.11.20
✎
14:45
|
(18) По-русски говорят "плавающая ошибка" или "глюк".
|
|||
32
ДенисЧ
27.11.20
✎
14:52
|
(30) И место работы )))
|
|||
33
Cyberhawk
27.11.20
✎
21:40
|
(27) Это потому что ты так и не почистил таблицу Config и/или ConfigSave и/или серверный кэш пользователя ОС службы агента и/или не рестартанул после этого кластер (с очисткой кэша из предыдущего условия).
ConfigSave полностью чистишь. В Config - только записи с FileName = commit / dbStruFinal / %dyn%. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |