Калькулятор обновлений 1С конфигураций на HTML с пополнением через EXCEL

02.10.23

База данных - Обновление 1С

Всем, кто хоть раз обновлял конфигурацию двухлетней давности, посвящается.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Калькулятор обновлений 1С конфигураций на HTML с пополнением через EXCEL:
.zip 14,32Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

А если еще нет возможности обновиться на автомате, встроенными средствами это уже боль.

Сидеть и смотреть в таблицу, а какой можно релиз пропустить, а какой нет, может затратить много времени. А еще и скачать, а еще и если ошибся в цифре. Нервы на грани.

По запросу расплодилось много онлайн калькуляторов, некоторые еще и монетизируются. Я пошёл по другому пути. В связи с разработками мне пришлось поднять веб сервер, с публикацией базы для отладки. И 127.0.0.1 на адресе у меня красовался слоган «Привет, мир». Вот и решил его занять делом.

Написал небольшой скрипт в файле index.html, который читает таблицу в формате CSV и заполняет таблицу на экране браузера.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Путь обновлений</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #f2f2f2;
        }
        tr:hover {
            background-color: #f5f5f5;
        }
        /* Стиль для скрытия 5-ой колонки */
        td:nth-child(5), th:nth-child(5) {
            display: none;
        }
    </style>
</head>
<body>
    <select id="fileSelect">
        <option value="roznica.csv">1С:Розница</option>
        <option value="buh.csv">1С:Бухгалтерия</option>
		<!-- Добавить другие конфиги -->
    </select>
    <p>Выбранный релиз: <span id="selectedRelease">None</span></p>
    <p>Путь обновления: <span id="updatePath">None</span></p>
    <table id="updatesTable">
        <thead>
            <tr>
                <th>Номер версии</th>
                <th>Дата релиза</th>
                <th>Доступно с версии</th>
                <th>Версия платформы</th>
                <th>Ссылка на обновление</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    <script>
    function loadCSVData(url) {
        fetch(url).then(response => response.text()).then(data => {
            const table = document.getElementById('updatesTable').getElementsByTagName('tbody')[0];
            table.innerHTML = '';
            const rows = data.split('\n');
            let firstRow = true;
            rows.forEach(rowData => {
                if (firstRow) {
                    firstRow = false;
                    return;
                }
                const row = table.insertRow();
                const cells = rowData.split(';');
                cells.forEach(cellData => {
                    const cell = row.insertCell();
                    cell.textContent = cellData;
                });
                row.onclick = handleRowClick;
            });
        });
    }
    function handleRowClick(event) {
        const row = event.currentTarget;
        if (row.cells.length < 5) {
            return;
        }
        const release = row.cells[0].textContent.trim();
        document.getElementById('selectedRelease').textContent = release;
        const table = document.getElementById('updatesTable').getElementsByTagName('tbody')[0];
        let currentVersion = release;
        const path = [{ version: currentVersion, url: row.cells[4].textContent.trim() }];
        let lastMatchedVersion = null;
        for (let i = table.rows.length - 1; i >= 0; i--) {
            const row = table.rows[i];
            if (row.cells.length < 5) {
                continue;
            }
            const version = row.cells[0].textContent.trim();
            const availableFrom = row.cells[2].textContent.split(',').map(v => v.trim());
            const url = row.cells[4].textContent.trim();
            if (availableFrom.includes(currentVersion)) {
                lastMatchedVersion = { version: version, url: url };
            } else if (lastMatchedVersion) {
                path.push(lastMatchedVersion);
                currentVersion = lastMatchedVersion.version;
                lastMatchedVersion = null;
                i = table.rows.length;
            }
        }
        if (lastMatchedVersion) {
            path.push(lastMatchedVersion);
        }
        if (path.length === 1) {
            document.getElementById('updatePath').textContent = "Путь обновления не найден";
        } else {
            document.getElementById('updatePath').innerHTML = path.reverse().map(step => `<a href="${step.url}" target="_blank">${step.version}</a>`).join(' <<< ');
        }
    }
    function handleFileChange(event) {
        const selectedFile = event.target.value;
        loadCSVData(selectedFile);
    }
    document.getElementById('fileSelect').onchange = handleFileChange;
    window.onload = () => loadCSVData('roznica.csv');
    </script>
</body>
</html>

При выделении строки по короткому пути выстраивается путь обновлений. Каждый релиз в пути виде гиперссылки с адресом URL из 5 колонки таблицы в файле CSV.

В моем случае домашняя страница веб сервера находится на компьютере на C:\Apache24\htdocs.

Веб сервер у меня, как видно, по пути Apache, но подойдёт и IIS.

У меня в ней 3 файл index(сама HTML страница), и 2 таблице roznica и buh

И вуаля, калькулятор со своими ссылками на скачивания всегда под рукой. А если у вас белый Ip, то доступно хоть откуда. Не надо каждый раз просчитывать, не надо каждый раз нырять в «1с портал».

Как поставить Апач //infostart.ru/1c/articles/691604/ и //infostart.ru/1c/articles/646384/ в статьях описано.

При желании легко добавить таблицы других конфигураций.

ПС. Просто запустить html файл в одной папке с таблицей не выйдет без Веб сервера, в скрипте нужно тогда прописывать прямой путь до файлов таблицы.

web обновление калькулятор универсальный

См. также

Работа с интерфейсом Обновление 1С Программист Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Бесплатно (free)

После обновления УНФ до 3.0.10.178 у ряда клиентов исчезла часть функционала: отчёт "Движение товаров", кнопка "Глаз" в Расходной накладной, часть документов складских перемещений. Для решения проблемы надо установить константы, чьё название подпадает под шаблон "Использовать подсистему NNN (Константы)" и соответствует "пропавшему" функционалу по смыслу.

16.01.2025    398    dime2    0    

3

Обновление 1С Программист Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Налоговый учет Управленческий учет ИП, ПБОЮЛ, КФХ НДС УСН Абонемент ($m)

Обновление, доработка для 1С: Управление торговлей 10.3 (УТ 10.3) организаций на упрощенной системе с 2025 года для использования ставок НДС 5 и 7 % в документах и печатных формах документов. Начиная с релиза 10.3.40.

4 стартмани

10.01.2025    1835    41    zhuravlev_as    37    

6

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    3344    mixaeel    18    

17

Обновление 1С Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    670    7    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    1295    gull22    2    

9

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    4695    vatkir    15    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lemmonbri 146 02.10.23 17:39 Сейчас в теме
Интересно, 1Сникам надо такую на страницу релизов добавить бы...
2. uno-c 267 02.10.23 19:47 Сейчас в теме
REST-API есть, он и размеры показывает.
Запрос1:
POST https://update-api.1c.ru/update-platform/programs/update/info
{
"programName": "Retail",
"versionNumber": "2.3.13.33",
"platformVersion": "8.3.22.1923",
"updateType": "NewConfigurationAndOrPlatform"
}

Ответ1:
{...
"configurationUpdateResponse": {
"configurationVersion": "2.3.16.21",
"size": 513631611,
"platformVersion": "8.3.21.1775",
"updateInfoUrl": "https://dl05.1c.ru/content//AutoUpdatesFiles/Retail/2_3_16_21/82/News1cv8.htm",
"upgradeSequence": [
"6345ae68-0889-46df-b276-19d31a244db0",
"865dbe6c-18ad-4389-836e-f12e3bd38d68",
"0c764cb6-a87f-408d-9871-b35944807adc"
],
"programVersionUin": "e4ca775b-68e2-4bd3-918d-4524454b46d6",
},
...
}
Показать

Запрос2:
POST https://update-api.1c.ru/update-platform/programs/update/
{
"programVersionUin": "e4ca775b-68e2-4bd3-918d-4524454b46d6",
"upgradeSequence": [
"6345ae68-0889-46df-b276-19d31a244db0",
"865dbe6c-18ad-4389-836e-f12e3bd38d68",
"0c764cb6-a87f-408d-9871-b35944807adc"
],
"login": "ITS_login",
"password": "ITS_Password"
}

Ответ2:
{...
"configurationUpdateDataList": [
{
"templatePath": "1c\\Retail\\2_3_14_26",
"executeUpdateProcess": true,
"updateFileUrl": "https://dl05.1c.ru/public/file/tmplts/get/***",
"updateFileName": "1cv8.cfu",
"updateFileFormat": "ZIP",
"size": 147932363,
"hashSum": "enuSE0jE9wGOYwZlhVp5nQ=="
},
{
"templatePath": "1c\\Retail\\2_3_15_50",
"executeUpdateProcess": true,
"updateFileUrl": "https://dl04.1c.ru/public/file/tmplts/get/***",
"updateFileName": "1cv8.cfu",
"updateFileFormat": "ZIP",
"size": 201045976,
"hashSum": "CdZxZSeMdvtXUsErkaHmFQ=="
},
{
"templatePath": "1c\\Retail\\2_3_16_21",
"executeUpdateProcess": true,
"updateFileUrl": "https://dl04.1c.ru/public/file/tmplts/get/***",
"updateFileName": "1cv8.cfu",
"updateFileFormat": "ZIP",
"size": 164653272,
"hashSum": "3T6t/xNVxuYhlSxul/Hxdw=="
}
],
...
}
Показать
Andreyyy; ixijixi; +2 Ответить
3. uno-c 267 02.10.23 20:05 Сейчас в теме
Еще программа "Обновлятор 1С" весьма неплоха.
svbel85; antvv; SuhoffGV; +3 Ответить
4. ShuSU 63 02.10.23 22:50 Сейчас в теме
Бывают места где с серверов 1с скачивание крайне медленно, а со своей подсети провайдера быстрее. Для экономии времени и был придуман эта страничка. Что бы без сторонних приложений и телодвижений, зашёл по айпи и скачал нужные пакеты от туда от куда удобно( с яндекс диска, с фдп, с компа). И пополнять и администрировать можно было без знания верски html таблиц.
5. uno-c 267 03.10.23 11:02 Сейчас в теме
(4) АПИ во втором запросе в частности возвращает "templatePath": "1c\\Retail\\2_3_14_26" и т.п. Разместить шаблоны обновлений на своем фтп/диске согласно этим путям - и не нужно никаких пополнений через Excel. Главное, чтоб подписка на ИТС была, без нее АПИ-калькулятор не работает )
6. ShuSU 63 03.10.23 18:00 Сейчас в теме
Я опубликовал код для тех кто знает минимум в вебе. И принцип пополнения и дополнений минимизировал до простого умения работать с таблицей в офисного по.
8. uno-c 267 11.11.23 05:57 Сейчас в теме
(6)
Я опубликовал код для тех кто знает минимум в вебе
Для использования REST-API калькулятора знание веба вообще не нужно, все делается кодом 1С (HTTPЗапрос, ЧтениеJSON)
7. ShuSU 63 03.10.23 18:08 Сейчас в теме
Алгоритм нужно немного переписать. Щас от выделенного в верх идет до последнего упоминания релиза для фиксации следующего шага. Но есть релизы в которых через несколько релизов появляется снова. Но пока не придумал как это учесть. С верху с последнего релиза спускаться вниз до указанного, выходит хрень у меня.
9. uno-c 267 11.11.23 05:57 Сейчас в теме
(7)
выходит хрень у меня.
Используйте REST-API калькулятор и все будет норм.
Оставьте свое сообщение