При копировании из 1с в excel иероглифы

Обновлено: 06.07.2024

Проблема была выявлена в инфраструктуре, где платформа 1С:Предприятие 8.3 опубликована на терминальном Windows Server 2016, а клиентами служат ПК с Windows 10 и Excel в составе пакета Microsoft Office 365. Обновления для ПП устанавливались достаточно своевременно.

В процессе поиска решения были рассмотрены следующие варианты:

- замена значений в Excel через сочетание Ctrl+H;

- сохранение всего табличного документа 1С как файл формата Excel и последующая работа со значениями в рамках ПП Microsoft

- применить условное оформление к ячейкам

3) от Excel-еводов:

- написать макрос, который бы сам выполнял команду Ctrl+H

- редактирование региональных стандартов ОС

Перечисленные тут способы не позволили решить проблему достаточно качественно. Однако, последний вариант натолкнул на мысль попробовать изменить региональные установки самой информационной базы 1С. Для этого потребуется монопольно запустить режим "1С:Конфигуратор", где в подменю "Администрирование" выбрать пункт "Региональные установки информационной базы", в открывшейся форме убрать "галку" с флага "Использовать региональные установки текущего сеанса", что позволит установить пробел в поле "Разделитель групп". Да, вот так просто, не выбирая предложенных значений, нажимаем пробел, а затем применяем настройки нажатием кнопки "ОК".

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

P.S. Данная настройка повлияет на формат чисел не только при копировании в Excel! Например, при выгрузке числовых значений в txt файл, пробел будет так же добавлен как разделитель разрядов. Это может нарушить работу со сторонними сервисами, если те "не умеют" воспринимать такой символ разделения. Я столкнулся с подобной ситуацией при загрузке файла зарплатного проекта в клиент одного из банков. Решение данной проблемы я нашел в банальном применений функции СтрЗаменить() для числовых значений.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Sub ПреобразоватьВТекст()
Dim sTempValue As String
Dim c As Range

On Error Resume Next

For Each c In ActiveWindow.Selection

sTempValue = Str(c.Value)
c.NumberFormat = "@"
c = Trim(sTempValue)
Next

On Error GoTo 0

1) открыть Ексель
2) открыть меню Вид, справа видим подменю "Макросы"
3) для того чтобы наш макрос был доступен всегда (при любой открытой книге), необходимо вставить его в Личную книгу макросов.
по умолчанию ее нет, надо создать. Как это делается?
в подменю "Макросы" нажимаем "запись макроса", в появившейся форме выбираем "сохранить в" = "личная книга макросов".
нажимаем ОК. началась запись, щелкни пару раз где-нибудь на листе открытой в данной момент книги.
Для того чтобы остановить запись в левом нижнем углу интерфейса Екселя нажми на белый квадратик (справа от слова "Готово"). Запись прекратилась и у нас в Личной книге макросов записался макрос-пустышка скорее всего с названием "Макрос1".
4) Теперь нажимаем ALT+F11 и попадаем в среду разработки. Находим нашу Личную книгу макросов (VBAProject (PERSONAL.XLSB)), в дереве элементов в папке Modules находим Module1, дважды по нему щелкаем, удаляем наш макрос-пустышку и вместо него вставляем следующее

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

Чтобы его вызвать предварительно выделяем в любой открытой книге диапазон ячеек, который нужно преобразовать в текст, нажимаем ALT+F8, выбираем наш макрос и жмем ОК.

Читайте также: