Копирование числовых ячеек из 1С в Excel

15.01.19

База данных - Инструменты администратора БД

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

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

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

1) пользовательские: 

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

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

2) 1С-ные:

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

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

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

4) админские:

- даунгрейд/замена RDP-клиента

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

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

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

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

Excel копирование ячейки числа терминальный сервер

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    209806    620    524    

438

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150376    365    375    

499

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    31792    234    63    

117

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2756    11    1    

30

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

5400 руб.

04.06.2019    101126    296    173    

312

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

3600 руб.

07.06.2022    14947    78    0    

59
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kauksi 212 21.01.19 21:18 Сейчас в теме
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


End Sub


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


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

Чтобы его вызвать предварительно выделяем в любой открытой книге диапазон ячеек, который нужно преобразовать в текст, нажимаем ALT+F8, выбираем наш макрос и жмем ОК.
AndrewVVS; hellf; Lehha; soba; +4 Ответить
2. itriot11 94 21.01.19 21:39 Сейчас в теме
(1) это должен будет сделать каждый юзер для всех своих файлов?
3. Bеgemoth 06.02.19 15:31 Сейчас в теме
(0) А если, кроме указания пробела в качестве разделителя групп, ещё и установить там же количество разрядов в группировке равным 0, то это не решит проблему лишних пробелов при выгрузке в txt файл?
4. itriot11 94 06.02.19 15:56 Сейчас в теме
(3) Очень может быть и так! Нужно попробовать)
5. itriot11 94 08.02.19 13:52 Сейчас в теме
(3) Попробовал. Да, решает эту проблему. А так же, поскольку, данная настройка регулирует наличие символа разделения групп чисел, то и заявленную в публикации проблему поможет решить без указания символа "Пробел" в поле "Разделитель групп". Однако, помимо этого, получим так же очевидный результат в том, что числовые значения во всей информационной базе будут представлены без разделителя, те было 123 456 678, 90, а станет 12345678,90. В качестве варианта - вполне можно использовать, если пользователи будут не шибко против. Ну а я пока остановился на решении описанном в публикации.
user717534; +1 Ответить
6. Ashandy 15.02.19 21:17 Сейчас в теме
А подскажите, пожалуйста, где почитать об обратной ситуации.
При использовании
ТабличныйДокумент.Прочитать(ФайлEXCEL, СпособЧтенияЗначенийТабличногоДокумента.Значение); 
если в екселе был формат ячейки число то оно переносится с разделителем в виде пробела, хотя в екселе без пробела.
причем на Windows server было так
а на локальной машине с 2010м офисом переносило значение без пробела.

Правильно ли в таком случае использовать
ТабличныйДокумент.Прочитать(ФайлEXCEL, СпособЧтенияЗначенийТабличногоДокумента.Текст);

?
John_Dow; +1 Ответить
7. itriot11 94 16.02.19 02:19 Сейчас в теме
(6)
Правильно ли в таком случае использовать
ТабличныйДокумент.Прочитать(ФайлEXCEL, СпособЧтенияЗначенийТаб

Не готов ответить - правильно или нет. Для этого сперва бы стоило дать определение слову "правильно") На вашем месте, попробовал бы оба варианта и выбрал наиболее приемлемый в контексте задачи.
10. romankoav 4 19.03.19 12:48 Сейчас в теме
(6) и так и так делал - никакой разницы не было
8. lazovit 18.02.19 21:26 Сейчас в теме
А правой кнопкой в Excel и специальная вставка, вставить как текст никто не пробовал?
9. itriot11 94 18.02.19 23:46 Сейчас в теме
(8) Пробовал - не взлетело.
11. mikl79 118 22.04.19 15:03 Сейчас в теме
Спасибо, помогло
уточню, например, при выгрузке в txt для того, чтобы убрать пробел можно использовать:
1) Формат(ПеременнаяЧисло,"ЧГ=");
2) СтрЗаменить(ПеременнаяЧисло,Символы.НПП,"");
12. user819002 07.05.19 10:15 Сейчас в теме
Попробовали всё слово в слово по инструкции, всё равно копируется как текст.

Проблему решаем даунгрейдом файлов на серверах и на клиентах, системы windows server 2016/ widows 10
Пользователей очень много, мучений доставляет кучу)

Подскажите пожалуйста, что ещё может быть не так?
13. ytrewqwerty 01.08.19 04:16 Сейчас в теме
(12) Вот еще версия для размышлений. Помнится еще в 7.7 было так, что если число в 1С таблице в ячейке было выравнено 'по центру' или 'влево', то Эксель воспринимал его как текст, но если выравнивание было 'вправо', то - как число.
tita122004; igor-pn; Serg1701; automatizator; idjumatov; Romkin; Gingema; user630329_erdosnull; Alkali; pihy; +10 Ответить
28. idjumatov 17 12.06.23 08:08 Сейчас в теме
(13) СПАСИБО БОЛЬШОЕ!!! Сработало там где ничего не помогало.
14. VAAngelov 363 07.08.19 11:30 Сейчас в теме
Спасибо большое. Полезно и даже очень.
itriot11; +1 Ответить
15. erutan 103 16.09.19 10:41 Сейчас в теме
Если сделать просто так, как написано в Теме
>> Однако, последний вариант натолкнул на мысль попробовать изменить региональные установки самой информационной базы 1С. Для этого потребуется монопольно запустить режим "1С:Конфигуратор", где в подменю "Администрирование" выбрать пункт "Региональные установки информационной базы", в открывшейся форме убрать "галку" с флага "Использовать региональные установки текущего сеанса", что позволит установить пробел в поле "Разделитель групп".

перестает рабоать автоматическая сумма выделенных диапазонов в отчетах (например, оборотке).

в БП3 - решил расширением общ.модуля БухгалтерскиеОтчетыКлиентСервер



&Вместо("ВычислитьСуммуВЯчейках")
Процедура Расш1_ВычислитьСуммуВЯчейках(Сумма, СтруктураАдресВыделеннойОбласти, Результат)
	
	ТипЧисло = Новый ОписаниеТипов("Число");
	Для ИндексСтрока = СтруктураАдресВыделеннойОбласти.Верх По СтруктураАдресВыделеннойОбласти.Низ Цикл
		Если ИндексСтрока = 0 Тогда // Выделена колонка отчета (без ограничений), суммы из нее получить нельзя.
			Продолжить;
		КонецЕсли;
		
		Для ИндексКолонка = СтруктураАдресВыделеннойОбласти.Лево По СтруктураАдресВыделеннойОбласти.Право Цикл
			Если ИндексКолонка = 0 Тогда // Выделена строка отчета (без ограничений), суммы из нее получить нельзя.
				Продолжить;
			КонецЕсли;
			
			Ячейка = Результат.Область(ИндексСтрока, ИндексКолонка, ИндексСтрока, ИндексКолонка);
			Если Ячейка.Видимость = Истина Тогда
				Если Ячейка.СодержитЗначение И ТипЗнч(Ячейка.Значение) = Тип("Число") Тогда
					Сумма = Сумма + Ячейка.Значение;
				ИначеЕсли ЗначениеЗаполнено(Ячейка.Текст) Тогда
					ТекстВЯчейке = СокрЛП(Ячейка.Текст);
					
					// Удалим знак "+" перед числом. Используется в Платежном календаре.
					Если Лев(ТекстВЯчейке, 1) = "+" Тогда
						ТекстВЯчейке = Сред(ТекстВЯчейке, 2);
					КонецЕсли;
					
					ТекстВЯчейке = СтрЗаменить(ТекстВЯчейке," ","");// доработка
					
					// Разделим текст, включая пустые строки. Хотя бы одно значение (пустое) в массиве будет всегда.
					ЧастиСтроки  = СтрРазделить(ТекстВЯчейке, " ");
					ЧислоВЯчейке = ТипЧисло.ПривестиЗначение(ЧастиСтроки[0]);
					Сумма        = Сумма + ЧислоВЯчейке;
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;

КонецПроцедуры
Показать
KoC_one; bestkso; itriot11; +3 Ответить
16. itriot11 94 16.09.19 11:19 Сейчас в теме
(15) С таким не сталкивался. Вероятно, это какое-то особенное поведение на стыке систем. Спасибо, что сразу тут описали решение!
17. erutan 103 25.09.19 13:48 Сейчас в теме
Коллеги, а как у вас копируются/вставляются в excel бухчсета из ОСВ (БП3)?
сервер терминалов winserver2016, что в файловом, что в SQL-виде, при вставке за пределы RDP в MSOffice 2016 некоторые счета меняются на даты(

1. счета выведены в отдельной колонке, без наименований

2. Собственно, раньше работали на WinServ2008, файлово, такого поведения не было

3. На скриншоте -"режим совместимости", файл xls. Если современный файл делать, т.е. xlsx, то таких ошибок меньше , но они все равно есть(
Прикрепленные файлы:
18. itriot11 94 25.09.19 15:39 Сейчас в теме
(17) с таким не сталкивался. Попробуйте поиграться с региональными настройками даты.
19. tasha2024 04.10.19 11:09 Сейчас в теме
Заменила все в региональных настройках, как написано в статье, но при копировании числе из ОСВ БП 3.0 и вставке числа в excel по прежнему пробел есть. Что делаю не так?
20. tasha2024 04.10.19 11:52 Сейчас в теме
(19)
Заменила все в региональных настройках, как написано в статье, но при копировании числа из ОСВ БП 3.0 и вставке числа в excel по прежнему пробел есть. Что делаю не так делаю?


Упс. Получилось. Но меняются настройки сразу у всех пользователей базы. Можно ли только для одного пользователя сменить настройки региональные?
21. itriot11 94 04.10.19 12:08 Сейчас в теме
(20) описанным тут способом нет. Тут рассматривали вариант с макросами - может стоит копать в эту сторону, если делаем только для одного пользователя.
22. FlyVodolaz 22.05.20 22:09 Сейчас в теме
(20)
Можно ли только для одного пользователя сменить настройки региональные?

Изменить региональные установки текущего пользователя операционной системы? И оставить что бы 1С брала эти настройки текущего сеанса.
23. pahmutov 16 07.07.20 16:11 Сейчас в теме
Однако, не помогло.

При копировании чисел с неразрывным пробелом 1C (сервер,RDP)-->Excel (сервер, RDP) - Работает! (значения как числа)
При копировании чисел с неразрывным пробелом 1C (сервер,RDP)-->Excel (локальный комп) - НЕ Работает! (значения как текст)

Региональные установки информационной базы, как описано в статье, сделал. На локальный комп все равно не работает.
На сервере windows server 2016, локальный - windows 10, 1909.

Помогла замена rdpclip.exe на удаленном сервере на версию из Windows Server 2019.
SashaSashaSashka; itonix_ru; llirik1987; itriot11; +4 Ответить
29. llirik1987 29.06.23 16:00 Сейчас в теме
(23)
Вот это помогло! реально если заменить файл rdpclip.exe на сервере Windows Server 2016 на файл с Windows Server 2019. То вставка цифр из 1С на сервере в EXEL на локальный пк по RDP уже работает корректно. Изначально вставляло как текст, а после замены файла, как цифры.
Это сообщение в топ нужно поднять! не нужно снимать никакие галочки в настройках 1С
24. user1436471 14.07.20 12:37 Сейчас в теме
Убрать неразрывный пробел, как разделитель и форматировать текст в число без изменения региональных и прочих настроек (Мучился неприлично долго)
=ЕСЛИ(N18=0;0;СЖПРОБЕЛЫ(ПОДСТАВИТЬ(N18;СИМВОЛ(160);"";1))*1)
Now; rexton; +2 Ответить
25. DBTransformer 10.08.20 14:09 Сейчас в теме
Примите благодарность от человека, испытывающего неприятные эмоции из-за регулярной необходимости решать указанную Вами проблему :)
Now; itriot11; +2 Ответить
26. Dr.dree 23.09.20 07:45 Сейчас в теме
Если еще актуально, то вот вырезка с ИТС:
3.4.3. Вывод в файл лист Excel (*.xls-*.xlsx)

При выборе формата Лист Excel табличный документ сохраняется в формате Microsoft Office Excel, используемом по умолчанию (эквивалентно листу Excel97).

При сохранении табличного документа в формате листа Excel необходимо учитывать следующие особенности:

● Текст в ячейке преобразуется в число Microsoft Excel только если для ячейки установлено горизонтальное выравнивание вправо, в противном случае содержимое ячейки будет сохранено как текст;

https://its.1c.ru/db/v8310doc#bookmark:usr:TI000000532
Serg1701; rexton; user630329_erdosnull; molodoi1sneg; dkonakov; Milan-1c; bestkso; kida1; +8 Ответить
27. bestkso 65 13.11.20 12:58 Сейчас в теме
Было строгое требование выравнивание в ексле по центру.
Решил обойти нормально сохранение числа следующим способом:

Для Выс = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл
	Для Шир = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл
		Обл = ТабличныйДокумент.Область(Выс,Шир,Выс,Шир);
		
		Если ЭтоЧисло(Обл.Текст) Тогда // проверка на число или по другим признакам. формат например .... 
			
			Обл.СодержитЗначение = Истина;
			Обл.ТипЗначения = Новый ОписаниеТипов("Число");
				
			Обл.Значение = Число(Обл.Текст);
			
		КонецЕсли;                
	КонецЦикла;
КонецЦикла;
Показать


После этого в ексль сохраняется как тип число.
drygina; mszsuz; +2 Ответить
Оставьте свое сообщение