Получение актуальной версии отчета в Росстат по ОКУД с официального сайта Росстата (http://www.gks.ru) (без дальнейшего использования)

25.03.19

Учетные задачи - Регламентированный учет и отчетность

Простая обработка (не управляемая форма) для получения свойств статистического отчета по ОКУД с сайта www.gks.ru/metod/XML-2018/XML_plan_2018.htm . В первую очередь интересовала актуальная версия. Попутно решил собрать и прочие сведения об отчете.

Файлы

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

Наименование Скачано Купить файл
Получить актуальную версию отчета в Росстат по ОКУД с официального сайта Росстата (http://www.gks.ru) (без дальнейшего использования :) ):
.epf 15,10Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

Были случаи, когда 1С 15 марта выпускал внешним файлом версию от 14.03, а уже 19.03 форма становилась неактуальной.

Решил попробовать считать данные с официального сайта (http://www.gks.ru):

  • Код работы по ПП 2018 года;
  • Периодичность предоставления в Росстат;
  • Индекс формы по ОКУД;
  • Наименование отчета;
  • Дата актуализации.

При открытии обработки указываете код по ОКУД. И нажимаете "Получить данные".

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

Возможно следующим шагом будет подстановка версии в стат.отчет выбранный бухгалтером.

Так как бесплатно выложить не получается, а продавать за SM рука не подымется приходится весь текст (3 процедуры и 1 функцию :) ) выкладывать в описание:

1. Заполняем корректно код по ОКУД и нажимаем на кнопку "Получить данные"

&НаКлиенте
Процедура ПересчитатьДанныеНажатие(Команда)
	//вызывается нажатием на кнопку "Получить данные"
	Если ЗначениеЗаполнено(ОКУД) Тогда
		ВыполнитьHTTPЗапрос("http://gks.ru");
	Иначе	
		СтрокаНаименование 		= "";
		СтрокаВерсия 			= "";
		СтрокаПериодичность		= "";
		СтрокаКодРаботыПоПП		= "";
		СтрокаИндексОКУД		= "";
		
		КодРаботыПоПП2018 	= СокрЛП(СтрокаКодРаботыПоПП);
		Периодичность 		= СокрЛП(СтрокаПериодичность);
		ИндексФормыПоОКУД 	= СокрЛП(СтрокаИндексОКУД);
		АктуальнаяВерсия 	= СокрЛП(СтрокаВерсия);
		ЭлементыФормы.НаименованиеОтчета.Заголовок = СокрЛП(СтрокаНаименование);
	КонецЕсли;	
КонецПроцедуры

2. Получаем содержимое сайта:

&НаКлиенте
Процедура ВыполнитьHTTPЗапрос(ПолныйАдресРесурса)
	СтруктураURI = СтруктураURI(ПолныйАдресРесурса); 
	HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт); 
	 
	HTTPЗапрос = Новый HTTPЗапрос("metod/XML-2018/XML_plan_2018.htm"); 
	Попытка
		Результат =  HTTPСоединение.Получить(HTTPЗапрос);
	Исключение
		 // исключение здесь говорит о том, что запрос не дошел до HTTP-Сервера
		 Сообщить("Произошла сетевая ошибка!");
		 ВызватьИсключение;
	 КонецПопытки;
	 
	 // Анализируем фатальные ошибки
	 // В большинстве случаев нужно остановить работу и показать пользователю сообщение об ошибке,
	 // включив в него HTTP-статус
	 
	 // Ошибки 4XX говорят о неправильном запросе - в широком смысле
	 // Может быть неправильный адрес, ошибка аутентификации, плохой формат запроса
	 // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4
	 Если Результат.КодСостояния >= 400 и Результат.КодСостояния < 500  Тогда
	   	 Сообщить("Код статуса больше 4XX, ошибка запроса.  Код статуса: " + Результат.КодСостояния);
	 КонецЕсли;
	 
	 // Ошибки 5XX говорят о проблемах на сервере (возможно, прокси-сервер)
	 // Это может быть программная ошибка, нехватка памяти, ошибка конфигурации и т.д.
	 // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5
	 Если Результат.КодСостояния >= 500 и Результат.КодСостояния < 600  Тогда
	   	 Сообщить("Код статуса больше 5XX, ошибка сервера. Код статуса: " + Результат.КодСостояния);
	 КонецЕсли;
	 
	 // Обрабатываем перенаправление
	 Если Результат.КодСостояния >= 300 и Результат.КодСостояния < 400  Тогда
	   	 Сообщить("Код статуса больше 3XX, Перенаправление. Код статуса: " + Результат.КодСостояния);
		Если  Результат.КодСостояния = 301 ИЛИ Результат.КодСостояния = 302 Тогда
		    Сообщить("Код статуса 302, Постоянное перенаправление.");
		    АдресРесурса = Результат.Заголовки.Получить("Location");
		    Если АдресРесурса <> Неопределено Тогда
				Сообщить("Выполняю запрос по новому адресу " + АдресРесурса);
		        ВыполнитьHTTPЗапрос(АдресРесурса);
		    Иначе
		        Сообщить("Сервер не сообщил адрес ресурса!");
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	 // Статусы 1XX и 2XX считаем хорошими
	Если Результат.КодСостояния < 300 Тогда 
		ПолучитьПоказателиСтраницы(Результат); 
	КонецЕсли; 
КонецПроцедуры
 
&НаКлиенте
Функция СтруктураURI(Знач СтрокаURI) Экспорт
	
	СтрокаURI = СокрЛП(СтрокаURI);
	
	// схема
	Схема = "";
	Позиция = Найти(СтрокаURI, "://");
	Если Позиция > 0 Тогда
		Схема = НРег(Лев(СтрокаURI, Позиция - 1));
		СтрокаURI = Сред(СтрокаURI, Позиция + 3);
	КонецЕсли;

	// строка соединения и путь на сервере
	СтрокаСоединения = СтрокаURI;
	ПутьНаСервере = "";
	Позиция = Найти(СтрокаСоединения, "/");
	Если Позиция > 0 Тогда
		ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1);
		СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1);
	КонецЕсли;
		
	// информация пользователя и имя сервера
	СтрокаАвторизации = "";
	ИмяСервера = СтрокаСоединения;
	Позиция = Найти(СтрокаСоединения, "@");
	Если Позиция > 0 Тогда
		СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1);
		ИмяСервера = Сред(СтрокаСоединения, Позиция + 1);
	КонецЕсли;
	
	// логин и пароль
	Логин = СтрокаАвторизации;
	Пароль = "";
	Позиция = Найти(СтрокаАвторизации, ":");
	Если Позиция > 0 Тогда
		Логин = Лев(СтрокаАвторизации, Позиция - 1);
		Пароль = Сред(СтрокаАвторизации, Позиция + 1);
	КонецЕсли;
	
	// хост и порт
	Хост = ИмяСервера;
	Порт = "";
	Позиция = Найти(ИмяСервера, ":");
	Если Позиция > 0 Тогда
		Хост = Лев(ИмяСервера, Позиция - 1);
		Порт = Сред(ИмяСервера, Позиция + 1);
	КонецЕсли;
	
	Результат = Новый Структура;
	Результат.Вставить("Схема", Схема);
	Результат.Вставить("Логин", Логин);
	Результат.Вставить("Пароль", Пароль);
	Результат.Вставить("ИмяСервера", ИмяСервера);
	Результат.Вставить("Хост", Хост);
	Результат.Вставить("Порт", ?(Порт <> "", Число(Порт), Неопределено));
	Результат.Вставить("ПутьНаСервере", ПутьНаСервере);
	
	Возврат Результат;
	
КонецФункции

3. Считываем нужные показатели и заполняем ими форму обработки:

&НаКлиенте
Процедура ПолучитьПоказателиСтраницы(СтраницаСтат)
	ТекстРезультата = СтраницаСтат.ПолучитьТелоКакСтроку(КодировкаТекста.ANSI);
	Импорт_КоличествоСтрок = СтрЧислоСтрок(ТекстРезультата);
	Импорт_ТекущаяСтрока = 1;

	СтрокаНаименование 		= "";
	СтрокаВерсия 			= "";
	СтрокаПериодичность		= "";
	СтрокаКодРаботыПоПП		= "";
	СтрокаИндексОКУД		= "";
	
	КодРаботыПоПП2018 	= СокрЛП(СтрокаКодРаботыПоПП);
	Периодичность 		= СокрЛП(СтрокаПериодичность);
	ИндексФормыПоОКУД 	= СокрЛП(СтрокаИндексОКУД);
	АктуальнаяВерсия 	= СокрЛП(СтрокаВерсия);
	ЭлементыФормы.НаименованиеОтчета.Заголовок = СокрЛП(СтрокаНаименование);
	
	Для Импорт_ТекущаяСтрока = 1 По Импорт_КоличествоСтрок Цикл
		ТекСтрока = СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока));
		Если СтрокаВерсия = "Найдена" Тогда
			Если Лев(ТекСтрока,12) = "width:73pt'>" Тогда //актуальная версия
				СтрокаВерсия = Сред(ТекСтрока,13,10)+":00.00.00";		
				Прервать;
			КонецЕсли;	
			Если Лев(ТекСтрока,12) = "width:83pt'>" Тогда //периодичность
				СтрокаПериодичность = СокрЛП(ТекСтрока);
				СтрокаПериодичность = СокрЛП(СтрЗаменить(СтрокаПериодичность,"width:83pt'>",""));
				СтрокаПериодичность = СокрЛП(СтрЗаменить(СтрокаПериодичность,"</td>",""));
			КонецЕсли;	
			Если Лев(ТекСтрока,12) = "width:84pt'>" Тогда //индекс по ОКУД
				СтрокаИндексОКУД = СокрЛП(ТекСтрока);
				СтрокаИндексОКУД = СокрЛП(СтрЗаменить(СтрокаИндексОКУД,"width:84pt'>",""));
				СтрокаИндексОКУД = СокрЛП(СтрЗаменить(СтрокаИндексОКУД,"<br>",""));
				Если Прав(СокрЛП(СтрокаИндексОКУД),5) = "</td>" Тогда
					СтрокаИндексОКУД = СокрЛП(СтрЗаменить(СтрокаИндексОКУД,"</td>",""));
				Иначе
					СтрокаИндексОКУД = СтрокаИндексОКУД + " "+СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока+1));
					СтрокаИндексОКУД = СокрЛП(СтрЗаменить(СтрокаИндексОКУД,"<br>",""));
					Если Прав(СокрЛП(СтрокаИндексОКУД),5) = "</td>" Тогда
						СтрокаИндексОКУД = СокрЛП(СтрЗаменить(СтрокаИндексОКУД,"</td>",""));
					КонецЕсли;
				КонецЕсли;	
			КонецЕсли;	
			Если Лев(ТекСтрока,13) = "width:159pt'>" Тогда //наименование
				СтрокаНаименование = СокрЛП(ТекСтрока);
				СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"width:159pt'>",""));
				СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<br>",""));
				Если Прав(СокрЛП(СтрокаНаименование),5) = "</td>" ИЛИ Прав(СокрЛП(СтрокаНаименование),5) = "<span" Тогда
					СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"</td>",""));
					СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<span",""));
				Иначе 
					СтрокаНаименование = СтрокаНаименование + " "+СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока+1));
					СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<br>",""));
					Если Прав(СокрЛП(СтрокаНаименование),5) = "</td>" ИЛИ Прав(СокрЛП(СтрокаНаименование),5) = "<span" Тогда
						СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"</td>",""));
						СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<span",""));
					Иначе 
						СтрокаНаименование = СтрокаНаименование + " "+СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока+1));
						СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<br>",""));
						Если Прав(СокрЛП(СтрокаНаименование),5) = "</td>" ИЛИ Прав(СокрЛП(СтрокаНаименование),5) = "<span" Тогда
							СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"</td>",""));
							СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<span",""));
						Иначе 
							СтрокаНаименование = СтрокаНаименование + " "+СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока+1));
							СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<br>",""));
							Если Прав(СокрЛП(СтрокаНаименование),5) = "</td>" ИЛИ Прав(СокрЛП(СтрокаНаименование),5) = "<span" Тогда
								СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"</td>",""));
								СтрокаНаименование = СокрЛП(СтрЗаменить(СтрокаНаименование,"<span",""));
							КонецЕсли;
						КонецЕсли;
					КонецЕсли;
				КонецЕсли;	
			КонецЕсли;	
		КонецЕсли;
		Если Лев(ТекСтрока,19) = "width:65pt'>"+СокрЛП(ОКУД) Тогда
			ТекСтрока = СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока-4));
			Если Лев(ТекСтрока,12) = "width:68pt'>" Тогда //код работы по ПП 2018 года
				СтрокаКодРаботыПоПП = СокрЛП(ТекСтрока);
				СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"width:68pt'>",""));
				СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"</td>",""));
			Иначе
				ТекСтрока = СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока-3));	
				Если Лев(ТекСтрока,12) = "width:68pt'>" Тогда //код работы по ПП 2018 года
					СтрокаКодРаботыПоПП = СокрЛП(ТекСтрока);
					СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"width:68pt'>",""));
					СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"</td>",""));
				Иначе
					ТекСтрока = СокрЛП(СтрПолучитьСтроку(ТекстРезультата, Импорт_ТекущаяСтрока-2));	
					Если Лев(ТекСтрока,12) = "width:68pt'>" Тогда //код работы по ПП 2018 года
						СтрокаКодРаботыПоПП = СокрЛП(ТекСтрока);
						СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"width:68pt'>",""));
						СтрокаКодРаботыПоПП = СокрЛП(СтрЗаменить(СтрокаКодРаботыПоПП,"</td>",""));
					КонецЕсли;
				КонецЕсли;	
			КонецЕсли;	
			
			СтрокаВерсия = "Найдена";
		КонецЕсли;	
	КонецЦикла;      
	КодРаботыПоПП2018 	= СокрЛП(СтрокаКодРаботыПоПП);
	Периодичность 		= СокрЛП(СтрокаПериодичность);
	ИндексФормыПоОКУД 	= СокрЛП(СтрокаИндексОКУД);
	АктуальнаяВерсия 	= СтрокаВерсия;
	ЭлементыФормы.НаименованиеОтчета.Заголовок = СокрЛП(СтрокаНаименование);
	
КонецПроцедуры

 

Тестировалось на: Управление производственным предприятием, редакция 1.3

Будет работать в любой конфигурации в режиме толстого клиента.

Вступайте в нашу телеграмм-группу Инфостарт

Росстат статистическая отчетность HTTP

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Автоматизация раздельного учета в 1С:Бухгалтерии по ГОЗ в соответствии с 275-ФЗ. Готовое решение для учета госконтрактов, формирования отчетности и контроля исполнения. Поддержка военной приемки, НИОКР и требований Минпромторга. Профессиональный консалтинг и регулярные обновления продукта

40000 руб.

28.08.2020    555708    3834    145    

1431

Регламентированный учет и отчетность Анализ учета Бюджетный учет Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Расширение «Отчет ГОЗ» для 1С:Бухгалтерия 3.0 ПРОФ и КОРП позволяет автоматизировать ведение раздельного учета и подготовку отчетности для Торговых и Производственных организаций, участвующих в ГосОборонЗаказе. Эффективный инструмент ведения раздельного учета по гособоронзаказам для Торговых и Производственных компаний

97700 руб.

20.02.2024    10034    19    6    

15

Регламентированный учет и отчетность Операции по ВЭД Бухгалтер 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет НДС Платные (руб)

Экономьте часы рабочего времени и избегайте ошибок при подготовке. Решение создано специально для вас, если вы: Занимаетесь ВЭД: ваша компания регулярно отгружает товары в страны ЕАЭС Сотрудничаете с ключевыми странами союза: Беларусью, Казахстаном, Арменией и Киргизией Работаете в 1С: ведете учет в Бухгалтерии 3.0, КА 2 или ERP Продукт прошел сертификацию 1С-Совместимо и имеет полную документацию Есть демо-версия, можно поставить на свою базу и проверить функционал на нескольких отчетах

12200 руб.

10.07.2017    97798    550    163    

420

Регламентированный учет и отчетность Анализ учета Бизнес-аналитик Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Инструмент "Расширенная экспресс-проверка" можно использовать в дополнение к типовой проверке, он ответит на вопросы, всё ли у вас хорошо в учёте и готовы ли вы к сдаче отчётности

13237 руб.

19.11.2024    3769    22    1    

17

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    23536    73    52    

44

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    6818    28    4    

30

Регламентированный учет и отчетность Мастера заполнения Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет ЕСН Платные (руб)

Обработка позволяет создавать документы "Сведения об уплате налогов на едином налоговом счете" по данным файла операций из личного кабинета ЕНС сайта ФНС в конфигурации 1С:Бухгалтерия предприятия 3.0.

10000 руб.

22.11.2024    5613    36    13    

36
Для отправки сообщения требуется регистрация/авторизация