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

6000 руб.

16.01.2015    63082    44    59    

82

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

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

2400 руб.

29.06.2020    18953    26    6    

41

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

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

1500 руб.

06.10.2020    10308    7    7    

10

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

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

20.08.2024    17542    mrXoxot    43    

121

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

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

27.05.2024    7869    smielka    37    

100

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

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

27.12.2023    15146    950    elcoan    49    

117

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

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

2 стартмани

10.04.2023    12005    162    acces969    31    

124
Отзывы
7. user729991 05.08.20 16:49 Сейчас в теме
Продайте готов обсудить, как готовое решение на штатную конфигурацию
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3089 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 2510 05.05.20 16:28 Сейчас в теме
(2)Вспоминается...
— Девушка, это вы вчера танцевали на столе в нижнем белье? — Я? В нижнем белье? Да вы рано ушли! ...

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

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

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