Многие уже столкнулись с тем, что не смогли обновить 1С: Розницу релиз 2.3.8.27 на более поздние релизы. Напомню, релиз 2.3.8.27 - позволял-таки нам работать в ЕГАИС 4. Но а вот с дальнейшими обновлениями...
Итак, что мы имеем? 1С Розницы релиз 2.3.8.27, которая упорно не хочет видеть загруженные нами обновления, попросту говорит: не содержит обновлений(( беда... которую мы сейчас с вами исправим при помощи нехитрых встроенных механизмов сравнения и обьединения)
Что нам понадобится? конфигурация cf 2.3.9.22 и обновка 2.3.9.28
Открываем конфигуратор и делаем копию .dt, далее делаем так - как на скринах:
Видим, что релиз у нас 1С Розницы 2.3.8.27, сделаем так, чтобы была возможность её редактировать:
Далее нам понадобится cf следующего релиза
переходим в режим предприятия:
На этом этапе - опять! загружаем конфигурацию cf 2.3.9.22, но уже НЕ в сравнение и объединение, а в "загрузить конфигурацию из файла"
После того, как в режиме предприятия у нас встанет новая конфигурация - возвращаемся обратно в конфигуратор
Дождёмся, когда конфигурация у нас встанет обратно на замок...
И вот теперь можно обновляться в штатном режиме)
Профит! у нас релиз 2.3.9.28
Всё это проверялось на 1С: Рознице релиз 2.3.8.27 под платформой 8.3.18.1334.
5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.
Пароль пользователя СУБД лежит в 1CV8Clst.lst обратимо: кто читает папку srvinfo - достаёт пароли SQL всех баз кластера, минуя права 1С. Обработка показывает, у каких баз пароль извлекается, помечает слабые и выдаёт план защиты. К СУБД не подключается, ничего не пишет - только читает файл.
Прогнал набор диагностических скриптов на двух рабочих базах: боевой с 580 сеансами и малонагруженной. Разбираю пять находок: статистика 97-дневной давности, 598 запросов со сканами, журнал транзакций в 73 % от данных, tempdb в один файл и 81 % ожиданий на параллелизме, который чинить не надо. Плюс три грабли, из-за которых самописный диагностический скрипт падает на чужом сервере. Семь рабочих скриптов внутри, копируются в SSMS как есть.
Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.
База 1С:ERP размером 646 Гб, полное маскирование за 5 часов - без создания промежуточной незащищенной копии. Разбираем бесплатный pg_anon на сквозном примере с реального продуктива.
Если вы работаете с 1С на PostgreSQL и жалуетесь на тормоза — скорее всего, дело в join predicate pushdown, которого в стандартном PostgreSQL нет. В MS SQL Server этот механизм работает «из коробки», и при миграции именно запросы к виртуальным таблицам 1С бьют по производительности сильнее всего. В этой статье — реальный кейс от Postgres Professional с разбором плана выполнения, ручным экспериментом и доработкой планировщика СУБД, которая ускорила запросы от 22 до 54 000 раз.
Вышел релиз СУБД Tantor Postgres 18, и мы хотим рассказать о его новых возможностях для работы с приложениями на платформе "1С:Предприятие". В обзоре разберем улучшения планировщика, по традиции коснемся работы временных таблиц и не обойдем вниманием вспомогательные утилиты, которые упрощают поиск и диагностику проблем в высоконагруженных системах. За каждым пунктом - реальные запросы 1С, реальные рабочие базы и сотни часов тестирования!
База 1С за несколько лет эксплуатации разрослась, - стала большой, медленно работает, требует много места и времени для копирования и прочего обслуживания. Нужна ли обязательно свертка или можно обойтись более «мягкими» средствами. Делюсь своим опытном как для новых конфигураций, так и для старых УПП, УТ 10…
(4) делал не раз, конкретно в такой ситуации - результат одинаковый. Конкретно в этом глюке с обновлением - загрузил просто CF следующего релиза. Все обновилось. Ничего не потерялось. Магазины работают.
(3) Этот этап не исключается. Обновление проходит штатно, через "выберите файл обновления", только выбирается cf, а не cfu. Просто в полной конфе данный глюк отсутствует.
Я скачал полную версию и обновление. Все распаковал и обновил из конфигуратора через Поддержка - Обновить конфигурацию и зачем такие сложности не очень понимаю
(10)если у вас нет сложностей, зачем вы сюда пишите??? наверное это всё написано для тех - у кого они возникли?
p.s. а здесь ничего не написано и это можно не читать, но если вы это прочитали - то у вас хорошее зрение.
(20)Скачайте дистрибутив полной версии с сайта 1С (убедитесь, что он подходит для обновления с Вашей версии) и установите его. Войдите в конфигуратор Поддержка - Обновление и обновитесь ткнув на установленный шаблон (1cv8.cf). Перед обновлением сделайте обязательно резервную копию.
Я пробую обновиться этим способом, получаю ошибку при запуске приложения в режиме отладки (после объединения)
{ОбщийМодуль.ОбщегоНазначения.Модуль(639)}: Ошибка при получении значения атрибута контекста (ОсновнойЯзык)
Возврат ПараметрыСеанса.ОсновнойЯзык;
по причине:
Попытка получения неинициализированного значения параметра сеанса
В конфигураторе выделяет этот кусок кода. Что тут не так?
Описанный в статье метод мне не помог, а только навредил, пришлось откатываться на копию базы и переносить движение за несколько дней. Перестал работать сканер штрих-кода и стало невозможно добавить новое оборудование.
Помог метод Поддержка - Обновить конфигурацию - Выбрать файл обновления (и тут уже выбрать наш cf файл). И тогда у меня все встало корректно и дальше программа подхватила следующие обновления.
(30)
я сначала делала как у вас Сравнить, объединить с конфигурацией из файла. База местами завалилась. В частности, я не смогла добавлять и настраивать торговое оборудование вылазила ошибка "Не выбран тип офлайн оборудования" и ничем это не лечилось. Т.е. я пошла немного другим путем. Но в целом да, ваше направление правильно, у нас немного разошлись способы реализации
ЗАГОЛОВОК: Исправление ошибки "Тип не определен" в УправлениеДоступомСлужебный на платформе 8.3.22+
ТЕКСТ:
======
При обновлении на платформу 8.3.22+ в модуле УправлениеДоступомСлужебный возникает ошибка:
"Тип не определен"
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(28079)}:Тип(ИмяТипаСсылки(...))
ПРИЧИНА:
Начиная с версии 8.3.22.1709, конструкция Тип("") (пустая строка) вызывает ошибку вместо возврата пустого типа. Функция ИмяТипаСсылки() для некоторых таблиц возвращает пустую строку.
Ссылка на баг:
РЕШЕНИЕ (через расширение):
============================
&Вместо("ЗавершитьПодготовкуПолейТаблицОбъекта")
Процедура ЗавершитьПодготовкуПолейТаблицОбъекта(Контекст)
ПоляТаблицОбъекта = Контекст.ПоляТаблицОбъекта;
ПолноеИмяОсновнойТаблицы = СтрЗаменить(Контекст.Список, ".", "_");
ИмяТипаСсылкиСтрока = ИмяТипаСсылки(Контекст.Список, Контекст.СтруктураОграничения.ВнутренниеДанные.ТипыТаблицПоИменам);
Если ЗначениеЗаполнено(ИмяТипаСсылкиСтрока) Тогда
ТипСсылки = Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
Тип(ИмяТипаСсылкиСтрока)));
Иначе
ТипСсылки = Новый ОписаниеТипов;
КонецЕсли;
Для Каждого ОписаниеТаблицы Из ПоляТаблицОбъекта.Состав Цикл
ПоляТаблицы = НовыеПоляТаблицыОбъекта();
ПоляТаблицы.ПолноеИмяТаблицы = ОписаниеТаблицы.Ключ;
ТаблицаЗначений = Новый ТаблицаЗначений;
ЕстьИспользуемыеПоля = Ложь;
Для Каждого ОписаниеПоля Из ОписаниеТаблицы.Значение Цикл
Если Не ОписаниеПоля.Значение.Использование Тогда
Продолжить;
КонецЕсли;
ЕстьИспользуемыеПоля = Истина;
Если ВРег("Ссылка") = ВРег(ОписаниеПоля.Ключ) Тогда
Продолжить;
КонецЕсли;
ПоляТаблицы.Поля.Добавить(ОписаниеПоля.Ключ);
ТаблицаЗначений.Колонки.Добавить(ОписаниеПоля.Ключ, ОписаниеПоля.Значение.Тип);
КонецЦикла;
Если Не ЕстьИспользуемыеПоля Тогда
Продолжить;
КонецЕсли;
ПоляТаблицы.СписокПолей = СтрСоединить(ПоляТаблицы.Поля, ", ");
ПоляТаблицы.Поля.Вставить(0, "Ссылка");
ТаблицаЗначений.Колонки.Добавить("Ссылка", ТипСсылки);
ПоляТаблицы.ТаблицаСПолями = Новый ХранилищеЗначения(ТаблицаЗначений);
Если ПоляТаблицы.ПолноеИмяТаблицы <> ПолноеИмяОсновнойТаблицы Тогда
ПоляТаблицы.ТабличнаяЧасть = Сред(ПоляТаблицы.ПолноеИмяТаблицы,
СтрДлина(ПолноеИмяОсновнойТаблицы) + 2);
КонецЕсли;
ПоляТаблицОбъекта.Результат.Добавить(ПоляТаблицы);
КонецЦикла;
ПоляТаблицОбъекта.Удалить("ПоСвойствамПолей");
ПоляТаблицОбъекта.Удалить("ПоДополнительнымТаблицам");
КонецПроцедуры