Печать алкогольной декларации 4.20 по файлу XML

Выбираете файл XML алкогольной декларации версии 4.20 и печатаете.
Можете прочитать файл XML, "поиграть" с полученными данными, а потом — распечатать.
Интерактивная работа и программный вызов.
5,6,7,11,12 формы.
Возможность выбора между "быстрой" и "правильной" печатью.
Возможно сравнить остатки в текущей и в предыдущей декларациях.

Обработка для печати файла алкогольной декларации формата 4.20

Может работать интерактивно.

Для программного вызова необходимо установить реквизиты объекта обработки:

 — ИмяФайлаДекларации — полное имя файла декларации

для вывода в титульном листе:

 — ТЛ_ПолноеНаименованиеОрг — полное наименование организации. Если не указано, то будет взято из декларации.

 — ТЛ_КудаПредставляетсяДекл — куда представляется декларация

 — СтраницПриложено — страниц приложено

 — ТЛ_ДатаПодписиРук, ТЛ_ДатаПодписиГБ, ТЛ_ДатаПредставленияВЭлВиде — соответствующие даты, если не указаны — текущая дата

 

после установки реквизитов можно вызывать процедуры. Их 3 (экспортных):

Основной способ вызова:

 — Процедура Печать(ТабТЛ1, ТабТЛ2, ТабДекл, ТабДекл2)

      возвращаемые параметры
      ТабТЛ1 — Табличный документ. Титульный лист страница 1
      ТабТЛ2 — Табличный документ. Титульный лист, начиная со второй страницы
      ТабДекл — Табличный документ. Декларация
      ТабДекл2 — Табличный документ. Декларация, часть 2 (для деклараций 11 и 12)

      Для корректного подсчета страниц выводится ТабТЛ2, затем — ТабДекл, ТабДекл2, в последнюю очередь — ТабТЛ1

 

Если кому-то понадобится, существует возможность «поиграть» с данными, полученными из файла

 — Функция ПрочитатьФайл()

       возвращаемое значение — Булево. Истина — файл успешно прочитан, Ложь — возникли ошибки.

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

 — Процедура ПечатьПолученныхДанных(ТабТЛ1, ТабТЛ2, ТабДекл, ТабДекл) — аналогично процедуре Печать

       Печатает данные, находящиеся в табличных частях.

       На самом деле Печать(…) — обертка, которая вызывает ПрочитатьФайл(), а затем — ПечатьПолученныхДанных(…)

 

  Всё то же самое можно проделать и интерактивно.

  Ошибки, возникающие во время работы собираются в табличную часть ТЧОшибки.

  Все таблицы очищаются при вызове ПрочитатьФайл()

 

Добавлено 31.03.2013:

Установив флаг «Быстрая печать» можно получить печатную форму гораздо быстрее,

но при этом форма выводится всплошную, без проверки размещения на листе, и без нумерации листов.

 

Если одновременно выбрать файлы текущей декларации и декларации за прошлый период,

то можно сравнить конечные остатки прошлой декларации с начальными остатками текущей декларации.

Несоответствия записываются в ТЧОшибки. А также в ТЧ_5, ТЧ_11_1 и ТЧ_12_1 добавлена колонка «ПрошлыйОстаток»,

которая как раз и заполняется данными прошлой декларации.

Таким образом, для выявления всех ошибок нужно пронализировать и ТЧОшибки, и соответствующую ТЧ (5, 11 или 12).

В интерактивном режиме различия в остатках подсвечиваются цветом, а ТЧОшибки… просто виднА.

31 Comments

  1. sergb1979

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

    Reply ↓
  2. sergb1979

    xml схемы вы из ДА берите?

    Reply ↓
  3. kirillkr

    А где описание 4.20 можно взять?

    Reply ↓
  4. stos

    (1) sergb1979,

    Нет, подразделение выбирать не нужно.

    Ведь декларация представляется целиком от организации,

    а на втором листе указываются места осуществления деятельности — то бишь подразделения.

    Reply ↓
  5. stos

    (2) sergb1979,

    xml схемы — да, из Декларант-Алко.

    Качаю обновление ДА с ФСРАР, и там — последние их редакции.

    Отдельно ведь их не выкладывают (или я не нашел)

    Reply ↓
  6. stos

    (3) kirillkr,

    описание 4.20 можно взять

    http://forum.fsrar.ru/viewforum.php?f=36

    требуется регистрация.

    Но и не забываем, что пока это только проект, но который грозит приобрести статус официального.

    Здесь я подразумеваю, что 4.20 и 4.02 — одно и то же.

    Reply ↓
  7. sergb1979

    на сайте 1с появились розничные алкогольные декларации (тестовые), там сделано иначе. Может интересно будет Вам.

    Reply ↓
  8. stos

    (7) sergb1979,

    О, спасибо, а ссылку можно?

    Конечно, мне будет интересно.

    Данная обработка родилась, когда клиенту сделал формирование деклараций в формате XML,

    а потом встал вопрос: а как печатать?

    Сначала думал — выгружу в таблицы ДА, а он уже рапечатает как надо.

    А тут бац — файл ДА зашифровали, данные в него не загрузить.

    Поискал, м.б. есть обработка, подобная моей, — увы, не нашел.

    И решил: выгрузка у меня есть, файл XML формируется, а дай сделаю печать форм по готовому файлу XML.

    И мне самому потом пригодится для другого клиента, где правила сбора данных ой какие непростые.

    Но файл-то XML так таковым и останется.

    Reply ↓
  9. kirillkr

    (6) форматы отличаются. Формат 4.02 не проходит проверку по 4.20. Вот хочу посмотреть, что ж там поменялась.

    Раз еще это только проект, то пока останусь на 4.02.

    Reply ↓
  10. sergb1979

    (8) конечно можно ссылку. все в открытом доступе на сайте 1с, если нет доступа, то могу отправить по почте.

    http://users.v8.1c.ru/version.jsp?id=Accounting20_82&ver=2.0.36.4

    Reply ↓
  11. sergb1979

    Подозреваю что формат 4.02 и 4.20 одно и тоже, только от разных источников. 4.02 ТОЖЕ ПРОЕКТ.

    Reply ↓
  12. zarius

    актуальная разработка, когда в планах 11,12 формы?

    Reply ↓
  13. stos

    (12) zarius, думаю, неделя-полтры

    Reply ↓
  14. stos

    Добавил 6 и 7 формы

    Reply ↓
  15. stos

    Обновил обработку.

    Теперь 5,6,7,11,12 формы

    Reply ↓
  16. kasper076

    Оч полезная обработка. Спасибо.

    Reply ↓
  17. winterspring

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

    Reply ↓
  18. winterspring

    (8) А нельзя ли добавить функцию обновления xml файла? Другими словами выгрузили данные в таблицы, если нужно, что-то в таблицах подправили, и из этих данных сформировали новый xml.

    Reply ↓
  19. intellekt48

    (18) winterspring, да, согласен, полезная была бы функция,

    Reply ↓
  20. sdwggg

    помогите!

    форму 5 нормально открывает и печатает из файла xml.

    формы 6 и 7 загружает, таблицы на форме заполняются данными, но при попытке распечатать их выходит окно «Ошибка при вызове метода контекста (Заполнить)».

    в 8-ке вообще не работал, не знаю где ковырять((

    Reply ↓
  21. sdwggg

    вот что ещё пишет, если нажать кнопку Подробно:

    {ВнешняяОбработка.ПечатьАлкогольнойДекларации420.МодульОбъекта(1296)}: Ошибка при вызове метода контекста (Заполнить)

    ОблСтрока.Параметры.Заполнить(стПИ);

    по причине:

    Несоответствие типов (параметр номер ‘1’)

    Reply ↓
  22. stos

    (21) sdwggg,

    хм…,

    файл декларации проходит проверку?

    если да, то есть ли возможность переслать мне Ваш файл?

    Reply ↓
  23. sdwggg

    (22) да, проверку проходит (в Декларант-Алко)

    я разобрался, вот что было:

    в 6 и 7 форме есть код

    ОблСтрока.Параметры.Заполнить(ТЧЛицензии.Найти(стОборот.ИдЛицензии, «Ид»));

    так вот, поскольку у ИП лицензии нет, то в ТЧЛицензии не находится строчка.

    я сделал просто через Попытку, и стало всё норм

    Попытка

    ОблСтрока.Параметры.Заполнить(ТЧЛицензии.Найти(стОборот.ИдЛицензии, «Ид»));

    Исключение

    КонецПопытки;

    Но есть небольшой косячок — в самой печатной форме у ИП выходят данные по лицензии предыдущей строки таблицы)))

    просто не знаю пока языка 8ки, и не замарачиваюсь особо

    Reply ↓
  24. winterspring

    При формировании 5 формы, если организация имеет обособленные подразделения в своде по организации не нужно указывать объем перемещения.

    Пришлось немного подправить Функцию Печать5()

    КолСуммирования = «»;
    Для Н = 7 по 24 Цикл
    КолСуммирования = КолСуммирования + «П» + Прав(«000000000000» + Н, 12) + «,»;
    КонецЦикла;
    КолСуммирования = Лев(КолСуммирования, СтрДлина(КолСуммирования) — 1);
    
    
    ТзОбороты = ТЧ5.Выгрузить();
    ТзОбороты.Свернуть(КолГруппировок, КолСуммирования);
    //sb-> Пересчитаем итоги по приходу и расходу
    Для Каждого ТекСтр из ТзОбороты Цикл
    ТекСтр.П000000000014=0;  //sb обнулим в сводной форме перемещения
    ТекСтр.П000000000022=0;  //sb обнулим в сводной форме перемещения
    //пересчет итогов
    ТекСтр.П000000000015 = ТекСтр.П000000000011 + ТекСтр.П000000000012 + ТекСтр.П000000000013;
    ТекСтр.П000000000023 = ТекСтр.П000000000019 + ТекСтр.П000000000020 + ТекСтр.П000000000021;
    КонецЦикла;
    //sb<-
    ТзПоВидам = ТзОбороты.Скопировать();
    ТзПоВидам.Свернуть(«П000000000003», КолСуммирования);
    
    ПечатьРаздела5(ТзПоВидам, Таб, ОблСтрока, ОблПромежИтог, ОблПодвалИтога, ТзОбороты, КолСуммирования);
    

    Показать

    Кроме того в формах неправильно указывается адрес обособленного подразделения, пришлось подправить

    ОблЗагИтога.Параметры.ЗаголовокИтога =
    «по  месту нахождения обособленного подразделения (с указанием  КПП и адреса). КПП: »
    + стПодр.КППЮЛ + «, Адрес местонахождения:» + стПодр.Адрес;
    

    Ну и немного неправильно загружался файл 5 декларации подправил процедуру ПрочитатьОбъемОборота_5(ФайлДекларации)

    стОборот.П000000000020 = одАтрибут(ФайлДекларации, одТипЧисло, «П000000000020»);
    стОборот.П000000000021 = одАтрибут(ФайлДекларации, одТипЧисло, «П000000000021»);
    стОборот.П000000000022 = одАтрибут(ФайлДекларации, одТипЧисло, «П000000000022»);
    
    Reply ↓
  25. stos

    Обновил обработку:

    Возможность выбора между «быстрой» и «правильной» печатью.

    Возможно сравнить остатки в текущей и в предыдущей декларациях.

    подробнее — в описании

    Reply ↓
  26. hvv2002

    Добрый день ,полезная вещь. только проблема с download у нас. она для 7ки или 8ки не совсем понятно, можно обработку эту получить hvv2002собакаinbox.ru

    Reply ↓
  27. hvv2002

    попробовал , в 5 ,6, 7, прил — не печатает адрес обособленного , хотя в файле он есть. также не понятно насчет сравнения остатков — в описании нема такого 🙁 это же как раз про 5-е по смыслу.

    Reply ↓
  28. stos

    адреса поправил.

    Про сравнение. Ну вот же, из описания:

    Если одновременно выбрать файлы текущей декларации и декларации за прошлый период,

    то можно сравнить конечные остатки прошлой декларации с начальными остатками текущей декларации.

    Несоответствия записываются в ТЧОшибки. А также в ТЧ_5, ТЧ_11_1 и ТЧ_12_1 добавлена колонка «ПрошлыйОстаток»,

    которая как раз и заполняется данными прошлой декларации.

    Таким образом, для выявления всех ошибок нужно пронализировать и ТЧОшибки, и соответствующую ТЧ (5, 11 или 12).

    В интерактивном режиме различия в остатках подсвечиваются цветом, а ТЧОшибки… просто виднА.

    Reply ↓
  29. sokolski

    Здравствуйте. Спасибо, очень полезная и нужная оказалась обработка.

    Вот только в 11-й форме пишет, что приложение №5.

    И 12-я форма вылетает с ошибкой:

    {ВнешняяОбработка.ПечатьАлкогольнойДекларации420.МодульОбъекта(1668)}: Ошибка при вызове метода контекста (Свернуть)

    ТзОбороты.Свернуть(КолГруппировок, КолСуммирования);

    по причине:

    Неверное имя колонки

    Reply ↓
  30. sokolski

    И еще одна ошибка в 11-й форме обнаружилась позже: это дублирование колонок 13 и 14, хотя в оригинальной выгрузке точно нет ни одного внутреннего перемещения.

    Reply ↓
  31. CagoBHuK

    Не все файлы, проходящие проверку программой Декларант-Алко печатаются корректно. При применении XSLT-шаблона, суммирующего поля, итоги не сходятся с печатной формой. Разработчик, напишите в личку адрес — я пришлю пример. Все станет ясно.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *