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

Хранилище

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

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



> Работа с ТаблицейЗначений на форме обработки , Преобразовать данные из одной ТЗ в ТЗ с измененной структурой          
Pavlik1c Подменю пользователя
сообщение 31.08.16, 14:17
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 2 раз
Рейтинг: 0

Имеется:
"Управление производственным предприятием для Украины", редакция 1.3
Разработка конфигурации: "ABBYY Ukraine", 2005-2016 (1.3.45.1) (http://1c.ua/v8/RegionalSolutions_UA_UPP.php)
Copyright © ООО "1C", 2005-2016
(http://www.1c.ru/)
"Обычное приложение".

На форме обработки расположено табличное поле: "тзВременная"(ТаблицаЗначений) - в нее импортируются данные из xls.файла (только одна колонка).
Необходимо преобразовать данную "тзВременная" в "тзТаблица" - как на картинке...

sava1 Подменю пользователя
сообщение 31.08.16, 14:32
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Преобразую.

Спасибо сказали: Pavlik1c,

twilight_dream Подменю пользователя
сообщение 05.09.16, 20:05
Сообщение #3

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

Написать конечный автомат распознавания. Или поделить функциями эксель чтобы в одной колонке была одна сущность, затем программно без проблем загрузить.


Signature

Mularik Подменю пользователя
сообщение 06.09.16, 13:57
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 1 раз
Рейтинг: 0

Предположим, что данные уже загружены в ТабличноеПоле1. Результат поместим в ТабличноеПоле2.
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабличноеПоле2.Очистить();
    
    НС=1;
    Счетчик =  ТабличноеПоле1.Количество() - 1;

    Пока Счетчик > 0 Цикл      
        
        ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
                    
        Если НЕ ПустаяСтрока(ТабличноеПоле1[НС].Данные) Тогда
            
                                       НоваяСтрока = ТабличноеПоле2.Добавить();
                            
            ТекущееЗначение = Сред(ТабличноеПоле1[НС].Данные,12,3);
            ИмяКолонки = "Контракт";             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
                    
            ТекущееЗначение = Прав(ТабличноеПоле1[НС].Данные,11);
            ИмяКолонки = "Телефон";             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
                
            ДлСтр2 = СтрДлина(ТабличноеПоле1[НС+1].Данные);
            Стр2 =  ТабличноеПоле1[НС+1].Данные;
            ТекущееЗначение = Лев(Прав(Стр2,ДлСтр2-17),СтрДлина(Прав(Стр2,ДлСтр2-17))-1);
            ИмяКолонки = "Пакет";             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
                
            ТекущееЗначение = Лев(Прав(ТабличноеПоле1[НС+2].Данные,7),3);
            ИмяКолонки = "Цена";             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
                
            НС = НС+3;
            Счетчик = Счетчик - 3;    
            
        Иначе
            НС = НС + 1;
            Счетчик = Счетчик - 1;
            Продолжить;
            
        КонецЕсли;
                
    КонецЦикла;
    
    ЭлементыФормы.ТабличноеПоле2.Значение = ТабличноеПоле2;
              ЭлементыФормы.ТабличноеПоле2.СоздатьКолонки();

КонецПроцедуры

Нужно учесть, что данный код будет работать корректо только на данном примере, т.к. если, например, данные ВАРТІСТЬ ПАКЕТА/ЩОМІСЯЧНА ПЛАТА будут с копейками, то результат будет неверным. Для этого необходимо более сложный алгоритм разбора строки. Либо при заполнении исходного файла предусмотреть точное форматирование данных (писать не 100 грн, а всегда 100,00 грн. и т.д.)

[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: Pavlik1c,

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


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

 

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