Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

Как правильно принять кривую приходную ТТН с акцизными марками для продаж или списания в общепите : КИС Lack & УС Land

21.11.2024 21:59


28.12.2018 10:37
С утра получил письмо и сразу ответил на него, т.к. тема и автор полностью удовлетворяет первым двум пунктам, слишком часто упоминаемой ссылки: https://olegon.ru/showpost.php?p=323639&postcount=51 Вкратце: перед массовыми новогодними банкетами популярный поставщик отправил накладные с криво оформленными некоторыми тэгами ТТН в области описания марок. Послать им его уже нет времени. Однако выкрутиться можно!
Цитата:
У всех моих клиентов которые используют УС Лэнд:ЕГАИС возникли проблемы при подтверждении накладных в которых есть новые марки. При открытии накладной появляется сообщение о том что она кривая и лучше отказаться от её приёмки. Накладные от двух разных поставщиков и в обоих случаях такая ситуация. Вот для примера "кусок" xml с марками из одной такой накладной
Код:
<wb:InformF2>
    <cv3:F2RegId>FB-000002027297245</cv3:F2RegId>
    <cv3:MarkInfo>
        <cv3:boxpos>
        <cv3:boxnumber>01000000055610118000109450</cv3:boxnumber>
            <cv3:amclist>
                <cv3:amc>1364000929271810......</cv3:amc>
                <cv3:amc>1364000929272710......</cv3:amc>
            </cv3:amclist>
        </cv3:boxpos>
    </cv3:MarkInfo>
</wb:InformF2>
Отказываться от этого алкоголя клиенты не могут. Как поступить с этими накладными?
1. Отправить акт приёма накладной без её просмотра и сохранения в БД "УСЕга" в режиме:





Если "УС Лэнд:ЕГАИС" может открыть её, пусть даже "капризнячая", то лучше открыть и сохранить через F10 в реестре приходных ТТН, если нужно будет: выгрузка в декларацию или построения отчетов по остаткам на дату/оборотки.

ТТН "УСЕга" может вообще "не видеть"! Тогда идем в режим "Прочие задачи/Чистка входящих и исходящих запросов. Анализ/печать входящих". Находим ТТН и сопутствующую ей файл FORM2REGINFO с справками РФУ-2 и регкодом ТТН. Справки "Б" потом можно будет запросить в режиме "Запросы/Разделов Б. РФУ-2 (по v2) по их кодам в ЕГАИС"


2. Минут через 10 после отправки подтверждения запросить остатки ЕГАИС в режиме:





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

Открываем справочник алкопродукции склада, например нажав Insert в списаниях по складу - откроется справочник:





Встаёте на последнюю запись наименования (+литраж) - при пополнении справочника добавляется в конец. В шапке не будет признака "АкцМарка" и нажимаете F7 для запроса остатков регистра №3... и так по всем товарам кривой приходной ТТН


4. Через 10-60 минут обновляете пул акцизных марок "УСЕга" через ответ/режим: "Ответы/Ответ-обновление по всем РФУ-2 остатков на рег.№3"... После этого алкопродукцию можно будет списывать и продавать"
09.02.2019 19:23
Только кнут является реальным стимулом для русского человека из "глубинки"

Сегодня в 11:00 звонок из магазина, что при открытии программа ругается на "кривую накладную". Разобрался - нестандартные префиксы области описания РФУ-2, марок, групповой тары:
Код:
					<wb:boxInfo>
						<wb:boxtree xmlns:d7p1="http://fsrar.ru/WEGAIS/CommonV3">
							<d7p1:boxnum>146035140000975289</d7p1:boxnum>
							<d7p1:bl>
...													</wb:boxtree>
					</wb:boxInfo>
				</wb:Position>
				<wb:Position>
					<wb:Identity>2</wb:Identity>
					<wb:FARegId>FA-00000004****120</wb:FARegId>
					<wb:InformF2 xmlns:d6p1="http://fsrar.ru/WEGAIS/CommonV3">
						<d6p1:F2RegId>FB-0000*****347490</d6p1:F2RegId>
						<d6p1:MarkInfo>
							<d6p1:boxpos>
								<d6p1:amclist>
									<d6p1:amc>1044***********018001STJMF</d6p1:amc>
								</d6p1:amclist>
							</d6p1:boxpos>
						</d6p1:MarkInfo>
					</wb:InformF2>
					<wb:Product>
						<pref:UnitType>Packed</pref:UnitType>
						<pref:FullName>Дж0%</pref:FullName>
Отзвонился... сказал, что нужно отказываться от неё... Вскоре позвонил босс жестко, объяснив ситуацию: большой заказ для корпоративного клиента, машина с алкоголем уже выехала и будет в течении 5 дней. Отказ от заказа - это недополучение стольника прибыли и возможная потеря постоянного покупателя... что хочешь, но оприходывание и продажа по маркам должна быть проведена! Конечно, зная, описанный выше механизм обещал, что проблем не будет... хотя более 500 бутылок провести "ручками" будет проблематично

Тупо изучая исходники работы с ТТН обнаружил, что ещё в 2015 заложил механизмы работы с XML файлами, содержащими некорректные символы, а именно работа со входящими документами строится так:

1. Закачка XML файла в кодировке UTF-8 в символьную строку памяти;
2. Преобразование строки из UTF-8 в 866 кодировку;
3. Замещение "кривых" символов пробелами;
4. Сохранение новой строки во временный XML файл 866 кодировки.

... дальнейшая работа уже производится с "моим" файлом, используя средства инструмента разработки... и тут осенило - почему на этапе 3. не заместить кривые префиксы на стандартные? Тогда всё должно правильно работать?

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





Дальше написание общих функций чтения схемы и преобразование по ней передаваемой текстовой строки. Затем внимательный просмотр всех режимов и в процедурах, где считывается ТТН для анализа и/или извлечения информации прогон её (считанной строки памяти) через схему преобразования... в общем не много получилось изменений.

Увы, но это была ТТН в реальном контуре, а посему отладка, которая не меняла данных ЕГАИС шла по удаленке... но всё получилось - как пример преобразованной ТТН:
Код:
<wb:FARegId>FA-00000004*****74</wb:FARegId>
	<wb:InformF2 xmlns:d6p1="http://fsrar.ru/WEGAIS/CommonV3">
		<ce:F2RegId>FB-00000*****319</ce:F2RegId>
			<ce:MarkInfo>
				<ce:boxpos>
					<ce:boxnumber>01005400252310****081225</ce:boxnumber>
						<ce:amclist>
							<ce:amc>136********NI</ce:amc>
и всё Программа корректно работает с нестандартными префиксами, в её терминах "кривыми накладными", а если схемы не задавать, то и без задержек...
20.02.2019 13:03
Улучшайзинг... Пришло письмо от постоянного пользователя, что они много закупок делают из "Метро", т.е. практически все накладные "кривые" - вот и придумал облегчение для неискушенного в компьютерной сфере пользователей:

1. Можно, как было описано выше прописать схему преобразований и работать с "кривой" ТТН. Можно сохранить несколько схем прописанных в одной строке в текстовом файле и вносить их через "копировать - вставить"





2. Сейчас можно - ввести русскую букву Ф в любом регистре в качестве первого знака, можно, как на картинке в заполненную строку:





3. После нажатия кнопки Enter автоматом занесется строка из файла Schema.ttn - текстовый файл из одной строки в кодировке Windows 1251, если он есть в каталоге программы, которую можно дополнить. Резерв на "сочинение" увеличил до 4096 знаков, т.е. под всех возможных "чудотворцев":

21.03.2019 12:13
Считаю это полезной и "познавательной" информацией. Один пользователь из "интернет" перестал приобретать алкоголь в Метро, хотя и там бывают хорошие скидки из-за устаревшей невозможности "УС Лэнд:ЕГАИС" работать с нестандартным пространством имен. Моё мнение не изменилось - если поставщик не хочет терять покупателей, то будет менять разработчиков, что гораздо дешевле, чем терять бизнес.

К чему это? Договорились с "виртуальным" пользователем, что сделаю схему преобразований для Метро. Они приобретают товар, я беру себе МЕТРОовый ХМЛ файл ТТН и создаю схему. Вот они взяли алкоголь и оказалось:

Даже Метро перешло к стандартному оформлению ХМЛ файлов расходных накладных
08.06.2019 12:05
Недавно было пожелание из реал: https://olegon.ru/showpost.php?p=332404&postcount=263 внести настройку принудительную загрузку схем преобразований, что полезно при постоянном потоке нестандартных ТТН, что сделано. Однако отмечу - чем сложнее схема, тем дольше обрабатываются ВСЕ приходные ТТН. Заодно напомню список доступных настроек программы:

Код:

Настройки программы на 08.06.19 12:25:14
--------------------------------------------------------------------------------------------------------------------------- Стр. 1
Переменная|          Значение переменной в настройке программы          |            Краткое описание значения параметра         
----------------------------------------------------------------------------------------------------------------------------------
nLenSt    |62                                                           |Длина печатной страницы при выводе отчетов - 60          
----------------------------------------------------------------------------------------------------------------------------------
npFormpSer|2                                                            |Номер версии д-оборота ЕГАИС. По умолчанию 2             
----------------------------------------------------------------------------------------------------------------------------------
cgMyIdEga |030********5                                                 |Код в системе ЕГАИС. См. log файлов транспорта           
----------------------------------------------------------------------------------------------------------------------------------
cgObosName|Ст*********************************2002                      |Наименование обособленного подразделения                 
----------------------------------------------------------------------------------------------------------------------------------
cgNameFirm|ООО Пр*********йл                                            |Имя фирмы: Форма_собств. Наименование (ООО Организация)  
----------------------------------------------------------------------------------------------------------------------------------
cgKassFirm|_Kassa                                                       |Номер кассы или её префикс по умолчанию                  
----------------------------------------------------------------------------------------------------------------------------------
cgInnFirm |64******31                                                   |ИНН головной организации                                 
----------------------------------------------------------------------------------------------------------------------------------
cgKppFirm |64****002                                                    |КПП данного обособленного подразделения                  
----------------------------------------------------------------------------------------------------------------------------------
cgAdrFirm |Саратов, ул. Бе********а                                     |Адрес организации или подразделения для чеков            
----------------------------------------------------------------------------------------------------------------------------------
cgPull_akm|4                                                            |Контроль пула ШКАМ при прод: 1-Вопрос,2-Запрет, иначе игн
----------------------------------------------------------------------------------------------------------------------------------
lgEgaPivo |.F.                                                          |.T.-учитывать/выгружать в ЕГАИС продажи пива, иначе .F.  
----------------------------------------------------------------------------------------------------------------------------------
cgPivoKVA |                                                             |Список кодов видов алк.пр-ции для пива через запятую     
----------------------------------------------------------------------------------------------------------------------------------
cgHost    |http://localhost:8080/opt/                                   |Стандартная часть всех запросов http://localhost:8080/opt
----------------------------------------------------------------------------------------------------------------------------------
ngWait    |5                                                            |Макс.пауза в сек ожидания ответа от УТМ кроме входящих за
----------------------------------------------------------------------------------------------------------------------------------
cgemail   |zhs***********                                               |Адрес электронной почты для отсылки сообщений УСЕга      
----------------------------------------------------------------------------------------------------------------------------------
ngFixDayRo|4                                                            |Контроль отправки доков. Число дней - 1. Умолчание=4     
----------------------------------------------------------------------------------------------------------------------------------
lgNoChPull|.F.                                                          |.T. если отключить контроль вхождения акц.марки в пул    
----------------------------------------------------------------------------------------------------------------------------------
lpOtgrInv |.F.                                                          |.T. если ЗАПРЕТИТЬ отправку актов по приходным ТТН       
----------------------------------------------------------------------------------------------------------------------------------
lProhibiti|.F.                                                          |.T. - сразу загружать схему преобразования кривых ТТН    
----------------------------------------------------------------------------------------------------------------------------------
ngBetzTTN |600                                                          |Тайм аут в секундах м/у запросами приходных ТТН          
----------------------------------------------------------------------------------------------------------------------------------
ngBetReg3 |600                                                          |Тайм аут в секундах между запросами остатков рег. №3     
----------------------------------------------------------------------------------------------------------------------------------
lgLive    |.T.                                                          |Вид головного меню .T. - упрощенный, ,.F. - основной     
----------------------------------------------------------------------------------------------------------------------------------
lgWriteBD |.T.                                                          |Ведение своей БД .F. - отключить или .T. - включить      
----------------------------------------------------------------------------------------------------------------------------------
lNoDatTime|.F.                                                          |.T. отключить отраж.даты и времени печати, .F. включить  
----------------------------------------------------------------------------------------------------------------------------------
lgWin10   |.T.                                                          |.T. если используете Win10, иначе .F.                    
----------------------------------------------------------------------------------------------------------------------------------
lgpCurl   |.F.                                                          |.F. если не проверять существование и размер cURL        
----------------------------------------------------------------------------------------------------------------------------------
lgShiftF7 |.F.                                                          |.T. если разрешено в инвентаризации ввод по F7 и aF7     
----------------------------------------------------------------------------------------------------------------------------------
lgAutoHelp|.T.                                                          |.T. вкл.режима запоминания строк в справочниках, иначе .F
----------------------------------------------------------------------------------------------------------------------------------
lgSoundWav|.F.                                                          |.T. включить возможность звуков Wav ОС, иначе .F.        
----------------------------------------------------------------------------------------------------------------------------------
l_mus     |.F.                                                          |Разрешение использования звуковых эффектов .T., если ДА  
----------------------------------------------------------------------------------------------------------------------------------
cgpCurl   |                                                             |Маршрут для запуска утилиты Curl или пусто, если в Path  
----------------------------------------------------------------------------------------------------------------------------------
cdTemp    |c:\temp\                                                     |Каталог временных файлов программы C:\TEMP\              
----------------------------------------------------------------------------------------------------------------------------------
cdRepEga  |REPORT\                                                      |Каталог вывода отчетов и другой информации REPORT\       
----------------------------------------------------------------------------------------------------------------------------------
cgBaseUs  |c:\_Rep\Butik\Ls\Database\                                   |Основной каталог БД УС C:\Lack\Ls\Database\              
----------------------------------------------------------------------------------------------------------------------------------
cgBaseUs2 |M:\Store\Butik\Ls\Database\                                  |Альтернативный каталог БД УС Z:\Butik\Ls\Database\       
----------------------------------------------------------------------------------------------------------------------------------
cgpLogUtm |c:\utm\transporter\l\                                        |Каталог логов УТМ \\128.0.0.1\utm\..\l\                  
----------------------------------------------------------------------------------------------------------------------------------
cdData    |DATA\                                                        |Каталог внутренних данных программы DATA\                
----------------------------------------------------------------------------------------------------------------------------------
21.10.2021 10:19
Из-за давности проблемы уже почти забыл о ней... В реале более 50 поставщиков со всех регионов и никто сейчас не чудит с "пространством имен"... Однако похоже "нарисовался" такой у активного пользователя виртуального мира... и похоже придётся вспоминать данную технология, да и косяк в программе обнаружился. Пользователь активный, но слишком занят, что бы глубоко вникать в "недра" технологий ЕГАИС

Прислал письмо - появился недавно новый поставщик и программа стала вылетать при попытке открытия его накладной:





Изучая использование переменной об которую спотыкается программа обнаружил, что накосячил при создании режимов приема v.4 ТТН, а именно забыл в начале модулей инициализировать переменную перехода права собственности
Код:
  
//  01.04.2021  Определяю/переопределяю смену владельца груза, что нужно для акта по в.4
//  31.10.2021  При неопределенном теге - при задании переменной дали ей значение по умолчанию = FALSE
oUrl        := oDoc:findFirst( "wb:ChangeOwnership" )
IF oUrl <> NIL THEN lOnChange := ( At("ISCHANGE",Upper(czOutStr(oUrl:cData))) > 0 )
Однако инструмент сам определял её и область видимости при первом задании значения в коде выше, но ТОЛЬКО если в ТТН был обнаружен тэг wb:ChangeOwnership… Проверил - ЕГАИС не даёт отправлять ТТН без этого тэга. Если "пространство имен" кривое, то значение их ХМЛ не определиться и переменная будет "неопределенной", а при обращении к ней программа и вылетит с указанной на скрине ошибкой.

Конечно исправил, как оказалось "глобальную" недоработку программы и сейчас она игнорирует данную проблему ТТН, а диагностика "кривизны" ТТН делается в других режимах. Попросил прислать XML файл ТТН, что бы сделать схему перекодировки (см. все сообщения выше в теме), но пока обратной связи нет.
Часовой пояс GMT +3, время: 21:59.

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