Английский интерфейс для 1С: Управление торговлей. Перенос перевода из 1С: ERP

05.05.20

Разработка - Работа с интерфейсом

Полноценный англоязычный интерфейс для 1С: Управление торговлей. Я передаю идею, а пользоваться или нет, решайте сами. Надеюсь, эта статья ускорит появление продукта 1C:Trade Management 11.

1. Предыстория.

1 мая 2020 года. Готовлюсь к экзамену 1С Специалист-консультант по Бюджетированию в ERP. Копаюсь в отладке, пытаясь понять, почему не работает отчет. И вдруг обнаруживаю, что в 1С ERP, присутствует перевод на Английский. Причем вполне рабочий. Причем уже больше года (как выяснилось при дальнейшем рассмотрении). Открываю 1С Управление торговлей, и вижу, что нет перевода на Английский. И тут я понимаю, что экзамен может подождать, а заняться чем-то интересным ждать не может.

2. Первые шаги.

Взяв одинаковые версии УТ (11.4.11.100) и ERP (2.4.11.100) принялся колдовать.

1. В 1С Управление торговлей снял конфигурацию с поддержки (Хотя это делать было не обязательно). Добавил Английский язык.

В 1С ERP выбрал Правка - Редактирование текстов интерфейса. Включил всю конфигурацию + Поиск в НСтр(NStr).

Выгрузка файла с расположением кода заняла более 4 гигабайт в формате MXL. Без расположения - 258 мегабайт.

Заполнился огромный список результатов.

Думая, что сейчас я загружу этот список в 1С Управление торговлей, и будет 1C Trade Management.

Однако при загрузке поймал ошибку 

Потратив около часа на поиск причины возникновения ошибки обнаружил, что при выгрузке выгружаются значения 

Русский (ru) Английский (en)

А загрузчик ожидает получить

ru en

Исправив это недоразумение, я перешел к загрузке.

Однако заполнился минимум значений из файла с переводом на английский язык.

 

3. Формирование собственного файла с переводом.

Решив использовать очень популярную конфигурацию 1С Переводчик я скачал ее с пользовательского портала. Загрузил. И ничего не получилось.

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

На утро возникла светлая мысль, перейти к анализу в python, для удобства выбрал Juputer notebook.

Первое, что сделал - это сформировал в голове идею.

Мне необходимо выгрузить все тексты интерфейса + НСтр из 1С Управление торговлей, и уже для них искать переводы.

Для анализа использовал пакет Pandas в Python.

Сначала подгрузил нужные библиотеки Python.

Далее перешел к очистке выгруженных переводов, а именно.

Строчки, в которых отсутствует перевод на Английский, строки, в которых отсутствует перевод на русский. (Да, такие были).

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

Далее, для меня было откровением, что были чудесные переводы. Когда к примеру число 2 переводилось на английский как 3 :)

Так и откровенно полное нарушение смысла задумки.

И в конце важным условием было избавится от дубликатов. Я понимаю, что в разных местах, возможно стоило бы переводить по разному, но для данного этапа я принял для себя данное решение.

Далее примерное подобные действия выполнил для выгрузки текстов интерфейса + НСтр из конфигурации 1С Управление торговлей.

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

Далее произвел объединение двух датасетов, по внутреннему соединению, с проверкой, что в результате не возникло ситуации, когда одному русскому переводу соответствует более 1 перевода на английском языке. По непонятной мне причине заполнение текстов в этом случае просто не отрабатывает.

Сохранил результат в файл excel, для дальнейшей обработки. С помощью 1С перевел файл excel в mxl и произвел загрузку.

На этом этапе я был уверен, что у меня получился готовый программный продукт, хоть сейчас его внедрять в Евросоюзе.

С интерфейсами было все хорошо. А вот с печатными формами была беда. По непонятной причине отсутствовал перевод всех полей типа текст.

А победа была так близка.

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

4. Перевод текстов макетов.

3 мая.

Попробовав различные версии платформы, я не смог найти работающий вариант. Но разработчики ERP смогли обойти это недоразумение, и я смогу.

Я понял, что нужна будет отладка, много отладки. И перевел разработку в PyCharm

В Jupyter notebook сохранил результат объединения в csv файл

 

Произвел импорт необходимых библиотек.

Создал функцию, которая будет возвращать перевод, + дополнительно выводить отладку, впервые найденных возможных переводов.

Загрузил результат перевода, с которым я работал в Jupyter notebook

Выгрузил конфигурацию 1С Управление торговлей в файлы. Конфигурация - Выгрузить конфигурацию в файлы.

И произвел поиск всех файлов, которые содержат имя Template.xml, эти файлы и есть mxl файлы, переведенные в xml вид.

 

А далее начинается треш. Я до этого много работал с XML в 1С, а в Python столкнулся в первый раз. Сначала воспользовался модулем ElementTree, который отлично справляется с поиском. Но при модификации xml файла, считает, что пространства имен, объявленные в xml файле имеют не совсем идеальные префиксы, и выполняет присвоение новых префиксов. Плюс удаляет старые, неиспользуемые префиксы.

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

    <line width="1" gap="false">
        <v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
    </line>

Исправив эти ошибки, начали появляться артефакты в макетах СКД, и я понял, что надо более деревянный инструмент, который будет только добавлять требуемый мне текст.

И этим инструментом оказался minidom.

Путем разбора полетов, я понял, что в xml меня интурусуют тэги tl

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

Основной функционал переведен на английский язык.

И оно работает.

Это было очень приятное отвлечение, от основных рабочих задач. 3 дня самоизоляции пролетели незаметно.

Перевод текстов интерфейсов Управление торговлей Trade managment Английский интерфейс english interface.

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62022    43    59    

81

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54651    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16875    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11109    759    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9855    153    acces969    31    

119

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3905    kalyaka    4    

29

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12264    1    5    

10

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    8926    1    2    

6
Отзывы
7. user729991 05.08.20 16:49 Сейчас в теме
Продайте готов обсудить, как готовое решение на штатную конфигурацию
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3038 05.05.20 10:20 Сейчас в теме
Питончик - мегавещЪ!
cleaner_it; anatoliy.kichuk; _Ramzes; +3 Ответить
2. _Ramzes 125 05.05.20 12:09 Сейчас в теме
(1) Я когда в первый раз познакомился с Python, понял, как скудны возможности 1C. Но 1С исправно кормит меня и мою семью уже 17 лет. Поэтому 1С вне конкуренции.
JeckWest; iCortezik; yurowski; cleaner_it; andrvyst; pm74; +6 Ответить
3. capitan 2473 05.05.20 16:28 Сейчас в теме
(2)Вспоминается...
— Девушка, это вы вчера танцевали на столе в нижнем белье? — Я? В нижнем белье? Да вы рано ушли! ...

Это вы видимо еще с JAVA не знакомились )
4. DitriX 2093 06.05.20 17:27 Сейчас в теме
Вот только то, что вы сделали - в реалиях не понятно как использовать.
Причин несколько:
1. При очередном обновлении УТ11, надо будет вырезать инглишь, обновить и накатить снова.
2. Проблема двойного перевода слов - никуда не делать, а все только усугубилось, так как не понятно - что будет взято за основу
3. В ЕРП в не малом количестве мест - английский = русскому, т.е. вместо инглиша там тупо русский, а значит - не понятно что возьмет ваш скрипт за основу
4. Идеологически, программисты не должны знать о втором языке ничего, иначе получите трешь и содомию, в виде скопированных реквизитиов и исправленных только в русском переводе
5. Наличие второго языка - подразумевает, что и все доработки, в том числе внешние - тоже должны переводиться.

Ну и много много разных других вещей. Сделали вы по сути тоже самое, что и умеет делать конфигуратор...

Но, в качестве изучения темы, разбора ее и анализа - вполне уместное время провождения :)
А проблема переводов уже решена (и это не древний не подъемный переводчик), причем, как мне кажется - даже круче чем в других языках :)
5. _Ramzes 125 06.05.20 19:26 Сейчас в теме
(4) Спасибо большое за комментарии.
То, что было сделано, выполнялось только для интересного времяпровождения, чтобы отвлечься от основных рабочих задач.
Подскажите пожалуйста, каким образом проблема переводов успешно решена? Я пока знаю только НСтр и Синонимы объектов.
JeckWest; +1 Ответить
6. DitriX 2093 06.05.20 19:37 Сейчас в теме
(5)тут идея немного в другом. И проблемы другие.

https://infostart.ru/public/1156027/
тут подробнее и видео есть.
7. user729991 05.08.20 16:49 Сейчас в теме
Продайте готов обсудить, как готовое решение на штатную конфигурацию
8. k-service44 86 05.01.23 08:46 Сейчас в теме
Добрый день!
У Вас написано:
"Взяв одинаковые версии УТ (11.4.11.100) и ERP (2.4.11.100) принялся колдовать.

1. В 1С Управление торговлей снял конфигурацию с поддержки (Хотя это делать было не обязательно). Добавил Английский язык."
Как понимать фразу - "Хотя это делать было не обязательно"?

и как добавить язык без снятия конфигурации с поддержки?
10. _Ramzes 125 11.01.24 09:11 Сейчас в теме
(8) Во избежания каких либо конфликтов я просто снял с полной поддержки все объекты. Т.е. конфигурация больше не имела связи с родительской конфигурацией. Хотя достаточно было только включить возможность изменения.
9. JeckWest 10.01.24 16:14 Сейчас в теме
Оставьте свое сообщение