Форум OlegON > Программы и оборудование для автоматизации торговли > ЕГАИС в опте и рознице

Утилита для просмотра/удаления данных из УТМ для 1С7.7

30.05.2020 10:35


23.02.2016 13:49
MWWRuza
 
Часто, в процессе работы над своими доработками УС для работы с ЕГАИС, возникает необходимость "заглянуть" в папки УТМ, что-бы посмотреть что туда прилетело/улетело. Я пишу в основном под 1С:Предприятие ver 7.7, где все, вобщем-то делается быстро и просто, но, природная лень мне все не давала написать под себя утилитку... Тем более, есть "УС Лэнд:ЕГАИС " от AndreyZh, которая помогала мне в этом вопросе - не совсем удобно(переключаться с программы на программу, с принципиально разным подходом к интерфейсу), но в 1000 раз удобнее, чем вручную через cUrl, за что Андрею огромное спасибо. Но, вчера вечером, мне наконец все надоело, и я решил потерять пару часов и сделать для себя инструмент, который в будущем съэкономит мне больше времени.
Выкладываю на ваш суд то, что получилось, может кому-то еще пригодится...

При открытии, видим:



Изначально, список пустой, так, как не заполнен УТМ_URL. Если его заполнить, нажавкнопку "localhost" если УТМ расположен на этом компе, или вписав вручную, если в сети(настройки адреса УТМ и путь к резервному хранилищу можно сохранить, нажав соответствующую кнопочку панели инструментов формы), и нажать на кнопку "Обновить", то список заполнится:



При двойном клике на строке списка, откроется XML-документ с помощью браузера:



С помощью кнопок справа, можно работать с галочками-отметками в списке, и соответственно, производить удаление отмеченных или текущих документов соответствующими кнопками. Галочки-отметки так-же можно ставить/снимать двойным щелчком мышки:



Переключатель "Папки УТМ" дает возможность переключаться между папками "IN" и "OUT" для просмотра и работы с их содержимым.

На скриншоте, папка "IN". В ней "висит" не удаленный запрос остатков:



Запросы из папки "IN" не открываются, открывается только их список - это свойства самого УТМ, об этом было обсуждение на форуме ФСРАР. Но, их можно удалять из списка. При чем, как я понимаю, все и безболезненно. При желании, можно оставить ссылки на отправленные ТТН и Акты, но, толку от них без содержимого все равно мало... Их лучше сохранять перед отправкой из УС в то-же резервное хранилище.

При удалении документов из папки "OUT", копии файлов помещаются в резервное хранилище, путь к которому можно задать в соответствующем поле формы.

Обработку постарался переписать так, что-бы она была не привязана ни к каким объектам и модулям конфигурации, так, что она должна теоретически запускаться на любой конфигурации, даже на пустой.

Вот, выкладываю текущую версию, протестируйте кто сможет(особенно интересует совместимость с разными конфами).

Еще раз хочу заметить - это не программа для работы пользователей с ЕГАИС, это инструмент разработчика!
Вложения
Тип файла: 7z УТМ.7z (7.1 Кб, 287 просмотров)
30.06.2019 21:55
Tushkanchik
 
Прям огромное спасибо за такое ) Вчера спасло. Открыл первую попавшуюся бухгалтерию 1с7.7 и обработка без ошибок запустилась ))
Нужно было все входящие доки в УТМ удалить.
01.07.2019 11:17
MWWRuza
 
Да? Я рад что пригодилось...
Во вложении более свежая версия, там по моему расширен список документов, которые можно автоматически "галочками" выделить.
Вообще, как оказалось, там есть "косячек" с установкой "галочек", при каких-то условиях процедура не правильно работает, галки все снимаются/ставятся, когда надо одну только... Но, руки не доходят разобраться, на функционал это не влияет, только создает некоторое неудобство в работе... А я сам, как-то очень давно ею не пользовался, не было необходимости, уже и забыл про нее. В конце-концов, что-бы удалить все документы(не выборочно, а именно все), проще УТМ переустановить.
Вложения
Тип файла: zip СписокДоковВ_УТМ.zip (15.1 Кб, 35 просмотров)
01.07.2019 11:28
Tushkanchik
 
Насколько помню в теории достаточно удалить папку transportDb не переустанавливая Утм. Но обработкой както гуманнее.
01.07.2019 20:32
MWWRuza
 
Цитата:
Tushkanchik Но обработкой както гуманнее.
Только имейте в виду, что нумерация документов при этом сохраняется. То-есть, если было у Вас 100 500 документов, то следующий документ придет с номером 100 501. А если базу переставить, то нумерация пойдет с "1". Не знаю, в каких программах как, у меня в моей конфе, ссылки на доки в УТМ хранятся в доках 1С. Поэтому, такое поведение УТМ для меня минус... Приходится очищать ссылки в доках 1С после переустановки базы УТМ, специальной обработкой. А то могут пересечься "старые" документы в 1С, с новыми из свежего УТМ. Но, это мелочи, секундное дело, просто об этом помнить надо.
13.04.2020 17:13
Tushkanchik
 
Снова пригодилась обработка, низкий поклон )
Но версия которая свежее выдала ошибку, изначальная версия норм.

СохранитьВРезервноеХранилище<<?>>(XML_DOM, URL, "out", "out");
{C:\_TEMP\1CБАЗЫ\УТМ\СПИСОКДОКОВВ_УТМ.ERT(329)}: Процедура не обнаружена (СохранитьВРезервноеХранилище)
13.04.2020 19:19
MWWRuza
 
Вот эта процедура:

Процедура СохранитьВРезервноеХранилище(XML_DOM, URL, IN_OUT, SUBDIR, НомВнутриСекунды = 0) Экспорт
Если ПустаяСтрока(РезервноеХранилище) = 1 Тогда
Возврат;
КонецЕсли;
Если ПустоеЗначение(XML_DOM) = 1 Тогда
Возврат;
КонецЕсли;
СоздатьКаталог(РезервноеХранилище + SUBDIR);
RegExp.Pattern = "http://.*/opt/_?" + IN_OUT + "/(.*)/(\d+)";
Matches=RegExp.Execute(URL);
Если Matches.Count() > 0 Тогда
DocType = Matches.Item(0).SubMatches.Item(0);
DocNumber = Matches.Item(0).SubMatches.Item(1);
DocName = DocType + "_" + DocNumber;
Иначе
RegExp.Pattern = "http://.*/opt/_?" + IN_OUT + "/(.*)";
Matches=RegExp.Execute(URL);
Если Matches.Count() > 0 Тогда
DocType = Matches.Item(0).SubMatches.Item(0);
DocName = DocType;
Иначе
DocName = "unknown";
КонецЕсли;
КонецЕсли;
ВремяЧас = 0; ВремяМин = 0; ВремяСек = 0; ТекущееВремя(ВремяЧас, ВремяМин, ВремяСек);
Если НомВнутриСекунды = 0 Тогда
Доп = "";
Иначе
Доп = "_" + НомВнутриСекунды;
КонецЕсли;
ИмяФайла = Формат(ТекущаяДата(), "ДГГГГММДД") + "_"
+ Формат(ВремяЧас, "Ч(0)2.0") + Формат(ВремяМин, "Ч(0)2.0") + Формат(ВремяСек, "Ч(0)2.0") + "_"
+ DocName + Доп + ".xml";
XML_DOM.Save(РезервноеХранилище + SUBDIR + "" + ИмяФайла);
КонецПроцедуры

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

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.