Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:22

1с нужна помощь!

Автор Shaman_blr, 07 фев 2023, 14:52

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

Shaman_blr

Здравствуйте. Помогите с загрузкой из excel в 1с.
Есть список: 1 колонка это код , 2 колонка это наименование.

A  фывфывфывв
01  фывфывфывфыв
01.1  фывфывфыв
01.11  фывфывфы
01.11.1  Пфывфывфы
01.11.11  фывфывфыв
01.11.11.100  фывфыфывфы

вот код
Процедура ПрочитатьВыбранныйФайл() Экспорт
Прогресс=0;
ТабДок = ПрочитатьТабличныйДокумент();
Если не ТабДок=null тогда
КоличествоСтрокТаблицы = ТабДок.ВысотаТаблицы;
Для НомерСтрокиТаблицы = 2 по 15 цикл


Область = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтрокиТаблицы,"ЧГ=0") + "C1");
ТекущаяОбласть = Область.ТекущаяОбласть;
Столбец2 = СокрЛП(ТекущаяОбласть.Текст);

Область = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтрокиТаблицы,"ЧГ=0") + "C2");
ТекущаяОбласть = Область.ТекущаяОбласть;
Столбец3 = СокрЛП(ТекущаяОбласть.Текст);
Сообщить(Столбец2 +"  " + столбец3);

КонецЦикла;
Прогресс = 100;
Предупреждение("Выполнено!!!");
Прогресс = 0;

КонецЕсли;
КонецПроцедуры

Вопрос таков.
Мне нужно чтобы эти поля записались как группа в справочнике.

01 
01.1 
01.11 
01.11.1 
01.11.11

а это строчка последняя 01.11.11.100 чтобы была в группе 01.11.11 

Afinogen

я бы считал в таблицу щатем работал с ней

например как то так

ТЗ = Новый ТаблицаЗначений;
НоваяКолонка = ТЗ.Добавить("Колонка1");
НоваяКолонка = ТЗ.Добавить("Колонка2");
НоваяКолонка = ТЗ.Добавить("Индекс");

Если не ТабДок=null тогда
        КоличествоСтрокТаблицы = ТабДок.ВысотаТаблицы;
        Для НомерСтрокиТаблицы = 2 по 15 цикл           
           
           
            Область = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтрокиТаблицы,"ЧГ=0") + "C1");
            ТекущаяОбласть = Область.ТекущаяОбласть;
            Столбец2 = СокрЛП(ТекущаяОбласть.Текст);
           
            Область = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтрокиТаблицы,"ЧГ=0") + "C2");
            ТекущаяОбласть = Область.ТекущаяОбласть;
            Столбец3 = СокрЛП(ТекущаяОбласть.Текст);
            Сообщить(Столбец2 +"  " + столбец3);

            НоваяСтрока = ТЗ.Добавить();
            Новаястрока.Колонка1 = Столбец1;
            Новаястрока.Колонк2 = Столбец2;
            МассивТочки = СтрРазделить(Столбец2,".");
            Новаястрока.Индекс = МассивТочки.Количество()
       
        КонецЦикла;
        Прогресс = 100;
        Предупреждение("Выполнено!!!");
        Прогресс = 0;
       
    КонецЕсли;

Дальше работайте с полученной таблицей, у вас будет для каждого значения из Эксель стоять индекс от  1 до 4
можете через запрос,  передав таблицу как параметр, можете циклами
используя НайтиСтроки

antoneus

Зачем стоко буков?

КоличествоСтрокТаблицы = ТабДок.ВысотаТаблицы;
Для НомерСтрокиТаблицы = 2 по КоличествоСтрокТаблицы цикл

    НоваяСтрока = ТЗ.Добавить();
    Новаястрока.Колонка1 = СокрЛП(ТабДок.Область(НомерСтрокиТаблицы, 1).Текст);
    Новаястрока.Колонка2 = СокрЛП(ТабДок.Область(НомерСтрокиТаблицы, 2).Текст);
    Новаястрока.Индекс = СтрРазделить(НоваяСтрока.Колонка1, ".").Количество()
       
КонецЦикла;

Shaman_blr

у меня ругается на СтрРазделить, мб в моей конфе не поддерживается.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск