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

Прочитывание файлом Excel ссылочных данных в 1С.

Автор Celestial, 01 мар 2024, 11:59

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

Celestial

В общем, в чем суть. Есть обработка, в ней табличная часть. В табличной части есть поле "НазваниеПроекта" и "ПроцентДеятельностиНаПроекте".Проблема в том, что надо, чтобы после прочитывания Excel файла заполнялись также и ссылочные данные. Как такое можно реализовать? Не прошу код за меня писать, просто основную схематику, может..

antoneus

Ну если наименования совпадают с наименованиями в базе - метод справочника НайтиПоНаименованию. Если не совпадают - привязать наименование из екселя к элементу справочника через дополнительные сведения, например.

LexaK

Цитата: Celestial от 01 мар 2024, 11:59Как такое можно реализовать?
при прочтении данных из Екселя делать поиск в базе 1С
например по Коду или по Наименованию
(лучше будет если все эти поиски сделаете ОДИНМ  запросом! иначе если ексель длинный будет капитально подвисать)
если помогло нажмите: Спасибо!

Celestial

antoneus, а есть пример того, как после итогового условия он мог бы установить значение, что сходится, в колонку нужную ссылочную? Не совсем понял такой момент конкретно.

antoneus

Код все-таки надо писать? :)
Ну что-то типа

НоваяСтрока = ТабличнаяЧасть.Добавить();
НоваяСтрока.НазваниеПроекта = Справочники.Проекты.НайтиПоНаименованию(НаименованиеИзФайлаExcel);//ну или как там справочник называется

Это если наименования совпадают и строк в Excel'е немного. Если их много - нужно более сильное колдунство с запросом.

Celestial

Объект.ТаблицаПеревода.Очистить();
       
        ТабДок = Новый ТабличныйДокумент;
        Попытка
       
            ТабДок.Прочитать(Объект.ПутьКФайлу);
       
        Исключение
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Не удалось прочитать файл по причине: " + ОписаниеОшибки();
            Сообщение.Сообщить();
        КонецПопытки;
        КоличествоСтрок = ТабДок.ВысотаТаблицы;
        КоличествоКолонок = ТабДок.ШиринаТаблицы;
        Для НомерСтроки = 1 по КоличествоСтрок Цикл
            Если НомерСтроки = 1 Тогда
                Продолжить;
                КонецЕсли;
                 ОбластьСНазваниемПроекта = ТабДок.Область(НомерСтроки, 1).Текст;
            СтрокаТаблицы = Объект.ТаблицаПеревода.Добавить();
          СтрокаТаблицы.НазваниеПроекта = Справочники.Организации.НайтиПоНаименованию(ОбластьСНазваниемПроекта);
          СтрокаТаблицы.ПроцентДеятельностиНаПроекте = ТабДок.Область(НомерСтроки, 2).Текст;
         
       
        КонецЦикла;

Написал в итоге такой код(До этого было условие, что ЕСЛИ он найдет совпадения, то произойдет установка значения, но указало ошибку, что преобразование к типу булево тут невозможно)
В чем может быть косяк кода?

Celestial


Максим75

Celestial, Косяк в том, что НайтиПоНаименованию возвращает или ссылку на элемент справочника или НЕОПРЕДЕЛЕНО.
Так вот надо проверять чтобы не было НЕОПРЕДЕЛНО и тогда писать новую строку.

Celestial

Максим75, написал такое, но всё же не пишет правильно, строка ссылочная пустая. Скину код ниже:
         Если НЕ Справочники.Организации.НайтиПоНаименованию(ОбластьСНазваниемПроекта) = Неопределено Тогда
            СтрокаТаблицы.НазваниеПроекта = Справочники.Организации.НайтиПоНаименованию(ОбластьСНазваниемПроекта);
        СтрокаТаблицы.ПроцентДеятельностиНаПроекте = ТабДок.Область(НомерСтроки, 2).Текст;
         КонецЕсли;

Максим75

Celestial,
НужнаяОрганизация = Справочники.Организации.НайтиПоНаименованию(ОбластьСНазваниемПроекта);
Если НужнаяОрганизация<>Неопределено тогд

СтрокаТаблицы = Объект.ТаблицаПеревода.Добавить();
СтрокаТаблицы.НазваниеПроекта = НужнаяОрганизация;
СтрокаТаблицы.ПроцентДеятельностиНаПроекте = ТабДок.Область(НомерСтроки, 2).Текст;

КонецЕсли;

И самое главное, проверьте, что в НазваниеПроекта должно писаться, тип какой. Вы ищите ссылку на справочник Организации, а туда может должен проект писаться или еще что-то.

Теги:  

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

Рейтинг@Mail.ru

Поиск