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

1С ведет себя как квантовая частица

1С ведет себя как квантовая частица
Я
   mrCreator
 
26.11.20 - 14:27
Всем привет!

Столкнулся сегодня с очень странной проблемой. Доработанный код работает если подключена отладка на сервере и не работает если отладка отключена, раньше такого не видел. Если подключена отладка только на клиенте, то тоже не работает. Не каких процессорных директив НаСервере и НаКлиенете в данном участке кода нет.  Режим запуска тонкий клиент, версия платформы 8.3.16. Кэш чистить пробовал, перезапускать службу сервера и даже перезагружать весь сервер целиком пробовал.

Вообще нет мыслей, что это вообще может быть и как с этим бороться. Гугл на данный запрос предлагает только способы настройки отладки на сервере, ну либо я не могу сформулировать для него суть проблемы.

Подскажите плиз куда копать?
   Cyberhawk
 
1 - 26.11.20 - 14:28
Почисти таблицу Config от лишних записей
   mrCreator
 
2 - 26.11.20 - 14:30
прошу прощения опечатался, про директивы. Хотел написать не каких кроме НаСервере и НаКлиенете
   ZDenis
 
3 - 26.11.20 - 14:32
(0) У тебя точка останова не останавливается или как ты определяешь, что код не работает? Когда отладка на сервере отключена, то ты просто не увидишь (через отладчик) выполнение серверных процедур
   Жан Пердежон
 
4 - 26.11.20 - 14:32
что за код?
   ДенисЧ
 
5 - 26.11.20 - 14:33
В табло переменных что написано?
   mrCreator
 
6 - 26.11.20 - 14:34
Результат работы кода отображается на форме. Отладка подключена - результат есть, Отладка отключена - результата нет.
   mrCreator
 
7 - 26.11.20 - 14:37
(1) Как это сделать безопасно? Нельзя же просто взять и очистить таблицу? Как определить какие записи лишние?
   timurhv
 
8 - 26.11.20 - 14:39
(7) обновить конфигурацию монопольно
   Жан Пердежон
 
9 - 26.11.20 - 14:40
конфу еще раз обновить, кэш на сервере почистить...
может и сам код кривой, хотя где-то несколько месяцев назад уже видел уже, что только при включенной отладке что-то работает
   mrCreator
 
10 - 26.11.20 - 14:43
(9) Это уже все опробовано и код рабочий. В режиме отладки на сервере же он работает...
   mrCreator
 
11 - 26.11.20 - 14:47
(8)  и (1)  предложения звучат разумно. Но вот прям сейчас обновить монопольно нет возможности, вечером можно будет попробовать. А вот как безопасно почистить конфиги пока не разобрался. В SQL Есть 2 таблицы конфиг. Насколько я понял одна Это конфигурация БД, вторая основная Конфигурация. Вероятно где то они между собой конфликтуют.... Кто может подсказать где можно почитать на тему как их ручками синхронизировать?
   Garykom
 
12 - 26.11.20 - 14:52
Точно дело в отладке а не в режиме запуска (Тонкий/Толстый)
   Garykom
 
13 - 26.11.20 - 14:52
(12)+ ?
   mrCreator
 
14 - 26.11.20 - 14:54
Точно. Более того Захожу в конфигуратор, оттуда запускаю отладку, проверяю, все работает. Не закрывая сеанса, отсоединяю отладку проверяю снова - не работает.

Вообще Режим запуска это первое на что подумал, после кэша.
   Волшебник
 
15 - 26.11.20 - 14:58
Гейзенбаг (англ. heisenbug) — жаргонный термин, используемый в программировании для описания программной ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения.
   Garykom
 
16 - 26.11.20 - 14:58
Ну я бы проверил на другом компе/сервере
   Cyberhawk
 
17 - 26.11.20 - 14:58
(14) Покажи код, который не работает
   mrCreator
 
18 - 26.11.20 - 15:06
(15) Прикольно. Новый для меня термин, буду знать :)

(16) На другом компе поведение такое же.  

(17) Не знаю как это поможет но всё же:

Строка где написано РасчитатьИЗаполнитьПремиальныеДляСборщиков не работает без отладки и работает с отладкой

&НаКлиенте
Процедура РасчетСдельныхПремий(Команда)
    //Вызовим типовую команду заполнения документа

    Заполнить(Команда);
    
    //Расчет ЗП

    РасчитатьИЗаполнитьПремиальныеДляСборщиков();
    
    //Типовая команда после ввода данных в строках

    РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактированияСотрудников(ЭтаФорма, ОписаниеТаблицыНачислений(ЭтаФорма));
КонецПроцедуры
   Kassern
 
19 - 26.11.20 - 15:15
(18) ох уж эти динамические обновления...В свое время горя хапнул с ними, при таком обновлении у части пользователей все работает, у других, пока кэш клиентский не почистишь, работает по старому. Поэтому лучше в отведенные часы проводить обновление монопольно и будет вам счастье. Кэш сами удаляли из папок Local и Roaming, или ключом запуска?
   Жан Пердежон
 
20 - 26.11.20 - 15:19
то есть в (0) было динамическое обновление?
   Kassern
 
21 - 26.11.20 - 15:22
(20) Очень похоже на это
   Вафель
 
22 - 26.11.20 - 15:24
попробуй сообщить в разных местах
   Garykom
 
23 - 26.11.20 - 16:14
(18) >На другом компе поведение такое же.
Очень странно

Используй (22) внутри РасчитатьИЗаполнитьПремиальныеДляСборщиков()
   Garykom
 
24 - 26.11.20 - 16:15
(23)+ Еще лучше пиши в файл лога вместо Сообщить
   Garykom
 
25 - 26.11.20 - 16:15
(24)+ В 1С есть ЖР, но мне неудобно его как лог
   Йохохо
 
26 - 26.11.20 - 16:17
(22)(23) был опыт? у меня в 8.3.10 похожий барабашка
   mrCreator
 
27 - 27.11.20 - 14:04
И так отчитываюсь о проделанной работе.

Вечером всех выгнал из базы, удалил кнопки и процедуры, добавил все заново, для чистоты эксперимента кнопки и процедуры обозвал другими именами, что бы наверняка.

В монопольном режиме все обновил. И о чудо проверяю без отладки, все работает.

Но музыка играла не долго. Пришел бухгалтер, начал проверять и у него на компьютере все как и было. Первым делом чищу кэш. Не помогает. Пробую зайти под своим пользователем, не помогает. Пробуем проверить на компьютере, где эта процедура вообще не когда не вызывалась, не помогает. Возвращаюсь на сервер проверить еще раз и оп. на сервере теперь тоже не работает.

Как такое вообще может быть? На сервере я документ на котором проверю даже не закрывал. Просто еще раз нажал для проверки в уже открытом документе и у меня на ходу то что работало перестало работать.
   Kassern
 
28 - 27.11.20 - 14:39
(27) это все фиксики виноваты, пока вы бегали к буху, они ваше обновление отменили. Скорее всего в сговоре с бухгалтером(
А если серьезно, у меня что-то подобное было при динамическом обновлении и PostgreSQL в далеком 2014г. На мелкомягком скуле такой проблемы не замечал. Попробуйте на бекапе поиграться. Выгрузить/загрузить в отдельную базу копию рабочей. В этой копии сделать эти же изменения и проверить под бухом будет ли в копии работать.
Для очистки кэша я обычно удаляю полностью все папки с гуидами из папок Local и Roaming, чтобы наверняка.
   Kassern
 
29 - 27.11.20 - 14:40
(28) на крайняк попробовать еще версию платформы сменить
   Garykom
 
30 - 27.11.20 - 14:43
(29) + и бухгалтера
 
 Рекламное место пустует
   Волшебник
 
31 - 27.11.20 - 14:45
(18) По-русски говорят "плавающая ошибка" или "глюк".
   ДенисЧ
 
32 - 27.11.20 - 14:52
(30) И место работы )))
   Cyberhawk
 
33 - 27.11.20 - 21:40
(27) Это потому что ты так и не почистил таблицу Config и/или ConfigSave и/или серверный кэш пользователя ОС службы агента и/или не рестартанул после этого кластер (с очисткой кэша из предыдущего условия).
ConfigSave полностью чистишь. В Config - только записи с FileName = commit / dbStruFinal / %dyn%.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.