Корректное отображение числа в виде строки в таблице Excel

1. user1089020 25.06.21 12:06 Сейчас в теме
Добрый день, гении 1С!

Столкнулся с неожиданной проблемой. Мне нужно сформировать excel-файл с данными. В запросе есть артикул, который воспринимается числом. Чтобы избавиться от неразрывных пробелов между триадами, я делаю такой финт:

Для каждого Строка Из ВыборкаДетальныеЗаписи Цикл                 // заполняем стобцы excel-файла	
        //	 
	 ОбластьСтрока.Параметры.АртикулНоменклатуры = Строка(Формат(Строка.АртикулНоменклатуры, "ЧГ="));   
	// 
	 ТабДок.Вывести(ОбластьСтрока);                             // Формируем в документе строку с данными
 КонецЦикла; 
 ИмяФайла = КаталогВременныхФайлов() + "Отчет" + ".xlsx";
 ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);		
 Вложения = Новый Структура;
 Вложения.Вставить("Отчет", ИмяФайла);

Показать


В результате я получаю excel-файл, в котором корректно отображается артикул. Однако при попадании на ячейку, артикул переводится в число, да еще и округляется (см. скриншот). Посоветуйте, как сделать так, чтобы Excel не преобразовывал ячейку с артиклем.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
10. user856012 13 25.06.21 15:53 Сейчас в теме +0.2 $m
+(9)
программно поменять формат ячейки на Текстовый
Или не программно: если файл создается не с нуля, а из заготовки (шаблона), то можно в шаблоне выделить столбец с артикулом и задать ему формат "Текстовый". Тогда при добавлении новых строк Excel не будет преобразовывать строку цифр в число в этом столбце.
12. user856012 13 25.06.21 16:00 Сейчас в теме
(11)
файл создается с нуля
А это обязательно? Можно ведь создать прямо в Excel шаблон с требуемой шапкой и заданными форматами, а перед созданием целевого файла копировать шаблон под нужным именем, открывать и заполнять.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. KonecEsli 1 25.06.21 12:11 Сейчас в теме
4. user856012 13 25.06.21 14:00 Сейчас в теме
(1)
Посоветуйте, как сделать так, чтобы Excel не преобразовывал ячейку с артиклем
Попробуйте добавить апостроф перед строкой - Excel воспринимает это как команду не преобразовывать в число:

ОбластьСтрока.Параметры.АртикулНоменклатуры = "'" + Строка(Формат(Строка.АртикулНоменклатуры, "ЧГ="));
5. user1089020 25.06.21 14:39 Сейчас в теме
(4) Сделал так:
ОбластьСтрока.Параметры.АртикулНоменклатуры = "'"+Строка(Формат(Строка.АртикулНоменклатуры, "ЧГ="));

Результат - см. скриншот
Прикрепленные файлы:
7. user856012 13 25.06.21 15:07 Сейчас в теме
(5)
Результат - см. скриншот
Да, вижу. Но в большинстве случаев такой файл нормально считывается, зависит от программы.

Другого способа записать строку цифр в ячейку с числовым форматом лично я не знаю.
8. user1089020 25.06.21 15:33 Сейчас в теме
(7) Увы, формат ячейки "Общий", Excel 2010.
9. user856012 13 25.06.21 15:38 Сейчас в теме
(8)
формат ячейки "Общий"
Для строки из цифр это одно и то же.

Вариант - программно поменять формат ячейки на Текстовый, но я не знаю, как это сделать.
10. user856012 13 25.06.21 15:53 Сейчас в теме +0.2 $m
+(9)
программно поменять формат ячейки на Текстовый
Или не программно: если файл создается не с нуля, а из заготовки (шаблона), то можно в шаблоне выделить столбец с артикулом и задать ему формат "Текстовый". Тогда при добавлении новых строк Excel не будет преобразовывать строку цифр в число в этом столбце.
11. user1089020 25.06.21 15:57 Сейчас в теме
(10) Нет, файл создается с нуля. Спасибо за помощь!
12. user856012 13 25.06.21 16:00 Сейчас в теме
(11)
файл создается с нуля
А это обязательно? Можно ведь создать прямо в Excel шаблон с требуемой шапкой и заданными форматами, а перед созданием целевого файла копировать шаблон под нужным именем, открывать и заполнять.
3. arman1997 19 25.06.21 13:53 Сейчас в теме
Так Excell предлагает пропустить ошибку.
6. user1089020 25.06.21 15:06 Сейчас в теме
(3) Да, но если пользователи\ь щелкнет по ячейке, то Excel изменит ее содержимое. А это не есть гуд.
13. cyegor 9 13.11.23 14:21 Сейчас в теме
Вместо установить значение параметром использовал примерно такой код:
ПроблемнаяОбласть.ТекущаяОбласть.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Текст;  
ПроблемнаяОбласть.ТекущаяОбласть.СодержитЗначение = Истина;  
ПроблемнаяОбласть.ТекущаяОбласть.ТипЗначения = Новый ОписаниеТипов("Строка"); 
ПроблемнаяОбласть.ТекущаяОбласть.Значение = УстанавливаемоеЗначение;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот