Коллеги, добрый вечер.
обращаюсь на форум редко и в крайних случаях... НО !!!
это полный жесть
платформа - 1С:Предприятие 8.3 (8.3.10.2466)
схема серверов - все виртуальные - я не админ серверов:
№ 1. терминальный сервер для юзеров
№ 2. сервер 1С:Предприятия
№ 3. SQL
я работаю в конфигураторе на сервере № 2 - пишу код... добавляю объекты... сохраняю конфигурацию...
вот тут сразу нюанс - бывает динамическое обновление и бывает с завершением работы... хотя описанная ниже проблема была в обоих случаях...
сохранил конфигурацию... супер... работаем...
и тут я закрываю конфигуратор... или без закрытия - только перезашёл в режим Предприятия
открываю - и ОПЛЯ !!!
функций (или процедуры), которую я только что писал - НЕТ !!!
Объясню: для исполнения функции была создана общая форма (сохранилась в конфигураторе), кнопка на панели инструментов (сохранилась в конфигураторе), а вот функции/процедуры в ОБЩЕМ модуле - нет... она тупо пропала...
на первых разах я закрывал глаза - грешил на темпы/кеши и т.д. - чистил, потом дописывал код и вроде всё ок.
но когда пропал кусок кода недельной давности (или наоборот - 5 минут назад написал - и он пропал) - тогда я задумался (особенно когда код не 3 строки, а реально 1-2 дня работы + ответственность за работу)
Конфу сохраняю - 100% ))) сначала через Ctrl+S - потом через обновление конфигурации.
P.S. сначал грешил на "запароленный" код в общем модуле... но потом "болячка" перешла и на внешние обработки.
Буду очень рад любым советам !
обращаюсь на форум редко и в крайних случаях... НО !!!
это полный жесть
платформа - 1С:Предприятие 8.3 (8.3.10.2466)
схема серверов - все виртуальные - я не админ серверов:
№ 1. терминальный сервер для юзеров
№ 2. сервер 1С:Предприятия
№ 3. SQL
я работаю в конфигураторе на сервере № 2 - пишу код... добавляю объекты... сохраняю конфигурацию...
вот тут сразу нюанс - бывает динамическое обновление и бывает с завершением работы... хотя описанная ниже проблема была в обоих случаях...
сохранил конфигурацию... супер... работаем...
и тут я закрываю конфигуратор... или без закрытия - только перезашёл в режим Предприятия
открываю - и ОПЛЯ !!!
функций (или процедуры), которую я только что писал - НЕТ !!!
Объясню: для исполнения функции была создана общая форма (сохранилась в конфигураторе), кнопка на панели инструментов (сохранилась в конфигураторе), а вот функции/процедуры в ОБЩЕМ модуле - нет... она тупо пропала...
на первых разах я закрывал глаза - грешил на темпы/кеши и т.д. - чистил, потом дописывал код и вроде всё ок.
но когда пропал кусок кода недельной давности (или наоборот - 5 минут назад написал - и он пропал) - тогда я задумался (особенно когда код не 3 строки, а реально 1-2 дня работы + ответственность за работу)
Конфу сохраняю - 100% ))) сначала через Ctrl+S - потом через обновление конфигурации.
P.S. сначал грешил на "запароленный" код в общем модуле... но потом "болячка" перешла и на внешние обработки.
Буду очень рад любым советам !
По теме из базы знаний
Найденные решения
вобщем, сделали следующее:
- установили сервер 1С вместе с SQL;
- естественно, переустановили платформу 1С - 8.3.10.2561;
- серверный кэш не чистили, т.к. сервер 1С находился на другом сервере;
(2)
и
(25) - проверили базу SQL.
за сегодня сделал 1 обновление с завершением работы пользователей + 5 динамических обновлений = всё нормально !!!
никакой код не пропал... всё что я дописываю - сохраняется...
но сама проблема, как по мне, так и не выявлена - или кэш (серверный или пользовательский), или платформа глючная, или всё вместе (и можно без хлеба :) )
P.S. всем спасибо за советы !!!
- установили сервер 1С вместе с SQL;
- естественно, переустановили платформу 1С - 8.3.10.2561;
- серверный кэш не чистили, т.к. сервер 1С находился на другом сервере;
(2)
и
(25) - проверили базу SQL.
за сегодня сделал 1 обновление с завершением работы пользователей + 5 динамических обновлений = всё нормально !!!
никакой код не пропал... всё что я дописываю - сохраняется...
но сама проблема, как по мне, так и не выявлена - или кэш (серверный или пользовательский), или платформа глючная, или всё вместе (и можно без хлеба :) )
P.S. всем спасибо за советы !!!
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Периодически происходит. И на файловых и на серверных базах.
Борюсь следующим образом:
1. Хранилище. Чтобы если вдруг "ой" можно было быстро накатить то, что нужно.
2. Замечена проблема с применением изменений при ну-очень-долго-открытом-конфигураторе. Перезапуск конфигуратора раз в день у меня эту проблему лечит.
Ну и да. ТИИ, очистка кэша время от времени, протирка монитора влажной тряпкой и молитвы всемогущему Ктулху....
Борюсь следующим образом:
1. Хранилище. Чтобы если вдруг "ой" можно было быстро накатить то, что нужно.
2. Замечена проблема с применением изменений при ну-очень-долго-открытом-конфигураторе. Перезапуск конфигуратора раз в день у меня эту проблему лечит.
Ну и да. ТИИ, очистка кэша время от времени, протирка монитора влажной тряпкой и молитвы всемогущему Ктулху....
(1)Как вариант у вас после обновления не фиксируются транзакции записи кода в таблицы конфигурации. Проверьте SQL сервер, может висят не закрытые транзакции, или дедлок транзакции есть. Рекомендую проверить саму базу средствами SQL, если нет возможности проверить рабочую, проверьте резервную копию сделанную средствами sql
(1)
В 1С не правильно назвали динамическое обновление - правильно деманическое обновление. Я спасался ключом очистки кеша при запуске клиента, но работает клиент сильно медленнее.
вот тут сразу нюанс - бывает динамическое обновление и бывает с завершением работы... хотя описанная ниже проблема была в обоих случаях...
В 1С не правильно назвали динамическое обновление - правильно деманическое обновление. Я спасался ключом очистки кеша при запуске клиента, но работает клиент сильно медленнее.
(2) спасибо за предложение
но есть один афигенский минус - я могу себе позволить такую роскошь, как целостность базы - один раз в месяц (и то не всегда)
количество одновременно рабочих юзеров в БД - зашкаливает
прервать работу можно только в крайних случаях
один час простоя предприятия - около 10000 уе (в среднем)
насчёт выгрузки/загрузки *.dt - тоже есть нюансы
база "весит" 600 Гб - выгрузка будет происходить долго - про загрузку ДТ - вообще молчу - для меня это просто непозволительная роскошь (уже говорил выше)
P.S. база была отключена с одного 1С-серера (8,3,6) и "переподключена" на новый сервер (8,3,10) - но физически БД осталась на старом SQL (она там лежала всегда)
при переносе - были почищены темпы сервера (так мне сказали админы)
может в этом и кроется весь корень проблемы ?
но есть один афигенский минус - я могу себе позволить такую роскошь, как целостность базы - один раз в месяц (и то не всегда)
количество одновременно рабочих юзеров в БД - зашкаливает
прервать работу можно только в крайних случаях
один час простоя предприятия - около 10000 уе (в среднем)
насчёт выгрузки/загрузки *.dt - тоже есть нюансы
база "весит" 600 Гб - выгрузка будет происходить долго - про загрузку ДТ - вообще молчу - для меня это просто непозволительная роскошь (уже говорил выше)
P.S. база была отключена с одного 1С-серера (8,3,6) и "переподключена" на новый сервер (8,3,10) - но физически БД осталась на старом SQL (она там лежала всегда)
при переносе - были почищены темпы сервера (так мне сказали админы)
может в этом и кроется весь корень проблемы ?
С динамическим обновлением бывает такая штука, что когда ты обновляешь динамически, а потом обновляешь нормально, система сносит то, что было обновлено динамически. На 8.3.5 четко было такое поведение на клиент-серверном варианте: если было два динамических обновления подряд, то после обычного обновления оба результата динамического обновления сносились, оставалось то, что было до них и новое, которое обновлено в ходе нединамического обновления.
Причина, полагаю, кроется в ошибке 1С, когда после второго динамического обновления генерятся объекты "третьего поколения", т.е. с соответствующими суффиксами, а при обычном обновлении система думает, что они уже не нужны и сносит их, полагая, что в новых метаданных они есть. Криворукие 1С-ные программисты, и ошибки у них однообразные.
Причина, полагаю, кроется в ошибке 1С, когда после второго динамического обновления генерятся объекты "третьего поколения", т.е. с соответствующими суффиксами, а при обычном обновлении система думает, что они уже не нужны и сносит их, полагая, что в новых метаданных они есть. Криворукие 1С-ные программисты, и ошибки у них однообразные.
(7)
однако
А что тут понимать? Есть фирма 1С, в ней работают криворукие программисты, которые "владеют" ООП в "полном объеме", и пишут не на 1С, конечно, а на других языках программирования. Но т.к. другие языки программирования не изобилуют рекомендациями "не используй запрос в цикле" и прочими, которыми снабжает фирма 1С прикладных 1С-ных программистов, пишущих на языке 1С, то ООП-шные программисты не особо парятся на тему стандартов, откуда и вылезают запросы в цикле при реструктуризации и общая невнимательность к деталям предыдущих динамических обновлений при очередном полном обновлении - просто они забыли, что это обновление не содержит изменений предыдущих динамических обновлений, а функция сноса старого мусора от динамических обновлений отрабатывает штатно.
(8) дело в том, что такая ситуация наблюдается только после перехода на 8.3.10.2466
и тут тоже есть нюанс - не только при динамическом обновлении пропадает код - если Вы прочтёте мой первый пост - код написан 4-5 дней назад - а сегодня пропал... динамических обновлений было - ОГОГО сколько...
но, возможно, этот и завтра пропадёт - я не знаю...
закономерности я пока что не нашёл...
и тут тоже есть нюанс - не только при динамическом обновлении пропадает код - если Вы прочтёте мой первый пост - код написан 4-5 дней назад - а сегодня пропал... динамических обновлений было - ОГОГО сколько...
но, возможно, этот и завтра пропадёт - я не знаю...
закономерности я пока что не нашёл...
(9) У меня на платформе 8.3.10.2561 пару раз пропадали объекты, а конкретно команды в обработках. База файловая. Сделал пару обработок. В тестовой базе отладил, потестил, все ок. Сохранил как внешние обработки на флешку, для переноса в рабочую базу. В рабочей базе открыл, а в обработках нет команд, ни в одной, ни в другой. Благо там кода было мизер.
(8) Я так думаю, что тут дело не в криворукости (она лишь следствие), а в отсутствии ответственности, как таковой. Типа вот продукт "As Is" и делайте что хотите, мы не за что не отвечаем. Больше глюков - больше подписок на ИТС, с надеждой, что в новом обновлении их не будет. Код самой платформы (в силу его закрытости) оценить не представляется возможным, но вот код на встроенном языке 1С в типовых написан совершенно не оптимально, причем нарушаются самые элементарные принципы. В результате современные конфигурации просто жутко какие тормозные.
Причем однажды получилось благодаря хранилищу как бы задокументировать и своевременно откатить такую бяку.
Обычно при разработке в копии через хранилище нет необходимости в динамических обновлениях и соответственно кэш не сбоит.
Но товарищ однажды умудрился наообновляться динамически и на копии и в результате ухитрился запушить в хранилище версию модуля где-то полугодичной давности, после которой уже было куча обновлений.и доработок.
Так что да - такое случается. Какая-то кривая магия наподобие описанной в (5).
Обычно при разработке в копии через хранилище нет необходимости в динамических обновлениях и соответственно кэш не сбоит.
Но товарищ однажды умудрился наообновляться динамически и на копии и в результате ухитрился запушить в хранилище версию модуля где-то полугодичной давности, после которой уже было куча обновлений.и доработок.
Так что да - такое случается. Какая-то кривая магия наподобие описанной в (5).
Такие глюки бывали не только на 8.3. Танцы на граблях это конечно весело, но больно
Не пишите в продуктиве.
Перед каждым релизом чистите кэш (в базе разработки и в продуктовой базе под тем пользователем из под которого будет обнова).
Не пишите в продуктиве.
Перед каждым релизом чистите кэш (в базе разработки и в продуктовой базе под тем пользователем из под которого будет обнова).
спасибо всем, кто предлагал свои варианты решения проблемы
но, к сожалению, все варианты - не подходят
1. постоянно чистить кэш - не помогает (уже делаю это на протяжении недели)
2. SQL - 2014
3. каждый раз писать в тестовой базе, а потом переносить всё в продуктив - как-то не очень
P.S. вчера опять пропал кусок кода, который был дописан в уже существующей функции
бред-бредом...
хоть бери и все коды храни в текстовом файле
но, к сожалению, все варианты - не подходят
1. постоянно чистить кэш - не помогает (уже делаю это на протяжении недели)
2. SQL - 2014
3. каждый раз писать в тестовой базе, а потом переносить всё в продуктив - как-то не очень
P.S. вчера опять пропал кусок кода, который был дописан в уже существующей функции
бред-бредом...
хоть бери и все коды храни в текстовом файле
(15)
по-Вашему мнению - мне нужно перестать писАть код (то есть, перестать выполнять свою работу)?
это тоже не совсем правильно...
понимаю, что мои действия не вписываются в Вашу логику, но у меня особо выбора нет...
объясню ещё раз - динамических обновлений в день - я могу делать, допустим, 10-20 в день
но уже заметил - пропадает не тот код, который я только что написал или изменил...
пропадает код, написанный или пару дней назад или, скажем, с утра (а вечером он пропал)
тоесть, в течении дня - всё было нормально
даже было, что динамического обновления не происходило - просто завершался сеанс на сервере и я заходил в конфигуратор и обнаруживал мою "проблему"
это по меньшей мере странно, то что ты делаешь. есть ошибка, на которую нарвался и следовательно нужно менять подход. но нет, ты упорно продолжаешь делать то, что вызывает ошибку. где логика?
по-Вашему мнению - мне нужно перестать писАть код (то есть, перестать выполнять свою работу)?
это тоже не совсем правильно...
понимаю, что мои действия не вписываются в Вашу логику, но у меня особо выбора нет...
объясню ещё раз - динамических обновлений в день - я могу делать, допустим, 10-20 в день
но уже заметил - пропадает не тот код, который я только что написал или изменил...
пропадает код, написанный или пару дней назад или, скажем, с утра (а вечером он пропал)
тоесть, в течении дня - всё было нормально
даже было, что динамического обновления не происходило - просто завершался сеанс на сервере и я заходил в конфигуратор и обнаруживал мою "проблему"
(20) запретить тебе писать код я не вправе и не в силах. но если нравится прямиком править код в продуктиве, то кто ж тебя остановит? предлагаю вообще не закрывать конфигуратор, ведь все равно "завтра на работу" ;-)
самое смешное то, что приходят сюда люди вот так вот за советами... и тут же их игнорят. где логика?
самое смешное то, что приходят сюда люди вот так вот за советами... и тут же их игнорят. где логика?
(27) Вы меня извините, но от именно от Вас никакого совета не поступило.
остальные советы я не игнорирую и стараюсь на основании этих советов что-то предпринять...
но чистить каждый раз кэш - Вы такое делаете ? уверен, что нет...
каждый раз пишите код сначала с базе для тестов и только потом переносите в продуктив ? уверен что нет...
остальные советы я не игнорирую и стараюсь на основании этих советов что-то предпринять...
но чистить каждый раз кэш - Вы такое делаете ? уверен, что нет...
каждый раз пишите код сначала с базе для тестов и только потом переносите в продуктив ? уверен что нет...
(28)
Лично я именно так всегда и делаю. Даже если очень-очень срочно буквально буковку поправить надо. Во избежание.
По времени задержка смехотворна, если уже работаешь через хранилище. Разница в несколько кликов.
каждый раз пишите код сначала с базе для тестов и только потом переносите в продуктив ? уверен что нет...
Лично я именно так всегда и делаю. Даже если очень-очень срочно буквально буковку поправить надо. Во избежание.
По времени задержка смехотворна, если уже работаешь через хранилище. Разница в несколько кликов.
(29) замечено не только мной, что и в хранилище порой изменения не попадают.
Так что проблема работы с кешэм у 1С есть.
---
С учетом их упорного желания перевести людей на EDT и статьи про патч редактора формул фирмой Microsoft не в исходниках - мне порой кажется, что 1С тоже не имеет исходников своей платформы и свои костыли правит прям в асемблере.
Вот не знаю больше ни одной программы, которая не умеет работать со своим кэшем.
Так что проблема работы с кешэм у 1С есть.
---
С учетом их упорного желания перевести людей на EDT и статьи про патч редактора формул фирмой Microsoft не в исходниках - мне порой кажется, что 1С тоже не имеет исходников своей платформы и свои костыли правит прям в асемблере.
Вот не знаю больше ни одной программы, которая не умеет работать со своим кэшем.
(42)
1) Ну а мной (и не только) - не замечено. Все при работе через хранилище хорошо. Что значит - "изменения не попадают"? Конкретная последовательность действий?
2) Никто никого упорно на EDT не переводит. Это не замена конфигуратору, несмотря на детские страхи заскорузлых одинэсников :) Это альтернативный инструмент, удовлетворяющий запросы вполне конкретной прослойки разработчиков. Кому не надо, тот может спать спокойно - никто конфигуратор не отберет. Впаривать EDT рядовому одинэснику "в поле" - контрпродуктивно. Оно не для того.
3) Кэш кэшу рознь. В большинстве случаев подразумеваются гораздо более простые вещи, так что обобщать не стоит. Для обеспечения возможности динамического обновления разрабам пришлось заморочиться с версионностью метаданных, что все значительно усложнило.
1) Ну а мной (и не только) - не замечено. Все при работе через хранилище хорошо. Что значит - "изменения не попадают"? Конкретная последовательность действий?
2) Никто никого упорно на EDT не переводит. Это не замена конфигуратору, несмотря на детские страхи заскорузлых одинэсников :) Это альтернативный инструмент, удовлетворяющий запросы вполне конкретной прослойки разработчиков. Кому не надо, тот может спать спокойно - никто конфигуратор не отберет. Впаривать EDT рядовому одинэснику "в поле" - контрпродуктивно. Оно не для того.
3) Кэш кэшу рознь. В большинстве случаев подразумеваются гораздо более простые вещи, так что обобщать не стоит. Для обеспечения возможности динамического обновления разрабам пришлось заморочиться с версионностью метаданных, что все значительно усложнило.
(43)
1) Значит Вам везёт очень.
На закрытом форуме 1С есть тема с описанием этой проблемы.
Помещаем изменения в хранилище - получаем в другой базе - изменений нет.
Получаем ещё раз в той базе , где было помещено - и там изменения в коде пропадают.
Закономерности не выявили, как и закономерности - когда же сбоит их кэш.
1) Значит Вам везёт очень.
На закрытом форуме 1С есть тема с описанием этой проблемы.
Помещаем изменения в хранилище - получаем в другой базе - изменений нет.
Получаем ещё раз в той базе , где было помещено - и там изменения в коде пропадают.
Закономерности не выявили, как и закономерности - когда же сбоит их кэш.
(47) А, тогда понял. Да, такая фигня может быть при сбое кэша на машине разработчика. Хранилище тут непричем - что пришло, то и зафиксировалось.
Мы с этим не сталкиваемся, потому что никогда не делаем динамических обновлений на тестовых копиях. В этом просто нет необходимости. При работе через хранилище у каждого разработчика своя тестовая копия, поэтому нет никакой проблемы соблюдать это простое правило. А когда кроме отладочного сеанса ничего нет (типовой случай), то динамическое обновление и предлагаться не будет. Ну а если все-таки дрогнула рука или есть какие-то подозрения - кэш чистится в профилактических целях.
Мы с этим не сталкиваемся, потому что никогда не делаем динамических обновлений на тестовых копиях. В этом просто нет необходимости. При работе через хранилище у каждого разработчика своя тестовая копия, поэтому нет никакой проблемы соблюдать это простое правило. А когда кроме отладочного сеанса ничего нет (типовой случай), то динамическое обновление и предлагаться не будет. Ну а если все-таки дрогнула рука или есть какие-то подозрения - кэш чистится в профилактических целях.
(49) Речь шла про ТЕСТОВУЮ базу. Пустой коммит в хранилище - последствия динамических обновлений в ТЕСТОВОЙ базе, где в них нет никакой необходимости. Или ребята правили напрямую продакшн, а из него коммитили в хранилище? Ну блин... Это всегда плохая идея, даже не беря в расчет сбои кэша.
Просто всегда обновляйте рабочую только через хранилище и проблем не будет. Мы тоже нередко делаем динамические обновления в продакшене (всяко бывает), но за долгие годы проблемы возникали ТОЛЬКО после редактирования продакшена напрямую.
Просто всегда обновляйте рабочую только через хранилище и проблем не будет. Мы тоже нередко делаем динамические обновления в продакшене (всяко бывает), но за долгие годы проблемы возникали ТОЛЬКО после редактирования продакшена напрямую.
(14)
Почему бы и нет?
Сейчас все изменения пишутся в тестовой базе, грузятся в хранилище.
Рабочая база: подключиться к хранилищу -отключиться от хранилища- сохранить полученное.
Проблемы с пропаданием кусков, проблемы с динамическим обновлением на всех опробованных релизах платформы не встречены.
3. каждый раз писать в тестовой базе, а потом переносить всё в продуктив - как-то не очень
Почему бы и нет?
Сейчас все изменения пишутся в тестовой базе, грузятся в хранилище.
Рабочая база: подключиться к хранилищу -отключиться от хранилища- сохранить полученное.
Проблемы с пропаданием кусков, проблемы с динамическим обновлением на всех опробованных релизах платформы не встречены.
Встречался с таким (пропадание стародавних изменений при очередном обновлении). Но буквально два-три раза за многолетнюю практику. Как и с крахом конфы.
Это все наследие динамических обновлений. Т.к. при динамических обновлениях делается своеобразное версионирование изменений конфигурации, то с этими версиями в комбинации со сбойным кэшем (тоже из-за динамических обновлений) иногда возможны редкие "накладочки" самого разного рода при не совсем штатных ситуациях. В исключительных случаях - вплоть до краха конфы (и базы, если при этом делать резкие движения).
Все самые жесткие проблемы на моей памяти возникали после ручного редактирования конфы со сбойным кэшем и историей динамических обновлений.
Так как отказаться от динамических обновлений не получается, а принудительно переинициализировать кэш при каждом запуске - тоже жесть, то эмпирически выработался определенный рабочий процесс, страхующий от такого рода проблем: работать через хранилище и в рабочей базе ни в коем случае не делать изменений руками - только обновлением из хранилища. Судя по всему, такому обновлению сбойный кэш не помеха, в отличие от ручных правок при сбойном кэше.
Это все наследие динамических обновлений. Т.к. при динамических обновлениях делается своеобразное версионирование изменений конфигурации, то с этими версиями в комбинации со сбойным кэшем (тоже из-за динамических обновлений) иногда возможны редкие "накладочки" самого разного рода при не совсем штатных ситуациях. В исключительных случаях - вплоть до краха конфы (и базы, если при этом делать резкие движения).
Все самые жесткие проблемы на моей памяти возникали после ручного редактирования конфы со сбойным кэшем и историей динамических обновлений.
Так как отказаться от динамических обновлений не получается, а принудительно переинициализировать кэш при каждом запуске - тоже жесть, то эмпирически выработался определенный рабочий процесс, страхующий от такого рода проблем: работать через хранилище и в рабочей базе ни в коем случае не делать изменений руками - только обновлением из хранилища. Судя по всему, такому обновлению сбойный кэш не помеха, в отличие от ручных правок при сбойном кэше.
всем ещё раз спасибо за советы - приму к сведению
зашёл на users.v8.1c.ru
8.3.10.2561 11.08.17
8.3.10.2505 21.07.17
8.3.10.2466 05.07.17 - моя платформа
то есть вышло ещё - наверно буду менять платформу
отпишусь, как переусатновлю и всё проверю
P.S. одно из нововведений )))
П-предсказуемость )))
зашёл на users.v8.1c.ru
8.3.10.2561 11.08.17
8.3.10.2505 21.07.17
8.3.10.2466 05.07.17 - моя платформа
то есть вышло ещё - наверно буду менять платформу
отпишусь, как переусатновлю и всё проверю
P.S. одно из нововведений )))
Повышена предсказуемость работы клиентского приложения, использующего прямое соединение с сервером «1С:Предприятия». Снижена вероятность возникновения неожиданных «зависаний» при работе.
П-предсказуемость )))
всем ещё раз добрый вечер...
данное сообщение посвящается сторонникам "чистки кэша" - нифига не помогает !!!
принципиально - 2 дня перед каждым динамическим обновление чищу кэш...
причём сегодня было вот что (а был просто полный жесть):
- я добавил в уже существующую функцию общего модуля одно условие;
- сохранил БД;
- обновил БД динамически;
- перезашёл в конфигуратор и открыл эту фунцию - всё ОК;
- отошёл на 2-3 минуты поговорить по телефону (возле ноута никого не было - 100%);
- когда я вернулся обратно - светился "бочонок" обновления конфигурации - якобы я что-то там изменил;
- я нажал - "Сравнить, объеденить с конфигурацией БД" - и что я увидел (!!!) - слева, в основной БД, был мой "свежий "код - а справа, в конфигурации БД - его НЕТ - как-будто я его только-что не написал (см. пример - вложение №1)
- ок... сохраняю конфигурацию - закрываю конфигуратор... ЧИЩУ КЭШ !!!
- захожу в конфигуратор - нажимаю - Обновить конфигурацию - естественно, обновляю динамически.
- принципиально перезахожу в конфигуратор.
- открываю всё тот же общий модуль - мои изменения ОТСУТСТВУЮТ...
а потом было самое интересное - данную операцию я проделывал 2 раза подряд - мой код пропадал..
потом я (не осуждайте) - выкинул всех пользователей (добровольно/принудительно) - ещё раз обновил конфигурацию и всё стало нормально - прошло уже около 4 часов - код на месте )
данное сообщение посвящается сторонникам "чистки кэша" - нифига не помогает !!!
принципиально - 2 дня перед каждым динамическим обновление чищу кэш...
причём сегодня было вот что (а был просто полный жесть):
- я добавил в уже существующую функцию общего модуля одно условие;
- сохранил БД;
- обновил БД динамически;
- перезашёл в конфигуратор и открыл эту фунцию - всё ОК;
- отошёл на 2-3 минуты поговорить по телефону (возле ноута никого не было - 100%);
- когда я вернулся обратно - светился "бочонок" обновления конфигурации - якобы я что-то там изменил;
- я нажал - "Сравнить, объеденить с конфигурацией БД" - и что я увидел (!!!) - слева, в основной БД, был мой "свежий "код - а справа, в конфигурации БД - его НЕТ - как-будто я его только-что не написал (см. пример - вложение №1)
- ок... сохраняю конфигурацию - закрываю конфигуратор... ЧИЩУ КЭШ !!!
- захожу в конфигуратор - нажимаю - Обновить конфигурацию - естественно, обновляю динамически.
- принципиально перезахожу в конфигуратор.
- открываю всё тот же общий модуль - мои изменения ОТСУТСТВУЮТ...
а потом было самое интересное - данную операцию я проделывал 2 раза подряд - мой код пропадал..
потом я (не осуждайте) - выкинул всех пользователей (добровольно/принудительно) - ещё раз обновил конфигурацию и всё стало нормально - прошло уже около 4 часов - код на месте )
Прикрепленные файлы:
вобщем, сделали следующее:
- установили сервер 1С вместе с SQL;
- естественно, переустановили платформу 1С - 8.3.10.2561;
- серверный кэш не чистили, т.к. сервер 1С находился на другом сервере;
(2)
и
(25) - проверили базу SQL.
за сегодня сделал 1 обновление с завершением работы пользователей + 5 динамических обновлений = всё нормально !!!
никакой код не пропал... всё что я дописываю - сохраняется...
но сама проблема, как по мне, так и не выявлена - или кэш (серверный или пользовательский), или платформа глючная, или всё вместе (и можно без хлеба :) )
P.S. всем спасибо за советы !!!
- установили сервер 1С вместе с SQL;
- естественно, переустановили платформу 1С - 8.3.10.2561;
- серверный кэш не чистили, т.к. сервер 1С находился на другом сервере;
(2)
и
(25) - проверили базу SQL.
за сегодня сделал 1 обновление с завершением работы пользователей + 5 динамических обновлений = всё нормально !!!
никакой код не пропал... всё что я дописываю - сохраняется...
но сама проблема, как по мне, так и не выявлена - или кэш (серверный или пользовательский), или платформа глючная, или всё вместе (и можно без хлеба :) )
P.S. всем спасибо за советы !!!
Я сижу на такой же версии 1С (8.3.10.2466), но не столкнулся с проблемой автора темы. Наверное потому что я осознаю, чем чревато динамическое обновление и делаю его от силы раз в месяц, и сделав его - потом обязательно обновляюсь классически (вечером, когда никого нет). Грабли динамического обновления давно известны - и ходить по ним или обходить их - личный выбор каждого. Главное - выбрав хождение по граблям - не делать потом удивленное лицо и не бегать по форуму с криками "сроду такого не было и опять то же самое"...
Для не нулевого количества админов/программистов считается нормальным ставить ДВА независимых сервера 1с и подключать их к базе. Например на рабочем серваке и на рабочем компе.
Симптомы ну очень похожи...
Если за разработку без хранилища или прямо на рабочей базе просто сразу же увольняют, то за два сервера нужно как в старину ещё и руки ампутировать.
Симптомы ну очень похожи...
Если за разработку без хранилища или прямо на рабочей базе просто сразу же увольняют, то за два сервера нужно как в старину ещё и руки ампутировать.
> 3. каждый раз писать в тестовой базе, а потом переносить всё в продуктив - как-то не очень
> количество одновременно рабочих юзеров в БД - зашкаливает
> один час простоя предприятия - около 10000 уе (в среднем)
Да-да, юнит-тестирование придумали трусы))
> количество одновременно рабочих юзеров в БД - зашкаливает
> один час простоя предприятия - около 10000 уе (в среднем)
Да-да, юнит-тестирование придумали трусы))
У меня происходит такое же.
Дорабатываю кусок запроса. После динамического обновления выясняется, что допустил глупую ошибку и на запросе вылетает. Захожу, исправляю. Делаю динамическое обновление. Но ошибка свидетельствует о том, что изменения я не сделал. Как же так - я же вижу, что сделал! Делаю трассировку с точкой остановки на выполнение запроса... и о чудо! Когда проверяю содержимое запроса, вижу там... старый вариант! А на экране - новый!.. Делаю шаг на выполнение, вижу знакомую ошибку с выбросом в конфигуратор... в котором уже СТАРЫЙ ТЕКСТ!!! Только что, до остановки по ошибке, там был новый... Выхожу из конфигуратора, захожу... Проверяю, текст старый.
Снова корректирую, СОХРАНЯЮ, выхожу, захожу - текст новый. Запускаю динамическое обновление, дохожу до ошибки, выкидывает в конфигуратор... опять в нём текст старый.
Вот такие вот дела... Обновление кеша помогает, естественно, только на том компьютере, на котором ты его сделал. Но ведь прошлое обновление, в котором я допустил ошибку - накатилось без проблем! А то, в котором я его исправил - ни в какую.
Какие выводы для себя сделал:
1. Если после динамического обновления сразу опять делаешь динамическое обновление (к примеру, сразу обнаружил мелкую ошибку, исправил за секунду и пустил по новому) - жди длительного геморроя.
2. Если столкнулся с такой ситуацией - выхода два: первый (если выгнать всех не представляется возможным) - делать обновление кеша на том компьютере, на котором работают с исправленным модулем, молясь Ктулху, чтобы никто другой пока туда не лез; второй - выгонять всех и делать обновление не динамически, после чего произвольное количество времени (не прогнозируемо) динамическое обновление начинает работать правильно.
Есть еще два очень важных совета, которые я сформулировал опытным путём (не относятся прямо к описываемому глюку, а касаются всего опыта работы с 8.2-8.3):
1. Динамическое обновление после выхода из клиента имеет очень высокие шансы пройти с ошибкой; наоборот, обновление с трассируемым клиентом, который вы соглашаетесь для обновления закрыть по просьбе конфигуратора, имеет крайне низкие шансы пройти с проблемами.
Хотя по элементарной логике должно быть наоборот).
2. Если клиент после динамического обновления не грузится, создаю любую константу, удаляю её и обновляюсь по-новой (даже динамически).
3. Повторюсь! Не обновляться динамически сразу же после динамического обновления! Пойдите покурите или сделайте себе чай. После чего обновляйте. Возможно, проблема касается 1 минуты, возможно чуть больше, но, похоже, что при двух повторных обновлениях подряд мы получаем критическую ситуацию, после которой, не зная пункта 2. можно остановить работу всего предприятия.
Проблема была обнаружена на 8.3.10.2466 и 8.3.11.2867; раньше даже не подозревал о возможности такого.
Дорабатываю кусок запроса. После динамического обновления выясняется, что допустил глупую ошибку и на запросе вылетает. Захожу, исправляю. Делаю динамическое обновление. Но ошибка свидетельствует о том, что изменения я не сделал. Как же так - я же вижу, что сделал! Делаю трассировку с точкой остановки на выполнение запроса... и о чудо! Когда проверяю содержимое запроса, вижу там... старый вариант! А на экране - новый!.. Делаю шаг на выполнение, вижу знакомую ошибку с выбросом в конфигуратор... в котором уже СТАРЫЙ ТЕКСТ!!! Только что, до остановки по ошибке, там был новый... Выхожу из конфигуратора, захожу... Проверяю, текст старый.
Снова корректирую, СОХРАНЯЮ, выхожу, захожу - текст новый. Запускаю динамическое обновление, дохожу до ошибки, выкидывает в конфигуратор... опять в нём текст старый.
Вот такие вот дела... Обновление кеша помогает, естественно, только на том компьютере, на котором ты его сделал. Но ведь прошлое обновление, в котором я допустил ошибку - накатилось без проблем! А то, в котором я его исправил - ни в какую.
Какие выводы для себя сделал:
1. Если после динамического обновления сразу опять делаешь динамическое обновление (к примеру, сразу обнаружил мелкую ошибку, исправил за секунду и пустил по новому) - жди длительного геморроя.
2. Если столкнулся с такой ситуацией - выхода два: первый (если выгнать всех не представляется возможным) - делать обновление кеша на том компьютере, на котором работают с исправленным модулем, молясь Ктулху, чтобы никто другой пока туда не лез; второй - выгонять всех и делать обновление не динамически, после чего произвольное количество времени (не прогнозируемо) динамическое обновление начинает работать правильно.
Есть еще два очень важных совета, которые я сформулировал опытным путём (не относятся прямо к описываемому глюку, а касаются всего опыта работы с 8.2-8.3):
1. Динамическое обновление после выхода из клиента имеет очень высокие шансы пройти с ошибкой; наоборот, обновление с трассируемым клиентом, который вы соглашаетесь для обновления закрыть по просьбе конфигуратора, имеет крайне низкие шансы пройти с проблемами.
Хотя по элементарной логике должно быть наоборот).
2. Если клиент после динамического обновления не грузится, создаю любую константу, удаляю её и обновляюсь по-новой (даже динамически).
3. Повторюсь! Не обновляться динамически сразу же после динамического обновления! Пойдите покурите или сделайте себе чай. После чего обновляйте. Возможно, проблема касается 1 минуты, возможно чуть больше, но, похоже, что при двух повторных обновлениях подряд мы получаем критическую ситуацию, после которой, не зная пункта 2. можно остановить работу всего предприятия.
Проблема была обнаружена на 8.3.10.2466 и 8.3.11.2867; раньше даже не подозревал о возможности такого.
не могу точно предоставить источник, но вычитал один совет и начал им пользоваться (раньше об этом не задумывался, так как не было нужды).
в старых версиях 1С при динамическом обновлении ВСЕГДА задавался вопрос - "Перезапустить конфигуратор" (да/нет)
при нажатии НЕТ - просто закрывался конфигруратор.
при нажатии ДА - перезапускался.
а вот в новых версиях - такого вопроса НЕТ. и как показывает практика - очень даже зря.
так вот - я просто начал самостоятельно перезаходить в конфигуратор после каждого динамического обновления - ПОМОГЛО
P.S. дабы развеять все сомнения - несколько раз я обновлялся динамически без перезапуска конфигуратора - в итоге получал:
- на экране - код, который только что написан
- а в "реале" - код, который был до изменений.
Вывод - нужно просто перезапускать конфигуратор после КАЖДОГО динамического обновления.
P.P.S. но данный "баг" был замечен только на виртуальных серверах
в старых версиях 1С при динамическом обновлении ВСЕГДА задавался вопрос - "Перезапустить конфигуратор" (да/нет)
при нажатии НЕТ - просто закрывался конфигруратор.
при нажатии ДА - перезапускался.
а вот в новых версиях - такого вопроса НЕТ. и как показывает практика - очень даже зря.
так вот - я просто начал самостоятельно перезаходить в конфигуратор после каждого динамического обновления - ПОМОГЛО
P.S. дабы развеять все сомнения - несколько раз я обновлялся динамически без перезапуска конфигуратора - в итоге получал:
- на экране - код, который только что написан
- а в "реале" - код, который был до изменений.
Вывод - нужно просто перезапускать конфигуратор после КАЖДОГО динамического обновления.
P.P.S. но данный "баг" был замечен только на виртуальных серверах
(56)
увы мне без чистки кеша это не помогало
перезапускал, текст новый, но как только доходит до измененного текста, как клиент работает по старому, а по ошибке выкидывает в конфигуратор, где проявляется опять старый текст вместо нового.
нужно просто перезапускать конфигуратор после КАЖДОГО динамического обновления
увы мне без чистки кеша это не помогало
перезапускал, текст новый, но как только доходит до измененного текста, как клиент работает по старому, а по ошибке выкидывает в конфигуратор, где проявляется опять старый текст вместо нового.
Аналогичная проблема: пропадают изменения после динамического обновления.
SQL:2014
Платформа: 8.3.11.2867, ранее была 8.3.10.2505
На сегодня подключил боевую базу на прямую в хранилищу. Разрабатываю в копии, посредством хранилища переношу изменения в боевую.
Полет нормальный, изменения не пропадали.
Проблему считаю не решенной, т.к. не понятна причина.
SQL:2014
Платформа: 8.3.11.2867, ранее была 8.3.10.2505
На сегодня подключил боевую базу на прямую в хранилищу. Разрабатываю в копии, посредством хранилища переношу изменения в боевую.
Полет нормальный, изменения не пропадали.
Проблему считаю не решенной, т.к. не понятна причина.
Тоже пропал код . Версия платформы 1С:Предприятие 8.3 (8.3.10.2650)
Делаю регулярно выгрузки в cf.
Сравнение с последним сохраненным cf - не выявлено различий.
Смотрю вручную - различия вижу .
Добавляю в модуль один пробел , сохраняю, сравниваю с cf - только после этого стали видны отличия.
Имхо глюки платформы. И да - сохранялся динамически, так как в базе работают тестировщики.
Видимо косяк платформы все же.
Делаю регулярно выгрузки в cf.
Сравнение с последним сохраненным cf - не выявлено различий.
Смотрю вручную - различия вижу .
Добавляю в модуль один пробел , сохраняю, сравниваю с cf - только после этого стали видны отличия.
Имхо глюки платформы. И да - сохранялся динамически, так как в базе работают тестировщики.
Видимо косяк платформы все же.
8.3.10.2466 - локальная файловая база. Периодически возникают ошибки, то модуля нет, то картинки в библиотеке картинок, но чистка кеша (удаление/добавление базы) исправляет ситуацию. Все таки ИМХО платформа версии не удачная.
Сегодня столкнулся с такой же проблемой - в конфигураторе версия на сегодняшнее утро , в программе все работает с новым кодом, почистил кеш - результат тот же, выгрузка загрузка - все то же. Получилось восстановить путем удаления базы из списка и снова ее добавить, все изменения вернулись на место. Платформа 8.3.12.
1C Предприятие (8.3.10.2580). Сегодня впервые столкнулась с таким чудом. Вчера внесла вечером код., весь день работала - он был, и отрабатывал правильно, потом перезашла в конфигуратор - вчерашнего кода нет, и сегодняшнего кода нет. стала сохранять файл конфигурации. я уж испугалась, думала, что у меня глюки.
Комплексная 2. Сегодня хотела исправить код, который был написан на прошлой недели и работает, это видно по проводкам, но в конфигураторе я его не увидела. После долгих манипуляций помогло только это- выгрузила конф в файл, загрузила в другую базу ( там код появился), внесла исправления (без изменений не получилось), выгрузила, загрузила в рабочую базу, все есть. Жуть просто, хорошо что заметила, а если бы нет, тогда при изменении видимо и в конфигурации БД все изменения исчезли бы.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот