Английский интерфейс для 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 1С:ERP Управление предприятием 2 Платные (руб)

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

2400 руб.

29.06.2020    18482    26    6    

41

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    14305    mrXoxot    43    

116

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    6463    smielka    37    

98

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

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

27.12.2023    13905    840    elcoan    47    

115

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

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

2 стартмани

10.04.2023    11442    161    acces969    31    

123

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

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

1 стартмани

05.07.2022    5200    kalyaka    6    

33

Работа с интерфейсом Программист Пользователь Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Ещё с времен платформы 8.3.13 можно изменять цвет стилей интерфейса главного окна. Данное расширение позволит вам выбрать из подготовленных десятка стилей на свой вкус.

1 стартмани

01.07.2022    23617    383    rpgshnik    67    

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

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

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

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

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

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

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