Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Май 2018, 20:49
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Конвертация в строку.  (Прочитано 4370 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Доброго времени суток.
У меня есть функция отлично работающая в теле которой выполняется запрос к БД и возврощается структура элементов.

Функция ПолучитьСтатусЗаказа(Номер)


Запрос = Новый Запрос;
    Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|СтатусыЗаказов.Период КАК Дата,
|СтатусыЗаказов.Регистратор КАК Документ,
|СтатусыЗаказов.Оборудование,
|СтатусыЗаказов.SN,
|СтатусыЗаказов.Статус,
|СтатусыЗаказов.НомерЗаказа,
|СтатусыЗаказов.Контрагент,
|СтатусыЗаказов.Информация,
|ОписаниеСтатусовСрезПоследних.ОписаниеСтатуса
|ИЗ
|РегистрСведений.СтатусыЗаказов КАК СтатусыЗаказов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеСтатусов.СрезПоследних КАК ОписаниеСтатусовСрезПоследних
| ПО СтатусыЗаказов.Статус = ОписаниеСтатусовСрезПоследних.Статус
|ГДЕ
|СтатусыЗаказов.НомерЗаказа = &НомерЗаказа";


Запрос.УстановитьПараметр("НомерЗаказа", Номер);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    СписокПараметров = Новый Структура;
   
СписокПараметров.Вставить("Период");
СписокПараметров.Вставить("НомерЗаказа");
СписокПараметров.Вставить("Документ");
СписокПараметров.Вставить("Оборудование");
        СписокПараметров.Вставить("SN");

Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       
СписокПараметров.Период = ВыборкаДетальныеЗаписи.Период;
СписокПараметров.НомерЗаказа = ВыборкаДетальныеЗаписи.НомерЗаказа;
СписокПараметров.Документ = ВыборкаДетальныеЗаписи.Документ;
СписокПараметров.Оборудование = ВыборкаДетальныеЗаписи.Оборудование;
        СписокПараметров.SN = ВыборкаДетальныеЗаписи.SN;

КонецЕсли;



    Возврат СписокПараметров;


КонецФункции


Как мне сделать, чтобы Возврат был не в виде структуры а в виде строки!? тойсть преобразовать структуру в строку, вставив между элементами например"#" и вернуть как строку такого вида на пример:
21.02.2010#Мат.Плата - Intel#SN456FG456...и т.д

Очень нужна ваша помощь! Любые варианты и предложения!

С Уважением Алуксандр.


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Так чтоли?
......................
СписокПараметров = Новый Структура;
СписокПараметров.Вставить("Представление");
Разделитель = "#";
Если ВыборкаДетальныеЗаписи.Следующий() Тогда       
СписокПараметров.Представление = Строка(ВыборкаДетальныеЗаписи.Период) + Разделитель + СокрЛП(Строка(ВыборкаДетальныеЗаписи.НомерЗаказа)) + Разделитель + Строка(ВыборкаДетальныеЗаписи.Документ) + Разделитель + Строка(ВыборкаДетальныеЗаписи.Оборудование);
КонецЕсли;
.........................

Оффлайн Шурыгин Иван Сергеевич

  • забей на все....
  • ****
  • Сообщений: 330
  • РЕПУТАЦИЯ: 82
  • КПД: 25%
  • забей на все!
  • Регистрация: 2011-05-23
  • Сайт: 
  • Профессия: Программист 8.1
Так чтоли?
......................
СписокПараметров = Новый Структура;
СписокПараметров.Вставить("Представление");
Разделитель = "#";
Если ВыборкаДетальныеЗаписи.Следующий() Тогда       
СписокПараметров.Представление = Строка(ВыборкаДетальныеЗаписи.Период) + Разделитель + СокрЛП(Строка(ВыборкаДетальныеЗаписи.НомерЗаказа)) + Разделитель + Строка(ВыборкаДетальныеЗаписи.Документ) + Разделитель + Строка(ВыборкаДетальныеЗаписи.Оборудование);
КонецЕсли;
.........................


слишком громоздко. и не удобно в плане количества реквизитов. лучше перебор

......................
СписокПараметров = Новый Структура;
СписокПараметров.Вставить("Представление");
Разделитель = "#";
Для Каждого КлючЗначение Из Структура Цикл       
СписокПараметров.Представление = КлючЗначение.Значение + Разделитель;
КонецЦикла;
//уберем последний разделитель
СписокПараметров.Представление = Лев(СписокПараметров.Представление,СтрДлина(СписокПараметров.Представление) - 1);
.........................


===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Мужчины, Вы лучшие! как в прочем и этот форум! Спасибо вам.

Мне всего лишь нужна была вот эта функция "Строка()" все остальное уже понятно)) не мог не где найти к сожалению..

Ну теперь все работает как задуменно! Еще раз спасибо.

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Шурыгин Иван Сергеевич, в Вашем варианте вернется только последний параметр, да и по-моему, автор просил строку, а не структуру с одним элементом...

Разделитель = "#";
СтрокаВозврата="";
Для Каждого КлючЗначение Из СписокПараметров Цикл        
     СтрокаВозврата = СтрокаВозврата + Строка(КлючЗначение.Значение) + Разделитель;
КонецЦикла;
//уберем последний разделитель
СтрокаВозврата = Лев(СтрокаВозврата,СтрДлина(СтрокаВозврата) - 1);
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
да и по-моему, автор просил строку, а не структуру с одним элементом...
о, точно. Ну принцип все равно понятен думаю.


Теги:
 

Перонос данных из бухгалтерии в УТ. Конвертация данных.

Автор coconut95Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 580
Последний ответ 28 Июн 2017, 15:16
от Saddhu
Кому нужна инф. по конфе "Конвертация"

Автор ВоронкинРаздел Закрытые темы

Ответов: 2
Просмотров: 4173
Последний ответ 09 Фев 2012, 19:38
от Столяр
Конвертация данных, ошибка "Преобразование значения к типу Число не может быть выполнено"

Автор CerebrinРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2361
Последний ответ 10 Май 2015, 21:51
от Дмитрий@
Почему сравнение на пустую строку разное для равно и не равно?

Автор mankingРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2140
Последний ответ 06 Ноя 2015, 09:02
от Vladimir_Sh
как из строки с трех слов получить строку с двух первых слов

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 3017
Последний ответ 04 Янв 2016, 11:35
от vitasw

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
165 Сообщений
alex0402
78 Сообщений
oleg-x
69 Сообщений
AIFrame AIFrame
63 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
39 Сообщений
ilyay ilyay
39 Сообщений
KOI8-R
36 Сообщений
Анюта17
33 Сообщений
Alter
30 Сообщений

* Кто онлайн

  • Точка Гостей: 251
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal