Калькулятор обновлений 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С:ERP. Управление холдингом Абонемент ($m)

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    249    PetrovAnton    1    

1

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

Отчет о сравнении конфигураций представляет собой обширный массив информации. Однако у него есть значительное ограничение: его невозможно настраивать, например, добавлять различные группировки, фильтры или сортировку данных. Тем не менее, если преобразовать этот отчет в таблицу и использовать её в качестве источника данных, это открывает возможность для создания универсального отчета с использованием группировок, отборов и сортировки

10 стартмани

18.02.2025    350    1    kalyaka    0    

5

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

При длительном обновлении из конфигуратора следим за процентом загрузки ПК и отправляем письмо на почту при завершении.

1 стартмани

17.02.2025    177    0    slavik27    0    

3

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

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

2 стартмани

06.02.2025    1507    8    XilDen    24    

34

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    1173    Nonik    8    

17

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

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    1826    29    karpik666    28    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lemmonbri 150 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 калькулятор и все будет норм.
Оставьте свое сообщение