Госзакупки не работает личный кабинет. Закупки невозможно отобразить страницу. Требования к компьютеру и программному обеспечению

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

И вот с прошлого года их всех заставили сначала зарегистрироваться на сайте zakupki.gov.ru и затем выложить план-график размещения заказов. А с этого года еще и на сайте bus.gov.ru , чтобы выложить всю информацию об учреждении.

Не будем вдаваться в подробности зачем все это нужно… Пришел приказ сверху и нужно его выполнять. Сразу скажу, что обычные бухгалтера врядли бы сами смогли разобраться и что то сделать, даже по инструкции, т.к. проблем много и решить их иногда не так просто. Итак, приступим…

zakupki.gov.ru

Регистрация на сайте происходит с помощью личного сертификата и закрытых ключей выданных Федеральным казначейством на (!) дискете и никак иначе, про флешки, по всей видимости, они до сих пор не знают. Самое интересное, что не всем учреждениям выдали личне сертификаты, т.е. дискеты с самой ЭЦП дали, а на сертификаты забили… Путем очень долгих переговоров удалось все же выпросить эти сертификаты.

Для работы с этими сайтами нам понадобится следующий софт:

  • — Crypto Pro 3.6 — если ос windows 7, или версия 3.0 если windows XP (Казначейство дает лицензию лишь на версию 3.0, при этом почти во всех учреждениях на всех компьютерах, кроме того, где находится программа для электронного документооборота — СЭД, стоит windows 7, а настраивать закупки.гов.ру и СЭД на одной машине нельзя, после этого перестанет работать ЭЦП. Выходов два: 1) купить лицензию 3.6; 2) ставить на машину где установлена ХР. Ок… машину нашли…ставим крипто про.
  • — Ланит.Компонент формирования подписи — скачать можно , в архиве (можно открыть его 7zip’ом и ли winrar’ом) есть файл установщика, запускаем его и, если есть все что, нужно, то успешно установится.
  • — Net Framework 2.0+SP1 (Обязательно!) — скачать можно с сайта , без фреймворка вы не сможете установить компонент формирования подписи.
  • — Internet Explorer 7.0 и выше… на 6ой версии сайт тоже будет работать, но подвисает очень часто.

Софт весь скачали, успешно установили, переходим к настройке IE.

Открываем Internet Explorer, заходим на сайт http://zakupki.gov.ru

Открываем Свойства обозревателя, вкладка Безопасность и добавляем наш сайт в Надежные узлы.

Добавив сайты в список надежных узлов, жмем кнопку «Другой» и чтобы не мучаться — разрешаем все! Обязательно нужно разрешить «доступ к источникам данных за пределами домена». Разрешив все, жмем ОК и переходим на вкладку Дополнительно и отмечаем галками SSL 2.0, TLS 1.0.

Теперь нам нужно установить сертификат Федерального казначейства. Этот сертификат есть на сайте zakupki.gov.ru, но, т.к. все делается на откатах и распилах, то там вы встретите два сертификата

Качаем, конечно же, новый сертификат. Открываете архив, открываете сам сертификат, жмете «Установить сертификат»
и добавляете его в раздел «Доверенные корневые центры сертификации». Точно такую же процедуру проделываете с «Новым серверным сертификатом zakupki.gov.ru».

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

Теперь идем в панель управления компьютером и открываем КриптоПро — вкладка «Сервис» — кнопка «Установить личный сертификат» — через обзор выбираем сам сертификат, у всех он находился на дискете, в качестве контейнера выбираем все ту же дискету на которой находится ЭЦП,и дальше устанавливаем сертификат в контейнер в раздел Личные.

ВСЕ! Теперь можем спокойно зайти на сайт закупки.гов.ру, выбрать личный кабинет и авторизоваться на сайте.

bus.gov.ru

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

Оба сайта очень тупые и тормознутые, особенно bus.gov.ru, только в личный кабинет можете попадать пол часа-час, а ведь потом еще нужно разместить кучу документов…

Теперь немного о проблемах и их решениях…

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

2. вам поменяли сертификат и вы теперь не можете авторизоваться на сайте через госзакупки
нужно на сайте госзакупок зайти под логином и паролем, которые вы указывали при регистрации, и зарегистрировать с дискеты новый сертификат

3. пытаетесь разместить план график, а нигде нет такого пункта меню
нужно зайти в раздел Пользователи организации, и отредактировать свою учетную запись, добавив ей прав на размещение плана-графика

4. при попытке подписать загруженный файл появляется сообщение «Can’t Sign data»
вы не установили компонент формирования подписи Ланит

5. пытаетесь установить Ланит и он предлагает установить Microsoft net framework sp2, но после установки, все равно не можете установить Ланит
качайте фремворк с сайта майкросовта и устанавливайте вручную

6. при попытке подписать загруженный файл появляется сообщение «Can’t Sign data», но при этом все установлено
при попытке подписать файл, посмотрите не появилось ли небольшая всплывающая полоска в браузере с инфомрации о заблокированном компоненте Active X, если такая есть, то нажмите на нее правой кнопкой мыши и разрешите запуск этого компонента.

пока все, если есть вопросы — пишите, будем вместе разбираться

Помогла статья? Поддержи блог - расскажи о нём на своей странице в социальной сети.

Если вы работаете в бюджетном учреждении, или обслуживаете такие организации по части it-обеспечения, вам может понадобиться провести процедуру настройки и подключения рабочих станций для работы с государственными ресурсами. Это сервисы гос.закупом. Сейчас мы разберем процесс по шагам.

zakupki.gov.ru bus.gov.ru

zakupki.gov.ru - используется для размещения информации о государственных закупках, и работе в системе торгов.

bus.gov.ru - размещение официальной информации о бюджетном учреждении.

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

Теперь давайте посмотрим, как зарегистрироваться на сайте госзакупок.

Регистрируемся на zakupki.gov.ru

Весь процесс можно условно разделить на два этапа:

Официальная регистрация и получение соответствующих документов и разрешений
- техническая часть, установка и настройка

Для работы вам понадобится ЭЦП (электронно-цифровая подпись) и электронные сертификаты. Все это вам выдадут после регистрации в федеральном казначействе. Инструкция и необходимые документы опубликованы на сайте:

Roskazna.ru

Как правило, эцп и сертификаты для работы с сайтом закупки.гов.ру выпускаются на дискетах или флеш-носителях. Когда они появятся у вас на руках, можно переходить к настройке компьютера, с которого планируется вести работу.

Техническая часть

Здесь вам понадобится устанавливать специальные программы, и корректным образом настраивать вашу операционную систему. Давайте по шагам пройдет этот процесс, с указанием списка того, что понадобится вам в работе.

Операционная система

Для работы с сайтом гос.закупок подойдет Windows XP или 7. Именно эти операционные системы наиболее распространены, и наверняка их используют в той организации, где вам предстоит провести настройку.

Браузер

Для корректной работы вам необходимо использовать Internet Explorer 8 версии. Процесс установки и обновления браузера вы найдете в материале - .

Платформа NetFramework

На компьютере в обязательном порядке должна быть установлена платформа NetFramework, не ниже 2.0 версии. Необходимо также, чтобы был установлен пакет обновлений SP1.

Http://www.microsoft.com/ru-ru/download/details.aspx?id=16614

Установите в обычном режиме.

Компонент формирования подписи Sign

Для корректной работы ЭЦП, необходимо наличие специального программного обеспечения. Скачать его можно по ссылке ниже:

После того, как программа будет установлена, вы можете сразу установить ваш персональный сертификат, полученный от казначейства. Для этого запустите CryptoPro, укажите место хранения сертификата (дискета или флешка), и установите его.

Библиотека Capicom

Скачивайте и устанавливайте ее в обычном режиме:

Дата: 03.08.2015

Корневые сертификаты

Необходимо установить на компьютер сертификаты казначейства:

Дата: 03.08.2015

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

Настройка Internet Explorer

Для корректной работы сайта закупки.гов.ру, мы должны добавить его в список доверенных узлов в нашем браузере.

Теперь выбираем пункт "Надежные сайты ", и щелкаем кнопку "Сайты ". Здесь набираем адрес сайта гос.закупок, и добавляем его в список доверенных. Рекомендую вам добавить сайт с протоколами http и https. В итоге в списке у вас должно быть следующее:

Http://zakupki.gov.ru https://zakupki.gov.ru

После этого переходите на вкладку "Дополнительно ", и здесь отмечайте галочками пункты SSL 2.0 и SSl 3.0.

После этого сохраняйте настройки.

После того, как все этапы будут пройдены, вы можете заходить на сайт zakupki.gov.ru и авторизоваться в личном кабинете.

Bus.gov.ru

Соответственно для доступа к этому сайту, вам в любом случае придется регистрировать и получать данные для доступа к сайту государственных закупок.

Если возникает ошибка при попытке подписать файл, проверьте, установлен ли компонент формирования подписи Sign.

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

Заключение

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

Зачем искать информацию на других сайтах, если все собрано у нас?

  • в процессе регистрации

Очень и очень часто, сталкиваюсь с тем, что пользователи, вынужденные самостоятельно настраивать доступ по ЭЦП к сайту закупки гов, государственных закупок, имеют целый ворох различных проблем. Бывают даже настолько отчаянные, у которых и Инструкции то нет к настройке этого дела.

Закупки Невозможно отобразить страницу

В интернете если поискать можно найти много инструкций, как и что настраивать, как и что делать при каких проблемах. Я бы хотел Вам рассказать лишь про возможность немного упростить всю эту настройку и подготовку. Как долго этот вариант еще будет работать, сказать сложно. Но я пользуюсь часто =Р. Ибо это действительно намного проще.

Вариант этот состоит в том, чтобы воспользоваться автоматической настройкой через сайт Контура. Заходим собственно на сам сайт . Ищем в правом верхнем углу ссылку Техподдержка и внизу слева ссылку Установка сертификата . Либо переходим сразу, по этой ссылке . Советую все же, для этих дел, пользоваться IE. Итак зашли на сайт. Выбрали ссылку Настроить для работы на порталах Гос.закупок и Гос.услуг («zakupki.gov.ru»).


Жмем пкм и запустить эту надстройку для всех узлов, раза эдак 4, пока не перестанет появляться. Далее качаем утилиту AddToTrusted , которая вместо нас, добавит все необходимые сайты в список безопасных и настроит IE. Как скачалось запускаем. И обновляем нашу страничку либо на F5 либо с помощью мышки 🙂 По сути, это и вся настройка, далее имеет смысл лишь, после проверки системы, нажать кнопку выбрать компоненты для установки и убрать если нет необходимости, такие галочки допустим как установка Mozilla Firefox.


AVAST блокирует HTTPS и закупки не открываются

К чему я это все начал рассказывать? Ну да, ведь как обычно, принесли ноутбук, с которого необходимо срочно выйти на сайт госзакупок. Но при переходе на 223 ФЗ, вылетает наше любимое Невозможно отобразить страницу. Дело на этот раз оказалось в антивирусе AVAST. Хоть он и подводит в очередной раз, но люблю я его 🙂 После недавнего обновления в нем появилась функция Сканирование HTTPS , которая и стала причиной блокировки работы портала закупок, да и я так подозреваю, что не только его. Вообщем. пока, стоит ее отключить.

Цитата:
«Официальный сайт Российской Федерации в сети «Интернет» для размещения информации о размещении заказов на поставки товаров, выполнение работ, оказание услуг … предназначен для обеспечения свободного и безвозмездного доступа к полной и достоверной информации о контрактной системе в сфере закупок и закупках товаров, работ, услуг, отдельными видами юридических лиц, а также для формирования, обработки и хранения такой информации.»

Для многих коммерческих и иных компаний система «госзакупок» является основным способом привлечения в хозяйственную деятельность государственных (бюджетных) средств. Информация о закупках товаров, услуг, исследовательских работ, осуществляемых компаниями с государственным участием (и другими отдельными видами компаний) в обязательном порядке (согласно федеральным законам №№ 223, 94, 44) размещается на сайте госзакупок. Коммерческие компании также зачастую публикуют свои тендеры именно на официальном сайте госзакупок.
  • Федеральный закон от 21.07.2005 N 94-ФЗ (ред. от 02.07.2013) "О размещении заказов на поставки товаров, выполнение работ, оказание услуг для государственных и муниципальных нужд"
  • Федеральный закон от 18.07.2011 N 223-ФЗ (ред. от 12.03.2014, с изм. от 29.12.2014) "О закупках товаров, работ, услуг отдельными видами юридических лиц" (с изм. и доп., вступ. в силу с 01.01.2015)
  • Федеральный закон от 05.04.2013 N 44-ФЗ (ред. от 08.03.2015) "О контрактной системе в сфере закупок товаров, работ, услуг для обеспечения государственных и муниципальных нужд"
Таким образом, информация о конкурсах, публикуемая на сайте госзакупок, является центральным источником актуальных сведений о возможных «государственных» заказах по профилю для множества компаний из самых разных сфер деятельности - от услуг охраны до геофизических изысканий. Поэтому потребность иметь регулярно обновляемые сведения о проходящих конкурсах, попадающих под определенные критерии, возникает у каждой организации, участвующей в госзакупках. В настоящей статье рассмотрим различные способы и практический пример реализации указанной потребности.

Варианты получения сведений о госзакупках

Чаще всего задача ставится руководством перед маркетинговым или IT-подразделением компании примерно в следующей формулировке: «необходима ежедневная сводка по конкурсам госзакупок, удовлетворяющим следующим критериям…» . Именно ежедневная, так как иногда между публикацией конкурсной документации и окончанием подачи заявок на него объявляется срок менее 10 дней, в среднем - около двух недель. Времени для сбора всей необходимой документации для участия в конкурсе совсем не много, каждый день «на счету».

Перечислим варианты реализации задачи.

1. Сайт ООС (госзакупок)
Сам сайт http://zakupki.gov.ru/ дает возможности настраиваемого поиска и отбора конкурсов по параметрам.

Недостатки:

  • Поиск работает недостаточно корректно, иногда конкурсы «не находятся». Я свидетель долгой рабы именно через официальный сайт, утверждение мной проверено;
  • Сайт зачастую не работает по ночам и праздникам;
  • Ограничение в количестве результатов. Если поиск выдает более, чем 500 строк, скачивание данных о конкурсах (в виде таблицы.csv формата) средствами сайта невозможно.
Для частичной автоматизации процесса я в своё время написал плагин для браузера FireFox, который должен был делать ежедневное скачивание отобранных конкурсов.

В двух словах плагин формировал адрес в виде примерно такой строки:

"http://zakupki.gov.ru/epz/order/extendedsearch/search.html?" + "placeOfSearch=FZ_44" + "&orderPriceFrom=" + priceArray[i] + "&orderPriceTo=" + (priceArray-1) + "&orderPriceCurrencyId=-1" + "&orderPublishDateFrom=" + OrderDate + "&orderPublishDateTo=" + OrderDate + "&headAgencyWithSubElements=true&matchingWordPlace44=NOTIFICATIONS" + "&law44.okpd.withSubElements=true” + "&law44.okpd.ids=31301%2C37097%2C50876%2C51122" + "&law44.advantages=I&law44.advantages=I" + "&law44.advantages=I&law44.advantages=I" + "&morphology=false&strictEqual=false";
Естественно, для 94 и 223 закона параметры запроса другие. Как видно, ОКПД, диапазон цен и т.п. приходится «зашивать» в запрос, так как иначе количество найденных конкурсов будет слишком большим и результаты поиска можно будет скачать только частично.

2. Специализированные web - сервисы поиска конкурсов
В ответ на запрос рынка несколько компаний организовали сайты поиска информации о проводимых конкурсах. Зачастую такие сайты дают не только сведения о госзакупках, но и о «частных» тендерах с электронных площадок.

Несколько таких систем:

  • Мультитендер.ру : «бесплатная специализированная поисковая система, позволяющая отслеживать госзакупки и коммерческие тендеры» ;
  • TenderCAT : «Каталог TenderCAT предназначен для облегчения поиска государственных и коммерческих тендеров и аукционов в огромной массе ежедневно публикуемых на портале госзакупок (http://zakupki.gov.ru) заказов по всем регионам и направлениям деятельности» ;
  • Ист Бюджет : «Сайт госзакупок и тендеров - лучший поиск и аналитика от Ист Бюджет» ;
И другие.
Отдельно упомяну Госзатраты , о которых на Хабре была .

Целью настоящей статьи не является сравнение или анализ указанных ресурсов, так что ни их достоинства, ни недостатки здесь не приводятся.

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

Встречаются примеры заказа описанных работ у фрилансеров. Например, на SQL.ru , на Weblancer . Наконец, можно приобрести готовое решение у «проверенных временем» исполнителей . Однако основная часть настоящей статьи описывает процедуру самостоятельного исполнения задачи.

Скачивание данных о конкурсах с http://zakupki.gov.ru средствами Excel VBA

Исходные данные
Основное необходимое знание об источнике данных: у ООС (общероссийский официальный сайт госзакупок) имеется публичный ftp-сервер . При этом если http регулярно (обычно в ночное время и праздничные дни) не доступен по причине «технического обслуживания», то ftp работает (согласно моей практике) вполне надежно.

Адреса ftp серверов разделены по федеральным законам, применяющимся для размещения тендеров:
ФЗ №223: ftp://ftp.zakupki.gov.ru/out/

Логин и пароль:


ФЗ №94 и ФЗ №44: ftp://zakupki.gov.ru

Логин и пароль:


Структура каталогов для 223 закона вполне прозрачна. Что же касается 94 и 44, здесь расположены следующие интересующие нас подкаталоги:
  1. 94fz каталог, содержащий данные публичных выгрузок в соответствии с 94ФЗ (остальные каталоги - 44ФЗ),
  2. fcs_regions каталог, содержащий данные полной региональной выгрузки опубликованной на ООС информации в соответствии с 94ФЗ.

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

Полная региональная выгрузка включают в себя все опубликованные на ООС документы следующих типов:
опубликованные извещения;
опубликованные изменения извещений;
опубликованные протоколы;
опубликованные сведения о контрактах;
опубликованные изменения контрактов;
опубликованные сведения об исполнении/прекращении действия контрактов.

Отметим, что в наших целях интересны только извещения (notice ). Все остальные виды документов в рамках задачи не используются!
Выгрузка осуществляется в архивируемые файлы формата XML.
В одном файле могут находиться документы только одного типа в количестве, не превышающем 3000 записей. Если количество документов, подлежащих выгрузке, превышает 3000 записей, система формирует несколько файлов и каждый помещает в отдельный архив.
Все сформированные и зархивированные XML-файлы выгружаются на FTP-сервер… файлы в выгрузке разделены по каталогам, соответствующим региону. В каждом каталоге региона есть еще 3 каталога: notifications, protocols и contracts. В каждом из каталогов notifications, protocols и contracts дополнительно есть каталог daily.
Опубликованные документы выгружаются на FTP-сервер в следующем порядке:
· Каждый календарный день (ежедневно) выгружается список документов, опубликованных за предыдущий календарный день. При этом…выгрузка извещений по региону делается в каталог <Наименование региона>/notifications/daily;
· Каждый календарный месяц (ежемесячно) выгружается список документов, опубликованных за предыдущий календарный месяц. При этом…выгрузка извещений по региону делается в каталог <Наименование региона>/notifications;
В ежедневной и ежемесячной выгрузках всегда выгружаются все типы документов, опубликованных за прошедший календарный день или календарный месяц соответственно.
Если на момент формирования выгрузки за истекший период не было ни одного опубликованного документа какого-нибудь типа, то XML-файл с данным типом документов выгружается пустым.
После завершения ежемесячной выгрузки, каталоги с ежедневными выгрузками за истекший месяц очищаются.
Имена файлов региональной выгрузки имеют следующую структуру:
<вид-документа_регион_начало-периода_конец-периода_номер.xml.zip>,
где:
вид-документа – принимает значение notification, protocol или contract для извещений, протоколов и сведений о контрактах соответственно;
регион – название региона выгрузки;
начало-периода – дата начала периода для отбора документов по дате-времени публикации выгружаемых документов в формате yyyyddmm_hhmmss, где yyyy – год, mm – месяц (номер), dd – день, hh – час, mm – минуты, ss – секунды;
конец-периода – дата конца периода для отбора документов по дате-времени публикации выгружаемых документов в формате yyyyddmm_hhmmss, где yyyy – год, mm – месяц (номер), dd – день, hh – час, mm – минуты, ss – секунды;
номер – порядковый номер сформированного файла;

Актуальную версию приведенной информации можно скачать с ООС в виде документов «Схемы информационного обмена…».
Описание программы автоматического скачивания конкурсной информации (VBA MS Excel, Windows).
Подготовка
  • Подключаем скриптинг Microsoft Scripting Runtime. Для функциональности FSO (\Windows\System32\scrrun.dll )
  • Подключаем скриптинг Microsoft XML, v.6
Для запроса диапазона дат, в котором следует скачать конкурсы, я сделал userForm с использованием элемента MonthView . Его настройки позволяют развернуть два месяца рядом (предположим, что диапазон не длиннее, чем месяц), показывать текущую дату (красная рамочка), установить выбранный диапазон дат по умолчанию.

На примере выбран диапазон с 26 февраля по 4 марта. Выбранные даты считываются со свойств Формы:

MonthView.SelStart и MonthView.SelEnd
Вот такой фильтр позволяет выбирать файлы (структура имен которых нам известна) в заданном диапазоне дат:

Fltr = "*_" & Format(targetDate, "yyyymmdd") & "*" & Format(targetDate + 1, "yyyymmdd") & "*.zip;" & "*_" & Format(targetDate, "yyyymmdd") & "*" & Format(targetDate, "yyyymmdd") & "*.zip"
Обратим внимание на то, что здесь точка с запятой разделяет альтернативные варианты, поэтому указанный фильтр подходит для файлов, формируемых по всем трем законам.

Скачивание файлов я осуществляю в заданную директорию, которую предварительно очищаю от старых закачек, применяя методы FSO:

Dim FSO As FileSystemObject Set FSO = New FileSystemObject
Далее выбираем целевую папку bFld = FSO.GetFolder(...) и уничтожаем поддиректории:

For Each SubFolder In bFld.SubFolders SubFolder.Delete Next
Совершенно не обязательным, но крайне удачным «фантиком» к программе оказалось использование Application.Speech.Speak Удобно не наблюдать за прогрессом долгой процедуры, а занимаясь своими делами регулярно слышать сообщения (приятным женским голосом) типа:

Application.Speech.Speak "Downloading purchase notices", True
Второй параметр - асинхронное выполнение.

Скачивание файлов
Начинаем скачивание. Убеждаемся, что целевая папка существует с помощью FSO.FolderExists и при необходимости создаем её функцией MkDir .
Создаем шелл - объект
Set myShell = CreateObject("Shell.Application")
и применяем основную «фишку» описываемого подхода - метод namespace :
Set ftpItems = myShell.Namespace(адресFTP).Items
Указанная строка реализует обращение к FTP, возвращая папки и файлы. Обратите внимание на то, что передаваемый параметр должен иметь тип Variant , а не String .

Выбрать все директории можно так:

FtpItems.Filter 32, "*".
Выбрать поддиректории и файлы (96=32+64 ) и применить фильтр вроде того, который был построен в начале параграфа для отбора фалов по дате - так:

FtpItems.Filter 96, fltr.
Остается указать целевую (локальную) папку для скачивания аналогичным способом:

Set tFolder = myShell.Namespace(tgtFolder)
И запустить «копирование» (оно же «скачивание») следующим образом:

TFolder.CopyHere ftpItems, 20
Эта команда запускает внешний процесс (в Windows отображается стандартный прогресс-бар копирования файлов), её выполнение из vba не контролируется напрямую. Однако нам необходимо дождаться окончания её выполнения, для чего мы следующим методом в цикле проверяем наличие последнего из копируемых файлов:

While Len(Dir$(tgtFolder & "\" & ftpItems.Item(ftpItems.Count - 1).Name)) = 0 Sleep 1: DoEvents Wend
Так устроенное «ожидание» длится в точности столько, сколько копируются файлы.

Распаковка (разархивация) скачанных файлов
Перебрав все директории и поддиректории и скачав все отфильтрованные файлы, приступаем к их обработке на локальной машине:

Application.Speech.Speak "Unzipping archives", True.
Для этого снова пользуемся методом namespace .
Перебираем все архивы в папке For Each fl In tFolderItems
и пользуемся тем, что эти архивы в Windows видны как поддиректории! Соответственно, всё содержимое архива доступно так:

Set flItems = myShell.Namespace(CVar(tgtFolder & "\" & fl.Name)).Items
(Снова обращаю внимание на то, что параметр должен быть Variant , из-за чего необходимо преобразование типа из строки).

И опять та же команда CopyHere позволяет «скопировать» (на самом деле извлечь) из архива все фалы в целевую папку: myShell.Namespace(tgtFolder).CopyHere flItems, 20
а асинхронное выполнение заставляет нас в цикле ждать окончания выполнения этой команды тем же образом, который описывался выше.

Среди разархивированных файлов немало «мусора». Например, по какому-то региону в определенный день не было никаких закупок, ООС генерирует пустой файл за эту дату. Поэтому прежде, чем парсить xml, я предпочитаю удалить лишнее. Используя FSO перебираем файлы

Set fold = FSO.GetFolder(tgtFolder) For Each fl In fold.Files
«Отсев» легко произвести по размеру файла (fl.Size <= 198) и фильтруя его название Not (LCase(fl.Name) Like "*noti*")) .

Удаление файла осуществляется предельно просто: fl.Delete

Расшифровка XML с данными о конкурсах
Расшифровка xml зависит от их схемы, которая на ООС иногда меняется. Поэтому далее приведены основные приемы, без концентрации на отдельных полях и данных. Начинаем, конечно, с

Application.Speech.Speak "Decoding files", True.
В этой части помимо FSO для работы с файлами нам понадобится XML:

Dim xml As MSXML2.DOMDocument60 Set xml = New DOMDocument60: xml.async = False: xml.validateOnParse = True
И, конечно, целевой лист (ActiveSheet ) в книге Excel, куда мы будем записывать информацию.
Начнем с того, что остановим отрисовку Excel на время, чтобы «не мельтешило»:

Application.ScreenUpdating = False
Принципиальным моментом является то, что

«XPath обрабатывает пустой префикс как пространство имен null. Другими словами, в запросах XPath можно использовать только префиксы, сопоставленные с пространствами имен. Это значит, что если нужно построить запрос к пространству имен в XML-документе, то даже если оно является пространством имен по умолчанию, для него необходимо определить префикс.»
Поэтому для успешного разбора полей скачанных документов для пространства имен по умолчанию добавляем некий префикс. Например, «q»:

Xml.setProperty "SelectionNamespaces", " xmlns:q= "http://zakupki.gov.ru/oos/export/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oos="http://zakupki.gov.ru/oos/types/1""
Так выглядит определения пространства имен для разбора xml, сформированных по 94 ФЗ. Для 44 она будет немного другой:

Xml.setProperty "SelectionNamespaces", "xmlns:q="http://zakupki.gov.ru/oos/types/1" xmlns:ns2="http://zakupki.gov.ru/oos/export/1" xmlns:ns3="http://zakupki.gov.ru/oos/printform/1""
Собственно все приведенные данные берутся из заголовка любого скачанного xml - файла, только для пространства имен по умолчанию добавляется q .

Далее определяются поля (точнее, xpath , указывающий на них), которые нужно скачать. На текущий момент для 94 ФЗ они выглядят примерно так: ".//oos:notificationNumber", ".//oos:lot", ".//oos:orderName", ".//oos:maxPrice". Для 44 ФЗ - другая структура (спасибо программистам ООС): ".//q:purchaseNumber", ".//q:lot", ".//q:purchaseObjectInfo", ".//q:maxPrice|.//q:price|.//q:totalSum" .

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

Проверить, «читается» ли xml -файл можно двойным условием:

If Not xml.Load(tgtFolder & "\" & fl.Name) then…If (xml.parseError.ErrorCode <> 0) then…
Если же файл прочитался (до сих пор у меня с закачанными с ООС файлами проблем не было), можно собственно разбирать его содержание. Прежде всего рекомендую прочитать поле, описывающее состав сообщения (notice ).

PurchaseType = LCase(xml.DocumentElement.ChildNodes(0).BaseName) documentType = LCase(xml.DocumentElement.BaseName)
И проверить, что содержимое файла - это именно объявление о конкурсе, а не отмена его, уведомление о публикации протокола и т.п. примерно так:

If Not (purchaseType Like "*cancel*" Or purchaseType Like "*protocol*" Or documentType Like "*cancel*") Then
Так как в xml, сформированных по 223 ФЗ, название типа документа «спрятано», то можно добавить:

If (purchaseType Like "*notification*" Or documentType Like "*notice*") Then
Далее идет собственно запись данных из xml в ячейки листа:

Range("A" & i) = xml.DocumentElement.SelectSingleNode(строкаXPathсоотвПоля).Text
И т.д.
Если XPath может давать несколько вариантов (указание, например, на названия лотов) и все их мы хотим сохранить, поможет такая конструкция:

For Each it In lot.SelectNodes(строкаXPathсоотвПолей) Range("E" & i) = Range("E" & i) & it.Text & "; " Next
Некоторые поля в документе могут отсутствовать, тогда пропускаем их условием:

If Not xml.DocumentElement.SelectSingleNode(строкаXPathсоотвПоля) Is Nothing Then

Заключение
Скачивание файлов с ftp можно реализовать разными способами. Я описал один, с использованием shell.namespace , работающий и ОЧЕНЬ просто реализуемый.

После скачивания, автоматического ранжирования (отбора) и форматирования списка конкурсов моя ежедневная подборка конкурсов (по всем ФЗ) выглядит примерно так:

Описанный выше подход позволяет скачивать данные о конкурсах, контрактах, планах закупок и т.п. с ООС, ведь вся эта информация публикуется на открытом ftp . Весь код программы я не привожу и не могу привести, так как он является «интеллектуальной собственностью». Однако восстановить программу по приведённым ключевым участкам кода может любой, владеющий основами vba и, что важнее, терпением.

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

Всем удачи и побед: - в конкурсах - и личных!

nber-horeca.ru - Браузеры. Компьютер. Социальные сети. Программы