gifts2017

Формирование декларации по алкогольной продукции 5,6,7,8 формы в 1С 7.7 (Комплексная)

Опубликовал Вит dark (darkxxx) в раздел Печать - Регламентированная отчетность

Формирование декларации по алкогольной продукции 5,6,7,8 формы в 1С 7.7 (Комплексная)

Эта обработка предназначена  для комплексной конфигурации на платформе 1С 7.7

Написана для немного переработанной комплексной. в частности для регистрации автомобилей перевозчиков в 8 форме к накладным использован документ маршруты. А в самом автомобиле уже сведения о перевозчике.

Обработка формирует сведения об оборотах, закупках, продажах и перевозках как в разрезе обособленных подразделений так и по всей организации. Так же формирует файлы XML 5,6,7 и 8 формы.

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

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

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

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

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

Наименование Файл Версия Размер Кол. Скачив.
5,6,7,8 форма.ert
.ert 239,00Kb
19.10.12
79
.ert 239,00Kb 79 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иван Демидов (ivanov_alex) 09.10.12 09:45
при формировании хотя бы 2 форм валит 1с с надписью has requested runtime блабла
видимо большой объем данных или что
6 сформировать не вышло также
очень странно как-то
2. Вит dark (darkxxx) 09.10.12 10:31
(1) ivanov_alex,
6 форма вылетает скорее всего с ошибкой на внутреннюю ошибку анализатора: это проблема XML после 16 - 17 мб данных 1С парсер начинает как то криворуко работать. совет включать флажок не использовать отчеты. и брать бубен в руки, я дома запускал 20 раз подряд после перезагрузки компа 50 / 50 формирует отчет, по статистике 20 раз запуска, 4 раза сформировалось успешно. у меня получался файл объемом 19 мб. Если у вас больше советую сделать разбиение на 2 файла а потом их слить в текстовом редакторе, ведь XML это обычный текст, только определенного формата.
А по поводу формирования сразу нескольких форм тут напряг в оперативке не секрет что 1С 7.7 32 битная и максимум оперативки которая может быть использована 2 гб и в зависимости от объема данных у нас доходило до 1.6 Гб все таблицы, а у вас скорее всего возможно даже больше. Вы скорее всего используете в SQL версию рекомендую попробовать DBF в этом случае. В SQL у нас не формировалась, а вот DBF без проблем.
3. Иван Демидов (ivanov_alex) 09.10.12 13:26
(2) darkxxx,
не анализатор, когда в проверку загоняется организация с пустым КПП выдает ошибку и если ставить попытка и исключение в этот кусок нужно перечислять все требуемые реквизиты, а я в исключение только КПП загонял, остальные реквизиты не определены ДО возврата были, потому и валились
кстати, хорошая годная обработка, хоть и долгая...
партии такие партии
4. Иван Демидов (ivanov_alex) 16.10.12 09:22
ТЗПродаж.Свернуть("Фирма,КодПродукции,Производитель,Получатель,Документ","Количество");
		ТЗПродаж.Сортировать("Фирма,КодПродукции,Производитель,Получатель,-Документ");
		ТЗПродажОбщий = СоздатьОбъект("ТаблицаЗначений");
		ТЗПродажОбщий.Загрузить(ТЗПродаж);
		ТЗПродажОбщий.Свернуть("КодПродукции,Производитель,Получатель,Документ","Количество");
		ТЗПродажОбщий.Сортировать("КодПродукции,Производитель,Получатель,-Документ");
...Показать Скрыть


ТЗПродажОбщий.Загрузить(ТЗПродаж);
при большом объеме строк вот тут падает 1с с runtime error
попытаться как то обойти эту загрузку в другую ТЗ можно?
5. Вит dark (darkxxx) 17.10.12 15:42
(4) ivanov_alex, обойти никак нельзя а вот количество колонок в таблице можно попробовать сократить. Брать все из документа на 2 - 3 колонки сократить можно, я не пробовал, но попробовать стоит. Либо второй вариант если 1 не поможет попробовать отдельно файлы сформировать для общей, а потом для подразделений если продаж очень много, а судя по всему у вас именно такой случай, раз у вас на методе загрузить вываливается с ошибкой видимо оперативка забивается под завязку, проверьте так ли это и попробуйте вышеописанные действия.
6. Вит dark (darkxxx) 17.10.12 15:45
(4) кстати возможно поможет я доработал файл обработки чтобы он поменьше оперативы жрал возможно есть смысл попробовать скачать...еще раз.
7. Иван Демидов (ivanov_alex) 17.10.12 20:52
(6) darkxxx, я видел и вносил изменения
память действительно очищается до примерно 250 мб с 2,5 гигабайт
но xml не пишется почему-то, решение так и не нашел
пока пользуюсь примером выгрузки, там ТЗ поменьше
8. Иван Демидов (ivanov_alex) 18.10.12 09:45
В ощем что сделал я:
первое
для 6 формы в ТЗ

	Если Форма6 = 1 Тогда
//переиначим колонку документ как номер документа и добавим ещё дату документа и добавим вид документа для сортировки по виду
		ТЗПродаж	=создатьОбъект("ТаблицаЗначений");
		ТЗПродаж.НоваяКолонка("Фирма");
		ТЗПродаж.НоваяКолонка("КодПродукции");	
		ТЗПродаж.НоваяКолонка("Производитель");	
		ТЗПродаж.НоваяКолонка("Получатель");	
		ТЗПродаж.НоваяКолонка("Документ");//СтавимДату изза памяти
				ТЗПродаж.НоваяКолонка("ДокументНомер");//СтавимДату изза памяти
				ТЗПродаж.НоваяКолонка("ВидДок");

		ТЗПродаж.НоваяКолонка("Количество");
	КонецЕсли;

//Для возвратов присвоим виддок=3 это важно для сортировки
						Если Форма6 = 1 Тогда
							
							
							ТЗПродаж.НоваяСтрока();				
							ТЗПродаж.Фирма=Запрос.Фирма;
							ТЗПродаж.КодПродукции	= КодПродукции;
							ТЗПродаж.Производитель	= Производитель;
							ТЗПродаж.Получатель		= Док.Контрагент;
							ТЗПродаж.Документ		= Док.ДатаДок;
							ТзПродаж.ДокументНомер =Док.НомерДок;
							ТЗПродаж.ВидДок=3;
							ТЗПродаж.Количество	= РасчитатьДалы((0-Запрос.КолПриход),НомЕмкость);
							//конецесли
						КонецЕсли;
//для реализаций виддок=2 опять сортировка

						Если Форма6 = 1 Тогда
							ТЗПродаж.НоваяСтрока();				
							ТЗПродаж.Фирма			= Запрос.Фирма;
							ТЗПродаж.КодПродукции	= КодПродукции;
							ТЗПродаж.Производитель	= Производитель;
							ТЗПродаж.Получатель		= Док.Контрагент;	
							ТЗПродаж.Документ		= Док.датаДок;
							ТзПродаж.ДокументНомер =Док.НомерДок;
							ТЗПродаж.ВидДок=2;
							ТЗПродаж.Количество		= РасчитатьДалы(Запрос.КолРасход,НомЕмкость);
						КонецЕсли;
//свернем и отсортируем чтоб СНАЧАЛА шла поставка потом возврат,иначе ругается декларант
	Если Форма6 = 1 Тогда
		ТЗПродаж.Свернуть("Фирма,КодПродукции,Производитель,Получатель,ВидДок,Документ,ДокументНомер","Количество");
		ТЗПродаж.Сортировать("Фирма,КодПродукции,Производитель,Получатель,ВидДок,Документ,ДокументНомер");
		ТЗПродажОбщий =СоздатьОбъект("ТаблицаЗначений");
		ТЗПродажОбщий.Загрузить(ТЗПродаж);
		ТЗПродажОбщий.Свернуть("КодПродукции,Производитель,Получатель,ВидДок,Документ,ДокументНомер","Количество");
		ТЗПродажОбщий.Сортировать("КодПродукции,Производитель,Получатель,ВидДок,Документ,ДокументНомер");
		
		СформироватФорму6(ТЗПродажОбщий, ТЗПродаж);
		ТЗПроизводители.УдалитьСтроки();
		ТЗПродаж = "";
		ТЗПродажОбщий = "";
	КонецЕсли;
//И в сформироватформу6
				перДатаДок			= ТЗПродаж.Документ;
перномердок=ТЗПродаж.ДокументНомер
...Показать Скрыть

Этим добились чтоб в ТЗ не выгружались документы а значения из них, в результате пишется и хмл и формируется отчет и памяти уйма
Вдруг кому пригодится
9. Вит dark (darkxxx) 18.10.12 13:55
(8) все верно седня поправлю этот момент во всех формах и выложу снова.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа