Получение актуальной версии отчета в Росстат по ОКУД с официального сайта Росстата (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
0 Скачать (1 SM) Купить за 1 850 руб.

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

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

27900 руб.

01.04.2020    146771    647    360    

235

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

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

119999 руб.

19.07.2024    1836    52    0    

3

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

60000 руб.

19.12.2022    11889    34    20    

20

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

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

3600 руб.

20.07.2016    176148    1286    1706    

1042

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

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

11500 руб.

23.12.2019    57344    263    110    

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