Баг! Персонифицированные сведения о физических лицах в ФНС выгружаются битыми - Каминсофт

Баг! Персонифицированные сведения о физических лицах в ФНС выгружаются битыми

22 фев 2023 20:37 #1
от Чернитевич Алексей
Обнаружили баг! Персонифицированные сведения о физических лицах в ФНС выгружаются с битой кодировкой в режиме тонкого клиента при работе с опубликованной БД через вэб-сервер. При работе с другими отчетами или локально такого не происходит.

Пример выгружаемого xml:
<?xml version="1.0" encoding="windows-1251"?>
<???? xmlns:xsi="www.w3.org/2001/XMLSchema-instance" ??????="NO_PERSSVFL_2315_2315_231505649555_20230218_d284899c-6f83-4194-b668-3929cbd38a17" ????????="1?-?????:???????? 5.0" ????????="5.01">
    <???????? ???="1151162" ???????="18.02.2023" ???????="0" ??????="01" ????????="2023" ?????="2315" ???????="120">
        <????>
            <???? ?????="231505649555" ??????="322237500267555">
                <??? ???????="?????" ???="????????" ????????="??????????"/>
            </????>
        </????>
        <????????? ??????="1">
            <??? ???????="" ???=""/>
        </?????????>
        <???????? ?????="555014333555" ?????="215-555-555 62" ???????="4117.65">
            <??? ???????="???????" ???="???????" ????????="?????????"/>
        </????????>
    </????????>
</????>
Тема закрыта.

22 фев 2023 22:47 #2
от Алексей Ю. Федотов
Опишите, пожалуйста, вашу инфраструктуру подробнее!
И посмотрите ответ на схожую тему здесь www.kaminsoft.ru/forum/zarplata5-5/14523....html?start=20#63209

Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
23 фев 2023 10:42 #3
от Чернитевич Алексей
По ссылке на тему локаль проверили, не наш вариант видимо, в /etc/default/locale стоит LANG=ru_RU.UTF-8

Инфраструктура: сервер на Ubuntu Linux 22.10, апач 2.4, база опубликована на сервере. Подключение к БД производится через тонкий клиент (файловый вариант), клиентская машина на windows

Причем такая проблема только с этим отчетом. Остальная отчетность выгружается корректно.
Тема закрыта.

24 фев 2023 07:19 #4
от Алексей Ю. Федотов
Правильно ли я понимаю, что на веб-сервере опубликована файловая база, при работе с которой "напрямую" (без участия веб-сервера) проблема с кодировкой в данном отчете не возникает?

Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
24 фев 2023 21:52 #5
от Чернитевич Алексей

Правильно ли я понимаю, что на веб-сервере опубликована файловая база, при работе с которой "напрямую" (без участия веб-сервера) проблема с кодировкой в данном отчете не возникает?

Не совсем понятно что имеется ввиду под "напрямую". Если об обычном доступе к шаре в файл-серверном варианте, то нет, подключение идет с участием веб-сервера посредством тонкого клиента. Причем подчеркиваю, что проблема именно с данным отчетом в данном режиме. С другими отчетами нет проблем.
Тема закрыта.

27 фев 2023 09:37 #6
от Алексей Ю. Федотов
Я имел ввиду, что если это файловая база, то при работе с ней без участия веб-сервера сохраняется ли проблема? Или такой вариант не проверялся?
Заодно пришлите выводы команд с веб-сервера, на котором выполнена публикация

$ locale
$ locale -a | grep ru
$ sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG


Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
04 март 2023 21:24 #7
от Чернитевич Алексей
При работе с базой без участия веб-сервера проблема не сохраняется.

Выводы команд с веб-сервера, на котором выполнена публикация

> locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
> locale -a | grep ru
ru_RU.utf8
> sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG
LANG=C
Тема закрыта.

06 март 2023 10:34 #8
от Алексей Ю. Федотов
Для быстрой проверки сделайте на веб-сервере с публикацией следующее:

$ LANG=ru_RU.UTF-8
$ sudo systemctl import-environment LANG
$ sudo systemctl restart apache2

После чего проверьте выгрузку отчета, решит ли это проблему!?

Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
24 март 2023 16:08 #9
от Таширстрой
Аналогичная проблема. Только 1С сервер установлен на windows server 2008 R2, базы на MS SQL 2014. 
Язык программ не поддерживающих Юникод: Русский, язык 1С сервера русский, в sql стоит Cyrillic_General_CI_AS.
Проблема актуальна как на самом сервере, так и на рабочих машинах пользователей, которые работают по тонкому клиенту.
Поможете? 
Тема закрыта.

26 март 2023 20:27 #10
от Чернитевич Алексей
Нет, проблему это не решило. И еще раз хочу сделать акцент - ВСЕ остальные отчеты в данной среде и в данных условиях выгружаются корректно.
Тема закрыта.

27 март 2023 09:16 #11
от Алексей Ю. Федотов

... И еще раз хочу сделать акцент - ВСЕ остальные отчеты в данной среде и в данных условиях выгружаются корректно.



 

Доброго времени бодрствования!
Вы пишите, что при исключении из "цепочки взаимодействия" веб-сервера проблем с отчетом не наблюдается. На мой взгляд очевидно, что в вашем случае "проблему" привносит веб-сервер. Необходимо разобраться с настройками локализации для него!
Что после сделанных изменений выдает команда
$ sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG

Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
27 март 2023 12:59 #12
от Таширстрой

... И еще раз хочу сделать акцент - ВСЕ остальные отчеты в данной среде и в данных условиях выгружаются корректно.




 

Доброго времени бодрствования!
Вы пишите, что при исключении из "цепочки взаимодействия" веб-сервера проблем с отчетом не наблюдается. На мой взгляд очевидно, что в вашем случае "проблему" привносит веб-сервер. Необходимо разобраться с настройками локализации для него!
Что после сделанных изменений выдает команда
$ sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG
Нам не ответите? Отдельную тему создавать? 

Тема закрыта.

27 март 2023 15:09 #13
от Алексей Ю. Федотов

Нам не ответите? Отдельную тему создавать?

 

Не думаю, что есть смысл создавать отдельную тему!

К сожалению, пока по окружению MS подсказать нечего, так как требуются некоторые "телодвижения" для воспроизведения ...

Алексей Ю. Федотов, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.

27 март 2023 17:53 #14
от Дмитрий Комаров

Аналогичная проблема. Только 1С сервер установлен на windows server 2008 R2, базы на MS SQL 2014. 
Язык программ не поддерживающих Юникод: Русский, язык 1С сервера русский, в sql стоит Cyrillic_General_CI_AS.
Проблема актуальна как на самом сервере, так и на рабочих машинах пользователей, которые работают по тонкому клиенту.
Поможете? 

Скорей всего проблема в региональных настройках непосредственно у пользователя под которым работает 1с.
Попробуйте залогиниться под пользователем 1с сервера, посмотреть настройки и исправить. 

Альтернативный вариант, можно скопировать региональные настройки текущего пользователя:
1. Язык - параметры,  передвинуть русский самым первым
2. Региональные стандарты - установить везде русский(регион, форматы, язык итд) - дополнительно - копировать параметры - поставить обе галки.
3. Выполнить перезагрузку 

Дмитрий Комаров, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин, Алексей Ю. Федотов
27 март 2023 20:24 #15
от Чернитевич Алексей

... И еще раз хочу сделать акцент - ВСЕ остальные отчеты в данной среде и в данных условиях выгружаются корректно.




 

Доброго времени бодрствования!
Вы пишите, что при исключении из "цепочки взаимодействия" веб-сервера проблем с отчетом не наблюдается. На мой взгляд очевидно, что в вашем случае "проблему" привносит веб-сервер. Необходимо разобраться с настройками локализации для него!
Что после сделанных изменений выдает команда
$ sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG
strings /proc/$(pgrep apache | head -1)/environ | grep LANG
LANG=C

Тема закрыта.

27 март 2023 20:27 #16
от Чернитевич Алексей

На мой взгляд очевидно, что в вашем случае "проблему" привносит веб-сервер.

Я это и не отрицааю. Я делаю акцент на том, что только с одним отчетом/текстовой выгрузкой файла имеются проблемы. Больше ни один отчет, также выгружаемый в данных аппаратных и программных условиях такой проблемы не имеет. В связи с чем, предполагаю что проблема больше в отчете "Персонифицированные сведения о физических лицах в ФНС".
Тема закрыта.

28 март 2023 02:33 #17
от Дмитрий Комаров

На мой взгляд очевидно, что в вашем случае "проблему" привносит веб-сервер.

Я это и не отрицааю. Я делаю акцент на том, что только с одним отчетом/текстовой выгрузкой файла имеются проблемы. Больше ни один отчет, также выгружаемый в данных аппаратных и программных условиях такой проблемы не имеет. В связи с чем, предполагаю что проблема больше в отчете "Персонифицированные сведения о физических лицах в ФНС".

Проблемы в отчете нет, такое поведение может быть и в некоторых других отчетах, где сторона принимающая отчетность просит принудительно формировать файл в кодировке win1251, а у веб-сервера установлена некорректная локаль(ваш случай). 

Как ранее упоминалось, вам нужно задать корректную локально веб-сервера, например выполнив следующие действия:
1. В файле /etc/apache2/envvars замените строку "export LANG=C" на "export LANG=ru_RU.UTF8" 
> grep 'LANG=' /etc/apache2/envvars
#export LANG=C
export LANG=ru_RU.UTF8

2. Выполните рестарт Apache
> sudo systemctl restart apache2

3. Проверьте, что теперь локаль веб-сервера соответсвует ru_RU.UTF8
> sudo strings /proc/$(pgrep apache | head -1)/environ | grep LANG=
LANG=ru_RU.UTF8

4. Проверьте формирование файла отчета


 

Дмитрий Комаров, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин, Александр, Алексей Ю. Федотов
28 март 2023 08:31 #18
от Чернитевич Алексей
Да, именно такой вариант помог, проблемы более не наблюдается.
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
28 март 2023 20:35 #19
от Таширстрой

Аналогичная проблема. Только 1С сервер установлен на windows server 2008 R2, базы на MS SQL 2014. 
Язык программ не поддерживающих Юникод: Русский, язык 1С сервера русский, в sql стоит Cyrillic_General_CI_AS.
Проблема актуальна как на самом сервере, так и на рабочих машинах пользователей, которые работают по тонкому клиенту.
Поможете? 

Скорей всего проблема в региональных настройках непосредственно у пользователя под которым работает 1с.
Попробуйте залогиниться под пользователем 1с сервера, посмотреть настройки и исправить. 

Альтернативный вариант, можно скопировать региональные настройки текущего пользователя:
1. Язык - параметры,  передвинуть русский самым первым
2. Региональные стандарты - установить везде русский(регион, форматы, язык итд) - дополнительно - копировать параметры - поставить обе галки.
3. Выполнить перезагрузку 

К сожалению не помогло, везде стояло Россия/Русский, кроме региона, после смены и перезапуска/перезагрузки ничего не изменилось. Проблема всё равно актуальна, попробовал переустановить 1с сервер, создал стандартного USR1CV8, еще раз проверил все настройки, все равно в отчете "??????" Как же быть?
Тема закрыта.

28 март 2023 23:28 #20
от Дмитрий Комаров
Альтернативный вариант пробовали, через копирование настроек?

Так же проверьте Collation непосредственно для базы на mssql, в свойствах базы.
 

Дмитрий Комаров, Группа компаний КАМИН
Отдел по эксплуатации крупных информационных систем
Тема закрыта.
Спасибо сказали: Андрей Ланьшин

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

Принять