Получение актуальной версии отчета в Росстат по ОКУД с официального сайта Росстата (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С v8.3 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Управляйте учетной политикой раздельного учета ГОЗ в 1С:Бухгалтерия 3.0 ПРОФ/КОРП и УХ 3.2. Отчеты по исполнению госконтрактов, расчетно-калькуляционные материалы и контроль операций для исполнения в срок. Готовое расширение подходит для всех бухгалтеров и руководителей производства, помогая вести правильный учет по гособоронзаказу в соответствии 275-ФЗ. Профессиональный консалтинг и регулярные обновления продукта.

44000 руб.

28.08.2020    327232    2239    132    

1031

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 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    148378    524    374    

240

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

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

57600 руб.

26.11.2024    871    1    1    

4

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

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

36000 руб.

03.08.2020    18183    20    22    

18

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

Предназначена для 1C:Бухгалтерия 3.0 и 1C:Бухгалтерия КОРП 3.0. Согласно рекомендации фирмы "1С" при переходе с УСН на ОСН ввод данных по налоговому учету происходит при помощи документа "Ввод остатков", для которого расширение дополняет его функционал возможностью автоматического заполнения табличной части документа для разделов учета Материалы, Товары, Товары отгруженные, Расчеты с поставщиками, Расчеты с покупателями, Расчеты с разными дебиторами и кредиторами.

12000 руб.

14.12.2023    1120    17    2    

9

Регламентированный учет и отчетность Розничная торговля Файловый обмен (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    177198    1285    1708    

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