Лидирующие нули в файл DBF

1. gull22 105 31.03.25 15:19 Сейчас в теме
По техническому заданию надо создать файл *.dbf и выгрузить в него информацию из 1С. В исходных данных есть поле EAN13 в формате C(13) и поле GTIN в формате N(14).
В модуле объекта обработки создана таблица значений данных
БД = Новый XBase;
БД.Поля.Добавить("EAN13","S",13);
БД.Поля.Добавить("GTIN","N",14,0);

На форме обработки для GTIN установил свойства (скриншот GTIN), в том числе учет лидирующих нулей
Помятуя, что EAN13 - это строка, в модуле объекта на основании EAN13 создаю значение GTIN
НоваяСтрока.GTIN = Число(НоваяСтрока.EAN13);

В итоге в сообщении получаю для EAN13, что это строка (через ТипЗнч) имеет значение 4650264360059
Для GTIN, что это число, но значение = 4 650 264 360 059.

Пытался сделать вот так
НоваяСтрока.GTIN = Формат((Число(НоваяСтрока.EAN13)), "ЧЦ=14; ЧВН=; ЧГ=0");
Не помогло
Добрые люди, что нужно сделать чтобы получить 04650264360059?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 31.03.25 15:34 Сейчас в теме
(1)
Пытался сделать вот так
НоваяСтрока.GTIN = Формат

Так то Формат() это приведение значения к строке.
3. gull22 105 31.03.25 15:55 Сейчас в теме
(2) А зачем строке указывать количество знаков (ЧЦ) и наличие лидирующих нулей (ЧГ)?
4. Sashares 33 31.03.25 16:12 Сейчас в теме
(3) Чтобы представить значение в нужном пользователю виде.
Так то 3 и 3.00 и 3.00000 это одно и то же значение.
6. paulwist 31.03.25 16:23 Сейчас в теме
(1)
Добрые люди, что нужно сделать чтобы получить 04650264360059?


Хм, два варианта:

1. Определить поле как символьное.
2. При показе юзеру конвертить в строку и добавлять нули.

PS тип numeric не содержит ведущие нули, хотя и хранится в "символьном" формате.
Для numeric 123 тождественно равно 0123
9. gull22 105 31.03.25 16:42 Сейчас в теме
(6)
04650264360059


Смущает требование о формате "N",14 для dbf файла. Добивался, чтобы в СООБЩИТЬ выводилось 04650264360059 (для строки), но в файле (точнее при просмотре) все равно стоит 4650264360059.
13. paulwist 01.04.25 08:35 Сейчас в теме
(9)
Смущает требование о формате "N",14 для dbf файла.


Не надо путать хранения и отображение данных, это первое.

И второе, "N",14 "гарантирует" что в поле будут храниться числа, а не символы, те теоретически (хотя практически можно) в numeric поле затолкать символ "А".

Почему в одном случае символы в другом цифры - так исторически сложилось.
12. spacecraft 31.03.25 19:41 Сейчас в теме
(1) это должна быть строка.
Из типовых на скрине.
Прикрепленные файлы:
5. starjevschik 31.03.25 16:17 Сейчас в теме
Так строка нужна. Какое же число будет начинаться с 0.
7. gull22 105 31.03.25 16:30 Сейчас в теме
(5) GTIN начинается с нуля
Прикрепленные файлы:
10. starjevschik 31.03.25 16:59 Сейчас в теме
(7) так нет проблем, просто это не число. Это строка.
11. Sashares 33 31.03.25 17:07 Сейчас в теме
(7) ИНН тоже может начинаться с нуля, и что?
Чтобы записать такое значение в 1с как есть, это должны быть строка.
8. gull22 105 31.03.25 16:36 Сейчас в теме
(5) Вдогонку скриншот сайт проверки GTIN
Прикрепленные файлы:
Оставьте свое сообщение

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