Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не добавляет ноль в начале строке          
kosalex Подменю пользователя
сообщение 18.12.14, 9:26
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Добрый день! Есть строка СтрокаТЗ.Время = "05708", пытаюсь добавить ноль в начало строки

Переменная = Формат("0" + СтрокаТЗ.Время,"ЧВН=")


полeчаю что Переменная = "05708", куда пропадает ноль?


Пробовал и без формата, просто Переменная = "0" + СтрокаТЗ.Время, не получаю строку вида "005708"....а очень нужно

Petre Подменю пользователя
сообщение 18.12.14, 9:54
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Какой тип "СтрокаТЗ.Время"? С форматом - бред. "0" + "05708" должно равняться "005708", если нет ограничений по длине строки.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

kosalex Подменю пользователя
сообщение 18.12.14, 11:26
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Petre @ 18.12.14, 9:54) *
Какой тип "СтрокаТЗ.Время"? С форматом - бред. "0" + "05708" должно равняться "005708", если нет ограничений по длине строки.



В отладчике написано что это тип "Строка", но простым добавлением не хочет. Сделал так:
КоличествоСимволовВСтрокеТЗ = СтрДлина(СтрокаТЗ.Дата);
                НадоНулей = 6 - КоличествоСимволовВСтрокеТЗ;
                ВедущиеНули = Формат(0,"ЧЦ="+НадоНулей+";ЧН=; ЧВН=; ЧГ=0");
                СтрокаТЗ.Дата = ВедущиеНули + СтрокаТЗ.Дата;

logist Подменю пользователя
сообщение 18.12.14, 14:16
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Формат() будет работать с лидирующими нулями если тип значения число. Для строки просто добавляются нули типа "0"+ИсходнаяСтрока;

В Вашем случае должно быть достаточно:
Прав("000000"+СтрокаТЗ.Дата, 6);


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 18.12.14, 16:24
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 18.12.14, 14:16) *
Формат() будет работать с лидирующими нулями если тип значения число. Для строки просто добавляются нули типа "0"+ИсходнаяСтрока;

В Вашем случае должно быть достаточно:
Прав("000000"+СтрокаТЗ.Дата, 6);



Я получаю данные через СОМСоединение с базы MySQL. Перебераю все записи которые вернул запрос к базе.
Получаю данные из СОМСоединения
Пока ЧтениеСОМ.EOF() = 0 Цикл 
            НоваяСтрокаТЗ = ТЗ.Добавить();
            НоваяСтрокаТЗ.Дата = СтрЗаменить(Строка(ЧтениеСОМ.Fields("date").Value),Символы.НПП,"");
            НоваяСтрокаТЗ.Время = СтрЗаменить(Строка(ЧтениеСОМ.Fields("time").Value),Символы.НПП,"");
            НоваяСтрокаТЗ.НомерНазваниеВесов =  ЧтениеСОМ.Fields("addr").Value;
            НоваяСтрокаТЗ.ФактическийВес = ЧтениеСОМ.Fields("WeightFact").Value;
            НоваяСтрокаТЗ.ЗаданныйВес =  ЧтениеСОМ.Fields("WeightZad").Value;
            ЧтениеСОМ.MoveNext();
        КонецЦикла;


В моей ТЗ получается НоваяСтрокаТЗ.Время - тип "Строка", правильно? - Думаю да.
После записи строки в ТЗ, значение 05708 записывается как 5708, почему?

Вот сдесь я не уследил, перед тем как написать на форум, что в ТЗ уже значение не 05708, а 5708, по этому когда добавлял ноль, "НоваяСтрокаТЗ.Время = "0" + СтрокаТЗ.Время" думал что он не добавился ))

Вопрос, почему в ТЗ записалось не "05708" как считывает с СОМСоединения, а "5708"?

logist Подменю пользователя
сообщение 18.12.14, 16:50
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(kosalex @ 18.12.14, 16:24) *
Вопрос, почему в ТЗ записалось не "05708" как считывает с СОМСоединения, а "5708"?

Вероятно: а) колонка таблицы не типизирована и при записи в нее происходит преобразование типа (явно - число в число, строка в строку, т.к. это не переменная среды 1С, а результат работы стороннего объекта); или б) колонка типизирована как числовая.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 18.12.14, 21:16
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 18.12.14, 16:50) *
Вероятно: а) колонка таблицы не типизирована и при записи в нее происходит преобразование типа (явно - число в число, строка в строку, т.к. это не переменная среды 1С, а результат работы стороннего объекта); или б) колонка типизирована как числовая.


Ответ а).

Но как же это
НоваяСтрокаТЗ.Дата = СтрЗаменить(Строка(ЧтениеСОМ.Fields("date").Value),Символы.НПП,"");


Petre Подменю пользователя
сообщение 19.12.14, 10:14
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Цитата(kosalex @ 18.12.14, 16:24) *
Вопрос, почему в ТЗ записалось не "05708" как считывает с СОМСоединения, а "5708"?

Чему равно Строка(ЧтениеСОМ.Fields("date").Value) ???
Что значит ""05708" как считывает с СОМСоединения" ???


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!