Лидирующие 0 в файле Excel

1. SotNick 22 04.07.24 11:39 Сейчас в теме
Добрый день!

Требуется загрузить номера серий из файла Excel в 1С.

Подскажите, что можно сделать с файлом Excel,
Сейчас в нём номера серии представлены так
value = "409101037024", а в text = "0409101037024"

База серверная, Excel читаю через ПостроительЗапроса

ПЗ = Новый ПостроительЗапроса;

При считывании в 1С берется значение value = "409101037024" и 0 мы теряем.


С помощью макроса добавила апостроф ' в начале номеров серий в Excel и тоже потеряла лидирующие 0 в начале. Перебивать руками не вариант, около 100.000 строк.

Нюансы:
1. Лидирующие 0 могут быть, могут не быть. МОжет быть 0, а может 00000
2. Длина номера серии переменная, иногда с буквами

Вопрос: что можно сделать с Excel, чтобы в колонке с номером серий было value = "0409101037024", то есть с лидирующим нулем?

Пример файла приложила.

ПС: если читать Excel в файловом варианте базы через
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
то есть возможность получить правильные значения через
(Excel.Cells(Сч, 1).Text)

Но это очень неудобно и медленно.
Прикрепленные файлы:
тест02_Товары BARKODLU STOK -1.xlsx
По теме из базы знаний
Найденные решения
6. Zevzm 04.07.24 12:02 Сейчас в теме
(3) А так читать не пробовали:
ТабДок = Новый ТабличныйДокумент;
	Попытка
		ТабДок.Прочитать(Файл, СпособЧтенияЗначенийТабличногоДокумента.Значение);
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = ОписаниеОшибки();
		Сообщение.Сообщить();
		Возврат Неопределено;
	КонецПопытки;
Показать


Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
Во втором параметре как раз Текст и Значение выбирается.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Zevzm 04.07.24 11:42 Сейчас в теме
Быстрее будет так:
Область = Лист.Range(ЛистЭксель.Cells(1,1), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок));
	Данные = Область.Value.Выгрузить();
3. SotNick 22 04.07.24 11:48 Сейчас в теме
(2) База серверная, Excel читаю через ПостроительЗапроса
Там нет возможности обратиться к значению ячейки.

То есть не имею возможности прочитать Excel как COM объект
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
и получить правильные значения через
(Excel.Cells(Сч, 1).Text)

Это доступно только в файловом варианте базы
4. Zevzm 04.07.24 11:52 Сейчас в теме
(3) Разовая загрузка или механизм нужен как постоянный инструмент?
5. SotNick 22 04.07.24 12:00 Сейчас в теме
6. Zevzm 04.07.24 12:02 Сейчас в теме
(3) А так читать не пробовали:
ТабДок = Новый ТабличныйДокумент;
	Попытка
		ТабДок.Прочитать(Файл, СпособЧтенияЗначенийТабличногоДокумента.Значение);
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = ОписаниеОшибки();
		Сообщение.Сообщить();
		Возврат Неопределено;
	КонецПопытки;
Показать


Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
Во втором параметре как раз Текст и Значение выбирается.
7. SotNick 22 04.07.24 12:03 Сейчас в теме
(6)О, спасибо! Не пробовала. Сейчас проверю, напишу
8. SotNick 22 04.07.24 12:12 Сейчас в теме
(6)Спасибо добрый человек! Все получилось!!!

Верное решение

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

вместо

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

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