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

25.03.19

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

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

Скачать файлы

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

Если вы программист, который в том числе помогает сотрудникам бухгалтерии в формировании и сдаче отчетности, то с уверенностью в 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.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

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

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

19900 руб.

01.04.2020    140658    678    352    

231

Курсовые разницы в 2022 - 2024 годах в «1С:Управление производственным предприятием» ред.1.3 (УПП)

Регламентированный учет и отчетность Платформа 1С v8.3 1С:Управление производственным предприятием Россия Налоговый учет Налог на прибыль Платные (руб)

Внешний отчет для УПП 1.3. позволяет вывести детализацию по документам расчета для определения временных разниц в налоговом учете согласно новому законодательству от марта 2022 года и декабрьские дополнения к нему. Отчет подобен отчету в конфигурации Бухгалтерия предприятия 3.0. Контроль счетов 77, 98.КР, 97.КР и декларации по налогу на прибыль. Грамотное обоснование - отложить уплату налога на прибыль за 2022 -2024 годы.

14400 руб.

15.12.2022    16209    165    24    

130

Алкогольные Декларации по Форме 7 и 8 по данным ЕГАИС из 1С Розница 2.2.4 - 2.х (УТ 11.5.х) (Комплексная Автоматизация)(Конвертация формата 4.3 в формат 4.4 для форм 11 и 12 сформированные за 1-й квартал в 7 и 8)

Регламентированный учет и отчетность Розничная торговля Файловый обмен (TXT, XML, DBF), FTP Обмен с ГосИС Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Бухгалтерский учет Акцизы Платные (руб)

Обработка формирует файлы алкогольных декларации форм 7,8 с 1С:Розницы от 2.3.8. ,Управление Торговлей 11.х Проста в использовании. Формат выгрузки деклараций: 4.4, есть возможность объединять сформированные декларации из файлов XML.Дополнительно можно делать передачу в рег2 по остаткам и списывать остатки ЕГАИС по данным базы (пиво)

3600 руб.

20.07.2016    168584    1201    1699    

1000

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15752    10    17    

11

Учет акцизов в 1С: Бухгалтерии 3.0 Расширение конфигурации в части работы с акцизами - Пиво

Регламентированный учет и отчетность Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Акцизы Платные (руб)

В стандартном функционале 1С: Бухгалтерия 3.0 нет учета акцизов. Счет-фактуры и УПД в печатных формах не заполняют сумму акциза. При проведении документа Реализация, «сумма Акциз» не высчитывается и не формируются проводки. Расширение Акцизы - Пиво выделит сумму акциза в первичных документах. Список доработанных документов 1С: Реализация (акты, накладные, УПД), Корректировка реализации, Списание товаров, материалов. Первичные документы с отображением акциза - счет-фактура, УПД.

11500 руб.

23.12.2019    50809    234    110    

85

Учет акцизов в 1С: Бухгалтерии 3.0 - Газировка

Регламентированный учет и отчетность Розничная торговля Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Налоговый учет Акцизы Платные (руб)

В стандартном функционале 1С: Бухгалтерия 3.0 нет учета акцизов. Счет-фактуры и УПД в печатных формах не заполняют сумму акциза. При проведении документа Реализация, «сумма Акциз» не высчитывается и не формируются проводки. Для решения этой проблемы мы разработали расширение "Акцизы - Газировка" для 1С: Бухгалтерии 3.0 (ПРОФ). Расширение "Акцизы - Газировка" будет полезно производителям сладкой газированной воды с 1 июля 2023 года.

11500 руб.

02.06.2023    6197    42    11    

28
Оставьте свое сообщение