Калькулятор обновлений 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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147084    649    360    

235

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

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

21.10.2024    2656    mixaeel    18    

17

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

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

1 стартмани

26.09.2024    500    3    milkers    2    

7

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

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

24.09.2024    858    gull22    2    

8

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

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

17.09.2024    4364    vatkir    15    

10

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    554    0    user1694357    0    

4

Обновление 1С Системный администратор Россия Абонемент ($m)

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

1 стартмани

20.08.2024    680    MikeSh    10    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lemmonbri 142 02.10.23 17:39 Сейчас в теме
Интересно, 1Сникам надо такую на страницу релизов добавить бы...
2. uno-c 264 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 264 02.10.23 20:05 Сейчас в теме
Еще программа "Обновлятор 1С" весьма неплоха.
svbel85; antonius888; SuhoffGV; +3 Ответить
4. ShuSU 63 02.10.23 22:50 Сейчас в теме
Бывают места где с серверов 1с скачивание крайне медленно, а со своей подсети провайдера быстрее. Для экономии времени и был придуман эта страничка. Что бы без сторонних приложений и телодвижений, зашёл по айпи и скачал нужные пакеты от туда от куда удобно( с яндекс диска, с фдп, с компа). И пополнять и администрировать можно было без знания верски html таблиц.
5. uno-c 264 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 264 11.11.23 05:57 Сейчас в теме
(6)
Я опубликовал код для тех кто знает минимум в вебе
Для использования REST-API калькулятора знание веба вообще не нужно, все делается кодом 1С (HTTPЗапрос, ЧтениеJSON)
7. ShuSU 63 03.10.23 18:08 Сейчас в теме
Алгоритм нужно немного переписать. Щас от выделенного в верх идет до последнего упоминания релиза для фиксации следующего шага. Но есть релизы в которых через несколько релизов появляется снова. Но пока не придумал как это учесть. С верху с последнего релиза спускаться вниз до указанного, выходит хрень у меня.
9. uno-c 264 11.11.23 05:57 Сейчас в теме
(7)
выходит хрень у меня.
Используйте REST-API калькулятор и все будет норм.
Оставьте свое сообщение