Конфигурация для скачивания и установки обновлений 1С 8. Также может скачивать обновления для 1С 7.7, Айлант ЖКХ.
Скачать файл
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Версии начинают скачиваться с даты, указанной в настройке (для каждой конфигурации можно указать свою дату).
Есть возможность искать в файле Reedme информацию по требуемой платформе (касается только https://releases.1c.ru ). При данной настройке в путь сохранения скачанного файла добавляется редакция платформы (8.2, 8.3). Для каждой конфигурации редакцию платформы можно указать вручную.
В конфигурацию встроена обработка построения цепочки обновлений с релиза (с учетом возможности обновления с редакции на редакцию), в которой можно скачать обновления (в папку установленную в настройках) или просто скачать и установить обновления только на текущем компьютере.
Изменения в версиях
UPD 1.0.4.2 от 30.07.2018:
Произведен рефакторинг кода по получению конфигураций и версий. Процедура теперь выполняется в несколько раз быстрее.
Добавлена возможность для конфигурации указать пользователя для скачивания обновлений.
Для пользователя добавлен реквизит "Основной", по этому пользователю будут скачиваться обновления для конфигураций где пользователь не указан.
Ограничено количество месяцев для поиска отзыва релиза. Устанавливается в соответствующей константе.
В обработке "Построение цепочки обновлений" теперь можно скачать релизы.
Добавлен модуль для упрощенного встраивания в конфигурации на основе БСП 2.6 и выше.
Исправление ошибок.
UPD 1.0.3.10 от 10.04.2017:
Исправление ошибок, рефакторинг.
UPD 1.0.3.8 от 17.11.2016:
Добавлена поддержка сайта http://1c-osa.ru/.
UPD 1.0.3.7 от 28.10.2016:
Поддержка обновления сайта https://releases.1c.ru/.
В справочник "Конфигурации 1С" добавлен реквизит "Каталог поставщика".
UPD 1.0.3.5 от 23.09.2015:
Добавлены функции для работы с раширение к конфигурации "Бухгалтерия предприятия. Редакция 3.0".
UPD 1.0.3.4 от 20.09.2015:
В конфигурацию добавлена обработка: "Построение цепочки обновлений". Обработка строит цепочку обновлений по принципу максимального релиза. Также в ней отображается какие релизы уже скачаны, и какие уже установлены на компьютер пользователя. В ней можно сразу установить скачанные, но еще не установленные релизы.
UPD 1.0.3.2 от 15.09.2015:
Для упрощения встраивания в конфигурации добавлена подсистема "UPD_ЗагрузкаОбновлений". При сравнение-объединение требуется снять все крыжи, и отметить по данной подсистеме файла. Затем отметить саму подсистему. В пользовательском режиме требуется зайти в настройке и нажать кнопку: "Выполнить обновление".
Добавлен интерфейс "UPD_ЗагрузкаОбновлений", добавлены роли пользователя и администратора.
Добавлена проверка на отозванность релизов. Если релиз отозван, то папка с ним переименовывается.
Реализовано паралельное считываение версий конфигураций. Количество паралельных процессов выставляется в настройках.
Доработан поиск требуемой версии платформы для конфигурации.
В начальное заполнение включен полностью спарсенные конфигурации и релизы сайта https://releases.1c.ru
Исправление ошибок.
UPD 1.0.2.2 от 04.09.2015:
Исправление в связи с обновлением сайта 1С (https://releases.1c.ru).
UPD 1.0.2.1 от 04.08.2015:
Исправление в связи с обновлением сайта 1С (https://releases.1c.ru).
UPD 1.0.1.1 от 15.05.2015:
В форме элемента справочника Программы выводится текст описания изменений в версии (при наличии файлов news.htm или "Новое в версии.htm".
https://users.v8.1c.ru/ (Обновления 1С предприятие 8)
Добавлена возможность скачивать тестовые версии.
Именна файлов присваиваются согласно ссылкам (т.е. "Дистрибутив обновления.exe", "Полный дистрибутив.exe", "Технологическая платформа 1С Предприятия для Windows.rar" и т.д.).
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.
Решение в Реестре отечественного ПО
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.
Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.
Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2
Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С. Бесплатный период Техподдержки - 1 месяц.
Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.
(1) olesha, очередное обновление сайта от 1с)) обновите процедуру в общем модуле UPD_ЗагрузкаКонфигураций:
Процедура РекурсивныйПарсингСпискаКонфигураций(ДокументHTML)
ТекИмяГруппы = "";
Для Каждого ЭлДок Из ДокументHTML.ДочерниеУзлы Цикл
Если СокрЛП(ЭлДок.ТекстовоеСодержимое) = "Название" Тогда
//количество строк в таблице дистрибутивов
СписокУзловHTML = ЭлДок.РодительскийУзел.РодительскийУзел.РодительскийУзел.ДочерниеУзлы[1].ДочерниеУзлы;
КолЭлементов = СписокУзловHTML.Количество();
Для А=0 По КолЭлементов-1 Цикл
Если СписокУзловHTML[А].ДочерниеУзлы.Количество() = 1 Тогда
ТекИмяГруппы = СокрЛП(СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[0].ТекстовоеСодержимое);
Группа = НайтиСоздатьГруппу(ТекИмяГруппы, Справочники.UPD_Программы.v8, Истина);
ИначеЕсли СписокУзловHTML[А].ДочерниеУзлы.Количество() = 2 Тогда
ТекИмяГруппы = СокрЛП(СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[0].ТекстовоеСодержимое);
Группа = НайтиСоздатьГруппу(ТекИмяГруппы, Справочники.UPD_Программы.v8, Истина);
КонецЕсли;
Если СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы.Количество() > 1 Тогда
ТекЯчейка = СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[1];
Если ТипЗнч(ТекЯчейка) = Тип("ЭлементЯкорьHTML") Тогда
Название = СокрЛП(ТекЯчейка.ТекстовоеСодержимое);
ГиперСсылка = НайтиИмяФайлаПоСсылке(ТекЯчейка.ГиперСсылка);
НайтиСоздатьПрограмму(Название, Группа, ГиперСсылка, ,Перечисления.UPD_СайтОбновлений.UsersV81C, ТекИмяГруппы);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат;
КонецЕсли;
Если ЭлДок.ЕстьДочерниеУзлы() Тогда
РекурсивныйПарсингСпискаКонфигураций(ЭлДок);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
а обработка скачивает только минимально необходимый набор обновлений от текущей конфигурации (как задать версию?) до актуальной? - например - купил я коробку БП3 корп - в ней диск с весрийе аж в районе февраля - ручками пришлось скачивать все (миниамльно необходимые) обновления - 10 штук (обновлений же гораздо больше...).
???
(6) CheBurator,
программа скачивает с указанной в настройках даты. Для каждой конфигурации можно указать свою дату начала скачивания. Соответственно скачиваться будут только релизы, которые вышли позже указанных дат.
P.S. Данное касается естественно только релизов с users.v8.1c.ru, т.к. на остальных сайтах или нет полного списка релизов.
(8) white_sochi, вводите пароль от http://techsupp.1c.ru в настройках. Затем обновляете список программ. После можно установить, что будет загружаться.
(12) эх только $ потратил, все равно не пашет, https://releases.1c.ru/ да же не показывает Релизы 8x втабл части, хотя выбор в настройках сайт появился!
(13) zato1c, действительно ошибка в получение конфигураций.
В общем модуле: "UPD_ЗагрузкаКонфигураций" в процедуре "РекурсивныйПарсингСпискаКонфигураций"
Если СокрЛП(ЭлДок.ТекстовоеСодержимое) = "Название" Тогда
//количество строк в таблице дистрибутивов
СписокУзловHTML = ЭлДок.РодительскийУзел.РодительскийУзел.РодительскийУзел.ДочерниеУзлы[1].ДочерниеУзлы;
КолЭлементов = СписокУзловHTML.Количество();
Для А=0 По КолЭлементов-1 Цикл
Если СписокУзловHTML[А].ДочерниеУзлы.Количество()=1 ИЛИ СписокУзловHTML[А].ДочерниеУзлы.Количество()=2 Тогда
ТекИмяГруппы = СокрЛП(СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[0].ТекстовоеСодержимое);
Группа = НайтиСоздатьГруппу(ТекИмяГруппы, Справочники.UPD_Программы.v8, Истина);
Показать
Замените на:
Если СокрЛП(ЭлДок.ТекстовоеСодержимое) = "Название" Тогда
//количество строк в таблице дистрибутивов
СписокУзловHTML = ЭлДок.РодительскийУзел.РодительскийУзел.РодительскийУзел.ДочерниеУзлы[2].ДочерниеУзлы;
КолЭлементов = СписокУзловHTML.Количество();
Для А=0 По КолЭлементов-1 Цикл
Если СписокУзловHTML[А].ДочерниеУзлы.Количество() = 1 ИЛИ СписокУзловHTML[А].ДочерниеУзлы.Количество() = 2 Тогда
ТекИмяГруппы = СокрЛП(СписокУзловHTML[А].ДочерниеУзлы[0].ТекстовоеСодержимое);
Группа = НайтиСоздатьГруппу(ТекИмяГруппы, Справочники.UPD_Программы.v8, Истина);
{Справочник.UPD_Программы.Форма.ФормаЭлемента.Форма(37)}: Значение не является значением объектного типа (Ссылка)
СтруктураВозвращаемыхДанных = ПолучитьТекстНовогоВВерсии(Элементы.Версии.ТекущиеДанные.Ссылка);
там так и потянется. ладно не замарачивайся, а вот если бы вот это подшаманил (если смог бы), было бы респект http://infostart.ru/public/287082/ видно хозяин пропал, а весЧ не плоха
Сутки крутил. Итог бухгалтерия и зуп нет! как 8,2 так 8,3 все перебрал. Было бо не плохо прописывать пути кача релизов. Люди привыкли к определенному порядку. ну и для гурманов) оповещение на @ хотя бы, что вышло и с качалось(это так на всякий))
(22) zato1c, я не понимаю, что именно у вас вызывает такие проблемы с настройкой. У меня все прекрасно скачивается. Да и пути тоже можете прописывать какие хотите.
Возник такой вопрос:
Я не Франч и общего доступа к сайту обновлений нет.
Есть доступ у различных клиентов к разным конфигурациям. Т.е. к одному и тому же сайту обновлений нужна привязка какую конфигурацию под каким пользователем нужно качать.
Есть такая возможность? Или возможно ли её реализовать?
(28) а вот нигде к сожалению.
Давайте в справочнике просто всем типовым проставим директорию "1С", а остальным, чтобы пользователь сам указывал где искать
при попытке развернуть с пустой базы 1.0.3.6. пытается вполнить обновление (похоже на то, что там начальное заполнение) выдает ошибку
{ОбщийМодуль.UPD_ОбновлениеБазыДанных.Модуль(209)}: Ошибка при вызове метода контекста (ПрочитатьXML)
ЗаписанноеЗначение = ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML: [sfile://C:/Users/Evgenu/AppData/Local/Temp/UPD_КонфигурацииИВерсииV8.txt][202566,3]
(36) Поразбирался маленько, ошибка из-за того, что в конфигурации больше реквизитов: ПорядокГруппы, ВыводитьВОтчет и КаталогПоставщика. В макете нет таких реквизитов. Сериализатор валится с ошибкой из-за этого.
Сейчас все работает.
(38) Alex_E, будем). просто хотел и все версии обновить в начальном заполнении, но все руки не доходят. Если срочно лечится очень просто. У справочника UPD_Программы удаляете реквизит КаталогПоставщика. И в общем модуле UPD_ОбновлениеБазыДанных в функции ВерсияКонфигурации устанавливаете версию 1.0.3.5. Запускаете 1С. Как прошло начальное заполнение накатываете конфигурацию.
(44) qwinter, Понял, спасибо, сегодня скачаю посмотрю, а вообще я имел ввиду то что сайт releases.1c.ru сейчас переделали и что теперь скачивание обновлений идет с https://dl03.1c.ru
Есть две проблемы в версии 1.0.3.7:
1. У нас не работает обновление справочника версий. Проблема насколько я понял таиться в модуле "UPD_ЗагрузкаОбновленийV8"
Функция ЗагрузитьКонфигурации(ПользовательСайта) Экспорт
ИдентификаторСессии = UPD_ЗагрузкаОбновленийПовтИсп.НайтиИдентификаторСессииV8(ПользовательСайта);
Попытка
Загружено = 0;
Запрос = Новый HTTPЗапрос;
Запрос.Заголовки.Вставить("Cookie", ИдентификаторСессии.JSESSIONID);
Запрос.АдресРесурса = "/total";
Соединение2 = Новый HTTPСоединение("releases.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
ОтветHTTP = Соединение2.Получить(Запрос);
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(ОтветHTTP.ПолучитьТелоКакСтроку());
Построитель = Новый ПостроительDOM;
ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
ИскатьВерсиюПлатформы = Константы.UPD_ИскатьТребуемуюВерсиюПлатформы.Получить();
Если ИскатьВерсиюПлатформы Тогда
РекурсивныйПарсингСпискаКонфигураций(ДокументHTML, ИскатьВерсиюПлатформы, ПользовательСайта);
Иначе
РекурсивныйПарсингСпискаКонфигураций(ДокументHTML); //АС: Здесь наверное не хватает параметра "ПользовательСайта"
КонецЕсли;
ЗагрузитьВерсииV8(ПользовательСайта);
Исключение
UPD_РегламентныеЗадания.ЗаписатьОшибку(ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
Показать
2. Если используется несколько пользователей для загрузки с сайта "releases.1c.ru", то выполнение кода падает с ошибкой неуникальности ключа фоновых заданий. Поэтому ключ нужно или генерировать случайный, или в разрезе пользователей сайта. А вообще лучше сначала построить список доступных ПП по разным пользователям, а уже потом парсить версии. У разных пользователей могут быть одинаковые ПП в списке. Проблемы начинаются при параллельной записи в базу новых ПП, доступ к которым есть у двух пользователей.
Лично я просто сам допилил что не так.
Во-первых, при обновлении справочника версий идёт просмотр информации по всем имеющимся версиям ради того, чтобы узнать отозван релиз или нет. Большая часть выполнения, на мой взгляд, это бесполезная процедура. У нас я ограничил глубокий анализ последними пятью версиями. Мне пофиг, если вдруг релиз полугодовалой давности вдруг станет отозванным. На самом деле такого никогда не будет. А чтобы максимально исключить вероятность установки такого релиза нужно строить цепочку обновления с целевого релиза, а не с текущего.
Во-вторых. В данной разработке не оптимально производится многопоточный парсинг версий в случае, когда есть несколько пользователей к одному и тому же сайту, в нашем случае releases.1c, и список доступных ПП у них пересекается. К автору претензий нет, это наша особенность и здесь нужно ещё хорошо подумать как это сделать. Если автору интересно, могу поделиться опытом в реализации.
В-третьих, иногда получаются слишком длинные полные наименования файлов, особенно у каких-нибудь внешних печатных форм. Жёстко ограничивать длину не совсем правильно, так как не всегда есть в этом необходимость. Не ограничивать тоже нельзя, так как файл просто не запишется на диск.Сделал анализ именно полного имени файла и при необходимости пишу имя файла оригинальное, а не русское.
В-четвёртых. 1С постоянно что-то меняет, Поспеть за всем этим сложно. Например, раньше на странице релиза был такой пункт "Новое в версии", а теперь этот пункт называется "Бухгалтерия предприятия, редакция 3.0. Версия 3.0.53.39. Новое в версии". Следовательно просмотр файла в форме программного продукта сломался. Я вышел из ситуации универсиализировав код. Или имя файла на сайте было "news" а стало "Novoe_v_versii". Ой.. а в коде есть ограничение на эту тему. А бывают более серьёзные изменения на сайте.
Короче итог: то что вообще есть данная разработка это хорошо, это хорошая основа для дальнейшего развития. В простых типовых условиях она работает. Если что-то не работает, то попробуйте понять почему, и если это просто исправить, то лучше сами исправьте, и автору напишите что именно не работает.
Что реально хотелось бы увидеть в разработке: В какой-то момент были реальные косяки с загрузкой, причину установить удалось только у части ПП. 1С имеет свойство ещё и переименовывать ПП на сайте, объединять разные редакции в одну позицию. В автоматическом режиме отследить это нереально. Но если отследить это не сложно, то вот потом выправлять руками данные в базе как-то не айс. К примеру, была конфигурации "Документооборот 2.0", "Документооборот 2.1", а теперь просто ""Документооборот 2" и всё в одном. В базе наплодились версии на все три программных продукта. Для наведения порядка нужно:
1. Удалить все версии ""Документооборот 2".
2. Сменить владельца у двух старых программных продуктов на новый. На этих версиях уже много чего завязано.
3. Сделать замену всех ссылок старых программных продуктов на ссылку нового программного продукта.
Разделил на 3 этапа, так как делается это универсальными обработками. После этого нужно включить загрузку нового ПП.
Было бы неплохо, если бы эти все действия можно было сделать какой-то специальной обработкой, которая будет это делать в фоновом режиме.
(55) День добрый.
Пользователя конечно что же добавил, под ним на users.v8.1c.ru захожу. Через программу не обновляет версии...
Если же снять галку Использовать фоновые задания то ошибка... как быть, может версия не совсем новая? Установлена Загрузка обновлений 1C 8, 7.7, Айлант ЖКХ (1.0.3.10)
(57) Павел, cf получили, обновили конфу, спасибо. Но что то не пойму как получаются даты обновлений, интересует Бухгалтерия 3.0 обычная, по ней почему то на 2016 году все остановилось, а вот по Бухгалтерии КОРП все ОК, свежее 2018 года. В чем может быть дело?
в модуле UPD_ЗагрузкаОбновленийКлиентСерверПовтИсп вместо
Функция НайтиИдентификаторСессииV8(ПользовательСайта, АдресСайта = "releases.1c.ru") Экспорт
ИдентификаторСессии = Новый Структура("Найден, JSESSIONID, onec_security", Ложь);
Сессии = Новый Соответствие;
Попытка
HTTPЗапрос1 = Новый HTTPЗапрос;
HTTPЗапрос1.Заголовки.Вставить("Connection", "keep-alive");
Показать
Функция НайтиИдентификаторСессииV8(ПользовательСайта, АдресСайта = "releases.1c.ru", АдресРезурса = "") Экспорт
ИдентификаторСессии = Новый Структура("Найден, JSESSIONID, onec_security", Ложь);
Сессии = Новый Соответствие;
Попытка
HTTPЗапрос1 = Новый HTTPЗапрос;
HTTPЗапрос1.Заголовки.Вставить("Connection", "keep-alive");
HTTPЗапрос1.АдресРесурса = АдресРезурса;
Доброе время суток! Заранее прошу прощения, но не могли бы вы помочь?
Использую другую конфигурацию (от автора Alexandr Kuritsyn (hibico)) для скачивания файлов updsetup.exe.
Со скачиванием проблема, немного поправил и сделал так:
где Адрес это ссылка на файл вида "https://dl03.1c.ru/public/file/get/d616d9b8-7e48-11e5-863e-005056910018"
подскажите пожалуйста, как скачать этот файл updsetup.exe?
В ОтветHTTP6: код состояния 302, а в Location:
https://login.1c.ru/login?service=https%3A%2F%2Fdl03.1c.ru%2Fpublic%2Fsecurity_check Можете подсказать в чем загвоздка, что-то пока плохо получается разобраться в запросах, не могу понять, что надо сделать дальше, чтобы скачать файл?!
Заранее благодарю!
Если есть готовое решение, я конечно не откажусь, но одновременно хочется разобраться, хотя бы в общих принципах работы, в данном случае в принципах скачивания файла обновления updsetup.exe.
Почему например, когда я уже залогинился, вроде как, получил ссылку, а скачать по ссылке не получается.
Можете подсказать в чем загвоздка, что-то пока плохо получается разобраться в запросах, не могу понять, что надо сделать дальше, чтобы скачать файл?!
Надо залогиниться на dl03.1c.ru, а вы пытаетесь использовать куки логина на releases.1c.ru. Вам надо JSESSIONID1 получать из соединения с сервером dl03.1c.ru.
(64) как же мне залогиниться на dl03.1c.ru, если на login.1c.ru мы используем форму с логином и паролем и посылаем POST-запрос (Если не ошибаюсь), понимаю, что вам это наверное покажется глупым, но на dl03.1c.ru такой формы то нет...
(65)
login.1c.ru это login.1c.ru.
releases.1c.ru это releases.1c.ru.
На releases.1c.ru формы ввода логина и пароля тоже нет)))) залогивание на dl03.1c.ru ничем не отличается от ввода логина на releases.1c.ru. Тот же пост запрос к login.1c.ru, только с куками полученными с dl03.1c.ru.
(66) спасибо, сейчас попробую! Т.е. хорошо, здесь пока ясно, пробую запросить файл по ссылке, меня перенаправляет, на login.1c.ru, я беру куки которые были в ответе при попытке получить файл с сайта dl03.1c.ru и передаю их на login.1c.ru, на тот адрес куда меня перенаправили. Дальше мне опять получать форму и логиниться с этими куками от dl03.1c.ru?
Это вопрос номер 1.
А второй вопрос залогинился допустим, дальше как? Сразу пробовать получить файл с куками от dl03.1c.ru? Или какие-то ещё промежуточные действия?!))
(67) запрашиваешь страницу по ссылке на скачку на dl03.1c.ru, читаешь с нее куки. С этими куками отправляешь пост запрос к login.1c.ru полностью аналогичный как при логине с releases.1c.ru, т.к. сначала обычный запрос, оттуда читаешь форму и параметры, а затем уже пост запрос. А затем с этими куками запрашиваешь с dl03.1c.ru, там он если правильно помню несколько раз перенаправляет, т.е. если код ответа будет перенаправлением, то по реферальной ссылке надо будет еще запрашивать.
(68) Всё-таки туплю с куками и перенаправлениями, сделал вот так после кода написанного выше:
т.е. пробуем запросить по ссылке, получаем куки, передаем их на страницу перенаправления логин1с, получаем форму, тут уже с разными куками пробовал, после залогинивания нас перенаправляют на https://releases.1c.ru/public/security_check?ticket=ST-605536-vQOOHdjUvBNrbXEGbWB7-login-tomcat1-gpt-msk и тут опять непонятка, пробовал с полученными куками по перенаправлениям, что-то не то в итоге на главной релизес оказываюсь, а если с этими куками сразу на dl03, тогда опять отправляет на логин1С
(73) А скачивать отдельные файлы, выкладываемые на странице конфигурации? Или насколько реалистично самостоятельно реализовать такой функционал на основе имеющегося?
Конфигурация не находит релизы, которые вышли в августе при выполнении команды "Обновить версии конфигураций". Для конфигурации БП 3.0 текущий релиз 3.0.64.48 от 15.08.18. В конфигурации только 3.0.64.34 от 24.07.2018. Для конфигурации БГУ 2.0 текущий релиз 2.0.57.26 от 10.08.18, в конфигурации 2.0.57.8 от 09.07.2018.
В базе указал пользователя для проверки и скачивания обновление и каталог обновлений в настройках. Больше ничего не делал.
Скачивание релизов тоже не работает. В настройках указал дату начала скачивания обновлений "01.08.2999", чтобы не скачивались релизы всех конфигураций. Указал каталог обновлений. Добавил пользователя для проверки и скачивания обновлений. Уставонил значение "Загружать полные дистрибутивы" в Истина.
Для одной конфигурации указал свою дату загрузки обновлений "01.01.2018", чтобы скачались обновления только этой конфигурации. Также поставил галочку "Скачивать обновления". Выполняю команду "Загрузить", где-то на десять секунд запускается фоновое задание, выключается, никаких файлов не появляется.
(78) Права точно есть, постоянно скачиваю под этим пользователем обновления. База файловая. Доступ в интернет должен быть, список релизов в конфигурациях же появился, хоть и не совсем актуальный. Я так понимаю, он скачивается с интернета.
Вот что смог выяснить, к сожалению, знания не позволяют мне выяснить больше.
Выполнение кода добирается до функции "ЗагрузитьВерсииV8ПоСсылке". Соединение выполняется (см. скриншот), ответ получен (см. скриншот), что говорит о наличии доступа в интернет.
Из функции "ЗагрузитьВерсииV8ПоСсылке" попадаем в процедуру "РекурсивныйПарсингСпискаВерсий". И здесь происходит что-то подозрительное. Выполняется получение первого элемента:
Для Каждого ЭлДок Из ДокументHTML.ДочерниеУзлы Цикл
Первое условие не выполняется:
Если СокрЛП(ЭлДок.ТекстовоеСодержимое) = "Номер версии" Тогда
Выполнение цикла тут же прекращается. Условие, которое идет следом за циклом, тоже не выполняется:
Если ЭлДок.ЕстьДочерниеУзлы() Тогда
Выполнение процедуры "РекурсивныйПарсингСпискаВерсий" заканчивается безрезультатно. Насколько я понимаю произошла неудачная попытка получения списка версий конфигурации.
(83) Проверил. Логин и пароль набираю не с клавиатуры, а копированием/вставкой. Самостоятельно на сайт по этому логину и паролю я зайти могу. А попытка обновить версии конфигурации неудачная.
Посмотрел функцию "НайтиИдентификаторСессииV8". В ней четыре раза встречается переменная ОтветHTTP. Посмотрел коды состояния в этой переменной: 302, 200, 401, 401. Я так понимаю, что в третий раз как раз происходит неудачная авторизация.
(86) Если бы все так просто было. Я проверял переменную InviteCode, на всякий случай. В ней логин и пароль правильные. Но пока отложим эту проблему, выявились новые.
Запускаю скачивание файлов обновлений. Иногда скачиваются нужные файлы, но чаще получаются файлы с одинаковым размеров 10КБ. Если это файл htm, то его можно открыть. В нем будет приблизительно следующее:
1C:Обновление программ
Главная Новости Личный кабинет О сервисе
Указанный файл не найден
Внимание!
Выбранный файл не найден
С помощью отладчика прошелся, для файлов самих обновлений получается точно такой же результат, просто он сохраняется в файл с расширением exe.
В результате ни разу все нужные файлы не скачались, сколько бы я не запускал загрузку. Либо какая-то часть скачивается, либо ни одного.
(90) Ничего не пишет. Случайно нашел этот регистр, сразу полез смотреть. Журнал регистрации смотрел, тоже ничего нет интересного.
А как можно решить, отследить проблему? На стороне 1С я могу самостоятельно разбирать проблемы, но как только дело доходит до взаимодействия с сайтом 1С, тут я ничего не могу сделать. HTTP и внутренности 1совского сайта я не знаю.
(91) Да, конечно. Через сайт без проблем могу скачивать. Плюс, как я уже писал выше, иногда файлы удачно скачиваются. ПРи этом никакой логики не вижу. Совсем необязательно, что скачаются первые два файла, а остальные не скачаются. Я запускал несколько раз, каждый раз разные файлы закачивались удачно. Я установил количество потоков равное нулю, чтобы все в одном потоке выполнялось и чтобы было проще отслеживать выполнение. Поэтому имел возможность наблюдать в режиме реального времени появления файлов.
У пользователя наблюдается внезапное кратковременное пропадание прав)
(86) Похоже определил причину проблемы. Изменил пароль у первого пользователя, оставив только латинские буквы и цифры. Стало работать. До этого в пароле использовались спецсимволы и скобки.
На мысль навели попытки с помощью инструментов разработчика браузера посмотреть как происходит работа с сайтом. Там заметил, что в InviteCode, написание пароля отличается от самого пароля. Некоторые символы заменены. Замена похожа на замену слеша на "%2F", или замену русских букв в адресной строке не похожие наборы символов. По-видимому, из-за отсутствия подобной замены у меня и не происходила авторизация.
Но проблема, что указанный файл не найден осталась. По-прежнему вместо нужных файлов закачиваются 10Кб страницы, как описывал выше.
Не знаю имеет ли это значение, но обратил внимание, что значение возвращаемое функцией "НайтиИдентификаторСессииV8" не кэшируется, а каждый раз вычисляется заново.
(96) Абсолютно. Насколько я понимаю, каждый раз когда приходит новая комбинация параметров, выполняется вычисление функции. А новая комбинация получается каждый раз, как меняется значение параметра "АдресРезурса". Задуманное это поведение или нет, я оценить не могу.