Имя: Пароль:
1C
1С v8
Загрузка реквизита из Excel в справочник
,
0 MaxMelnikov
 
20.07.14
18:31
Добрый вечер.
Есть файл Excel с столбцами: фамилия, имя, отчество, номер счета.
Есть РегистрНакоплений.ФИОФизЛиц:
Измерения: ФизЛицо(СправочникСсылка.ФизическиеЛица)
Ресурсы: Фамилия, Имя, Отчество
В Справочник.ФизическиеЛица есть ресурс НомерСчета
Как сделать экспорт из Excel в справочник? Спасибо за любую наводку)
1 Wobland
 
20.07.14
18:32
прочитать данные, загрузить данные. следующий!
2 Chameleon1980
 
20.07.14
18:33
на итс есть обработка типа загрузкаДанныхИзТАбличногоДокумента
3 Wobland
 
20.07.14
18:35
о, нам же надо экспортировать. прочитать данные,запмсать данные
4 GreatOne
 
20.07.14
18:35
РН Ресурсы: Фамилия, Имя, Отчество?
5 GreatOne
 
20.07.14
18:35
это типовой что ли? я наверное что то не так понял
6 Wobland
 
20.07.14
18:36
на, горе

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Попытка
        Состояние("Загрузка Excel...");
        Excel=Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    Состояние("Открытие файла...");
    ExcelFile=Excel.Workbooks.Open(ФайлОбразец);
    Sheet=ExcelFile.Sheets(1);
    
    Sheet.Cells(4, 4).Value=Формат(ТекущаяДата(), "ДФ='dd MMMM yyyy ""г.""'");
    i=10;
    Для Каждого ТекСтрока Из Заказ.Товары Цикл
        Sheet.Cells(i, 3).Value=ТекСтрока.Номенклатура.Артикул;
        Sheet.Cells(i, 4).Value=ТекСтрока.Номенклатура.Наименование;
        Sheet.Cells(i, 5).Value=ТекСтрока.Количество;
        i=i+1;
    КонецЦикла;
    
    ExcelFile.SaveCopyAs(ФайлРезультат);
    Excel.DisplayAlerts=0;
    Excel.Workbooks.Close();
    Excel.Quit();
    Excel.DisplayAlerts=1;
КонецПроцедуры
7 MaxMelnikov
 
20.07.14
18:51
(3) Ой, мне надо импортировать данные из Excel в справочник. И РегистрСведений, а не РН. Простите за неправильное изложение.
Т.е. прочитать строку в Excel, найти по этим данным запись в РС, и записать реквизит в справочник)
8 Chameleon1980
 
20.07.14
19:09
см (2)
или тебе научиться нужно?
тогда заготовка в (6) и хватит мозг иметь
9 Wobland
 
20.07.14
19:28
чтоб не копипастил
http://i.imgur.com/qSMY0xb.png
10 PR
 
20.07.14
19:29
(0) И в чем проблема?
11 MaxMelnikov
 
20.07.14
19:46
Я новичок, и у меня возникли сложности.
Excel файл я открыть могу, прочитать ФИО из него смогу.
В РС умею делать только отбор по измерению и изменение ресурсов у найденной записи. Сложность найти запись в РС по ФИО (которые находятся в ресурах), т.е. нужно писать скорее всего запрос, с чем возникают у меня проблемы или искать другие решения, поэтому я к вам и обратился. Мало того, что нужно найти запись по ресурсу, так ещё нужно изменить данные в измерении, который ссылается на справочник. Спасибо за ваши ответы, буду экспериментировать дальше.
12 Wobland
 
20.07.14
19:49
(11) не унайденной записи отбор ты умеешь делать. у НЗ отбор делатьб умеешь ты
13 PR
 
20.07.14
19:50
(11) Может стоить использовать ЖК + типовые + Яндекс?
14 Wobland
 
20.07.14
19:54
(12) сегодня не только лимшь все могут делать отбор по измерению РС. вернее, не все могут делать отбор по измерению РС, мало кто может это днлать
15 Wobland
 
20.07.14
19:59
(11) создать набор записей, создать менеджерзаписи...
16 mdocs
 
20.07.14
20:18
ФиоФизЛиц - не нужен, складываешь Фамилия+Имя+Отчетство и ешешь по наименованию в справочнике физлиц. Кто добавил в ФизЛица номер счета - я не знаю)
17 GreatOne
 
20.07.14
21:39
(16) не просто так, думается, сделан подобный регистр. Скорее всего придется искать число вхождений Ф, потом И, потом О в справочник.ФизЛица.ПолноеНаименование. Думаю так еще сложнее выйдет
18 GreatOne
 
20.07.14
21:41
Вообще, ТС, ты вопрос то сам понимаешь? Что в итоге надо? В екселе найти ФИО, найти это ФИО в 1с и записать значение СЧЕТ из екселя в 1С? Ты с самого начала все усложнил
19 MaxMelnikov
 
20.07.14
22:30
(18) Да, всё верно, я всё усложнил) Нужно в екселе найти ФИО, найти это ФИО в 1с и записать значение СЧЕТ из екселя в 1С.
И правильно сказал mdocs искать в справочнике по наименованию. Это проще для меня выглядит, чем первоначальная задача. Буду пробовать. Спасибо всем!

Вопрос, может, кто сталкивался, как организовать цикл для каждого из таблицы значений в обратном порядке?) Мне нужно обработать пару строк с конца, пока не встретятся уже обработанные ранее строки (у них установлен флаг)
20 MaxMelnikov
 
21.07.14
01:37
Решил цикл:

Всего=ТаблицаВыработки.Количество()-1;

Для НС=-Всего По 0 Цикл        
    Сообщить(ТаблицаВыработки[-НС].ИмяСтолбца)
КонецЦикла;
21 Wobland
 
21.07.14
04:13
(20) долго шёл. даже изощрился вон как с циклом
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший